DBZ_WrProMenus

The smoother upgrade-path from 4D Write to 4W Write Pro for you and your customers and V16 without the R, no dot-notation required

Summary

Moving from 4D Write to 4D Write Pro is less smooth, than our users like updates to be. The complains I heard most often is the missing menu and toolbar atop of a 4D Write-Document. This was a real-estate-conscious user-interface to the power of 4D Write. Here is my take of that for 4D Write Pro for V16 without the R and no dot-notation required.

Seit einigen 4D R-Versionen gibt es 4D Write Pro als Nachfolger für 4D Write, das sich langsam an dessen Features ran-entwickelt. In den letzten Monaten höre ich häufiger den Wunsch nach einem raumsparenden Interface zum 4D Write Pro, also einer Menüleiste mit einigen Werkzeugen. Hier ist mein Entwurf für 4D Write Pro für V16 ohne R und ohne dot-notation.


Eine Menüzeile und einige Tools in direktem Zugriff ist das bekannte Interface zu 4D Write-Dokumenten. Es ist sehr raumsparend,

4D Write Menüs und Werkzeuge, wie wir und unsere Kunden „lieben“

Die Menüzeile und die Icon-Tools sind altmodisch geworden. Viele sehen drüber weg, weil Menüs und Tools praktisch sind und wenig Platz oberhalb der nutzbaren 4D Write-Fläche verbrauchen. Das wollen viele wiederhaben, weil die Kunden das kennen und der Entwickler seine Formulare nicht komplett umbauen muß, um Platz zu schaffen wo keiner ist.

Ich habe eine modernisierte Fassung der Menüzeile und wichtige Tools als Widget für die V16 zusammengestellt. Auch in der V16.0 sind nicht alle Funktionen von 4D Write in 4D Write Pro nachgebildet. Doch die wichtigen Funktionen sind vorhanden und diese bietet DBZ_WrProMenus an.

Hier meine Version der Menübar und Werkzeuge für 4D Write Pro mit HiDPI-Buttons

Die Menüs und Menübefehle sind ähnlich aber nicht identisch zu denen in 4D Write. Manche Menübefehle haben ein Button-Äquivalent in der Toolbar. Eigenschaften, die eine neuere V16-Version verlangen wie Tabellen, haben deaktivierte Platzhalter.

Und hier die Aussicht auf 4D Write Pro ab der V16R3

V16 4D Write Pro braucht die Version die 16.0, in 32- oder 64-bit. Das Lineal, das wir aus 4D Write kennen, liefert die V16R3 nach, wie im Screenshot dargestellt.

V15 Bleiben Sie noch länger auf V15 sind, brauchen Sie den Sourcecode von DBZ_WrProMenus, um diesen an 4D Write Pro für V15 anzupassen.

Nutzung

DBZ_WrProMenus ist eine Komponente und ein Widget. Sie installieren die Komponente und

  1. plazieren das Widget DBZ_WP_Menu in Ihrem Formular oberhalb eines 4D Write Pro-Bereichs
  2. dem 4D Write Pro-Objekt weisen Sie die Methode DBZ_WPArea_Manager („WParea“;“dbzWidgetMenu“;Self) zu
  3. installieren eine Callback-Methode, um Menü-Aktionen wie Neu, Sichern, Sichern als, … für den 4D Write Pro-Bereich Ihrer Host-DB auszuführen

$callBackMethod:=“Documents_Mngr“
DBZ_Callback_Mngr („Set“;->$callBackMethod)

Positionieren Sie die Komponente auf Ihrem Formular und verbinden Sie Ihren 4D Write Pro-Bereich mit der Komponente über diese eine Zeile Code

So könnte Ihr Formular aussehen, in dem Sie das Widget einbinden. Der Datentyp des Widgets ist Object.

Das Widget sollte in der Horizontalen wachsen. Die rote Umrandung hebt den geringen Platzbedarf des Widgets hervor. Sie geben dem Widget einen Rahmen, wenn Sie möchten.

Dem 4D Write Pro-Feld oder der -Variablen weisen Sie die Objekt-Methode DBZ_WPArea_Manager („WParea“;“dbzWidgetMenu“;Self) zu und übergeben die Objektnamen des 4D Write Pro-Bereiches, den des DBZ_WrProMenus-Widgets und den Pointer Self.

Sie sollten eine Callback-Methode installieren, um die Rückmeldung zum Datensatz mit dem 4D Write Pro-Dokument anzunehmen und zu verarbeiten. Hier mein Vorschlag zum Callback-Manager:
Case of
: ($what=“WrPro_New“)
Documents_Mngr („Record_New“)
: ($what=“WrPro_Save“)
Documents_Mngr („Record_Save“)
: ($what=“WrPro_SaveAs“)
Documents_Mngr („Record_SaveAs“)
: ($what=“WrPro_newTemplate“)
Documents_Mngr („Template_New“)
Else
$message:=“Geben Sie sich Rückmeldung, daß ein Callback nicht bearbeitet wird.“
End case

Wenn was nicht klappt, prüfen Sie die Objektnamen der beiden Objekte.  Für den 4D Write Pro-Bereichs müssen dieses Events aktiv sein: On Load + On After Edit + On Selection Change + On Getting Focus/On Losing Focus.

Nicht vergessen, die übergebene Callback-Methode für Host und Komponente freizugeben.

Moving target

V16 und 4D Write Pro verändern sich vierteljährlich, mit jeder R-Version. Die 4D Gemeinde ist sehr heterogen sowohl in dem was sie entwicklen wie in der Art und Weise. Ich versuche defensiven Code zu schreiben, doch ab und an überrascht eine besondere Situation und wirft einen Runtime-Fehler. Von dem wüßte ich gerne. Einfach Screenshot der Fehlermeldung mailen. Danke!

No hassles Lizenz

Sie dürfen diese Komponente in Ihren 4D-Anwendungen einsetzen.

Brauchen Sie die Komponente in Ihrer Sprache und die ist weder deutsch noch englisch, dürfen Sie den *.lproj-Ordner mit Inhalt anlegen. Wollen Sie Ihre Sprache den Kollegen anbieten, werde ich sie gerne in die Komponente integrieren.

Download

Zum Download meine HowToUse_WPmenus.4dbase. Die Komponente findet sich dort im Ordner Components.

Sourcecode

Sie wollen den Sourcecode haben, um selber zu erweitern und die Verfügbarkeit sicherzustellen? Machen Sie mir ein Angebot, dem ich nicht widerstehen kann, per Mail oder rufen Sie an +49 151 2753 2470.
Ich verkaufe Ihnen den Sourcecode, wenn Sie sich verpflichten 1) den Sourcecode an niemand anderen weiterzugeben und  2) kein vergleichbares Produkt (Komponente oder Widget) anzubieten.

 



A menubar and some tools for direct access is the proven and loved interface to 4D Write-Documents for lots of us.

4D Write menus and tools, as we and our customers „love“ them

The graphics of the icons make the toolbar look oldfashioned. Nothing to really complain about, as the ui-concept is proved and convincing. Another advantage is the amount of real estate necessary. Having something equivalent with 4D Write Pro does help us to update without completely rearranging existing layouts, which is a nightmare, both for the developer and the user.

This is my take of a modernised menu-toolbar, realised as component/widget for V16 and better. Even with V16.0  some functionality of 4D Write is still missing from 4D Write Pro. Therefor no 1:1 copy of the menubar and tools.

This is my take for a 4D Write Pro menu- and toolbar, including HiDPI-buttons

The menus and menu-commands resemble those of 4D Write. Some menu-commands are also available as button from the toolbar. Features which will be available later in the progress of 4D Write Pro, are disabled for now, like tables-assistant.

A sneak peek at 4D Write Pro from V16R3

V16 You need at least version 16.0 of 4D, either 32- or 64-bit. The ruler you see in the 4D Write-screenshot above, is part of V16R3.

V15 If you’re bound to V15, you need the sourcecode of DBZ_WrProMenus, to adapt to 4D Write Pro of version V15.

Usage

DBZ_WrProMenus is a component and a widget. You install the component and

  1. place the widget inside your form above the 4D Write Pro-area
  2. install this 4D Write Pro-objekt method DBZ_WPArea_Manager („WParea“;“dbzWidgetMenu“;Self)
  3. install a callback-method to be informed when menu-actions like  New, Save, Save As, … happened to take action inside your host-DB

$callBackMethod:=“Documents_Mngr“
DBZ_Callback_Mngr („Set“;->$callBackMethod)

Place the component on top of your 4D Write Pro-area and connect both with this single line of code

Your form where you include the widget could look like this. The widget is of data-type object.

The widget should grow horizontally. The shown red rectangle highlights the size of the widget. The border-style is up to you.

To connect the 4D Write Pro-field or -variable to the widget use this object-method DBZ_WPArea_Manager („WParea“;“dbzWidgetMenu“;Self) to pass both object-names, 4D Write Pro-area and DBZ_WrProMenus-widget, plus Self.

You should install a callback-method, to take of the feedback concerning the record containing the 4D Write Pro-document. This is my attempt in designing a callback-manager:
Case of
: ($what=“WrPro_New“)
Documents_Mngr („Record_New“)
: ($what=“WrPro_Save“)
Documents_Mngr („Record_Save“)
: ($what=“WrPro_SaveAs“)
Documents_Mngr („Record_SaveAs“)
: ($what=“WrPro_newTemplate“)
Documents_Mngr („Template_New“)
Else
$message:=“Send yourself a message about a missing reaction to this callback“
End case

If it doesn’t work immediately, check for the objectnames given to both objects.  The 4D Write Pro-area needs to have activated these events: On Load + On After Edit + On Selection Change + On Getting Focus/On Losing Focus.

Don’t forget, to make the callback-method available for both host and component.

Moving target

V16 and 4D Write Pro are changing with every R-Version. 4D developers are very heterogeneous both in the subjects they are working on and their style of coding. I’m trying to code as defensive as possible, but sometimes surprises happen and 4D throughs a runtime-error. I’d like to know about those. A screenshot of the of the error-message mailed should help. Thanks!

No hassles license

You are allowed to run this component as part of your 4D-applications.

If you need the component your language which neither english nor german, you are allowed to add the *.lproj-folder with translated contents. If you want to offer your language to the colleagues, I would integrate into the component.

Download

For download my HowToUse_WPmenus.4dbase. You’ll find the component in folder components.

Sourcecode

You like to buy the sourcecode, to enhance the component yourself and take care of the availability in the future? Make me an offer I can’t resist, by mail or call +49 151 2753 2470.

You have to oblige to both conditions: 1) not to give the sourcecode to somebody else and 2) not to offer a product (component or widget) similar to this one yourself.