Gastbeitrag: Noch flexiblere Reports

Ein (der erste) Gastbeitrag auf Xojoblog von Martin T. Vielen Dank dafür!

Aufbauend auf den Beitrag vom 5. April 2017 geht es mit diesem Thema hier ein wenig weiter. Hilfreich dafür war der Beitrag „Xojo Reports: Query multiple tables in Body-Section (inline Reports)“ im Xojo-Forum.

Der Umfang von Xojos Report-Engine wird hier und da sehr kritisiert. Das liegt zum Teil an jahrelangen nicht behobenen „groben“ Bugs wie auch beispielsweise an der fehlenden Möglichkeit, eine dynamische Zeilenhöhe für Textausgaben mittels ReportField innerhalb des Body-Bereichs geliefert zu bekommen. Aber einige Beschränkungen lassen sich einfach umgehen.

weiterlesen

Bunter Listboxen!

Mit der Listbox ist das so ne Sache: Einerseits ist sie wirklich leicht bedienbar, andererseits erscheinen ihre Ausgabemöglichkeiten sehr eingeschränkt.

Ganz so klein sind sie aber nicht, denn man hat die Möglichkeit, jederzeit die Paint-Events der Listbox zu übernehmen und Hintergrund sowie Text ganz frei zu gestalten. Das verwirrt viele Neo-Xojoisten, die gerne so etwas wie FormattedText hätten. Den kann es nicht geben, denn die Zellen einer Listbox sind keine statischen Objekte. Sie werden gemalt, wenn die Listbox erkennt, dass sie sichtbar sind, und legen sich wieder als reine Daten zur Ruhe, wenn der Benutzer sie außer Sicht scrollt.

weiterlesen

1 x FileMaker zu Xojo und zurück, bitte!

Letztens war ich im schönen Salzburg, und zwar strenggenommen bei der FileMaker Konferenz. Das namengebende, an sich wirklich sehr schöne Datenbankentwicklungswerkzeug ist durch die Lizenzentscheidungen des Herstellers ein wenig bedroht, zumindest was kleinere Projekte angeht, da die Fähigkeit zur Entwicklung von Stand-Alones, also ohne FileMaker laufende Projekte, immer weiter zurückgeschraubt wird und Datenbankkunden pro Arbeitsplatz eine FM-Lizenz erwerben müssen – was schnell so richtig ins Geld gehen kann und den Vertrieb kleiner Projekte (die berüchtigte CD-Sammlung, falls jemand überhaupt noch physische Datenträger sammelt) unlukrativ macht.

weiterlesen

Ungehemmte Zwänge

oder wie man sich mit iOSLayoutConstraints anfreundet

Für viele Xojo-iOS-Anwender ist, liest man das Forum, das AutoLayout von iOS ein Grund, regelmäßig das Kriegsfahrrad auszubuddeln. Die Ähnlichkeit der IDE bei der Gestaltung von iOS-Benutzerinterfaces mit der einer Desktop-Anwendung verleitet dazu, den gleichen Arbeitsstil zu benutzen: Steuerelement aufs Layout ziehen und erst einmal ausprobieren; Feinangleichung kann später folgen.

Was auf dem Desktop funktioniert, geht bei iOS gerne in die Hose: Die Steuerelemente stehen einfach nicht dort, wo sie stehen sollten. Rotiert man das iOS-Gerät oder schaltet im Simulator auf eines mit einem anderen Display, wird es ganz übel – AutoLayout greift ein und erzeugt einfach nicht das gewünschte Bild.

weiterlesen

Diplomatisch delegieren

Ein Anwendungsfall aus der alltäglichen Praxis: Man hat ein Auswahl-Element, sagen wir mal ein PopupMenu, und ein Ausgabeelement – vielleicht einen Canvas –, das aufgrund der Auswahl im ersteren ein passendes Resultat zeigen soll.

DelegateWinDelegate.png

Häufig geht man dann so vor, dass der Change-Event im PopupMenu den Canvas invalidiert, und in dessen Paint-Event wird dann geschaut, was im PopupMenu steht. Eine mitunter ellenlange Select Case- oder If … ElseIf – End If-Anweisung macht den Code dann zum Roman.

weiterlesen

Was tun, wenn’s klemmt?

Eine kürzliche Leserfrage (nein, ich werd mich hier nicht erneut wiederholen: Nur vielen Dank an dieser Stelle!) ist Anregung für einen neuen Grundlagenbeitrag: Wie gehe ich mit Fehlern um, und wie verhindere ich die unschöne Exception-Messagebox, die bei unverhofften Fehlern auftritt und dem Programm eine etwas unsaubere Anmutung verleihen kann?

exceptionMessage

weiterlesen

Modular gedacht

Wie ja schon des öfteren erwähnt: Ich freue mich über Feedback und Anfragen, die mir dann auch gleich Anregung für einen neuen Beitrag liefern. Um so schöner, wenn’s denn mal ganz grundlegende Fragen betrifft.

So war dies dann auch kürzlich (nunja, einen Monat ist’s schon her), als mich ein Leser fragte, wie denn mit globalen Variablen umzugehen sei. Das ist eine Frage, die insbesondere bei Umsteigern bzw. Programmierern, die mit linearen Programmiersprachen begonnen haben, häufiger auftaucht. Saß man seinerzeit z.B. vor Turbo-Pascal, kam man schwerlich drum herum, globale Variablen zu definieren, also solche, die unter ihrem Namen von überall ansprechbar waren. Der Anfang eines solchen Programms bestand gerne mal aus ellenlangen Deklarationen von Variablen, auf die die später folgenden Methoden zugreifen konnten.

weiterlesen

Listbox mit besseren Helptags

Ein Ärgernis der Xojo-Listbox, das dem Umstand geschuldet ist, dass die Listbox zwar aus nativen Steuerelementen zusammengebastelt ist, aber nicht der nativen Lösung entspricht (NSTableView z.B. auf dem Mac ist zwar ungleich leistungsfähiger, aber auch ungleich schwerer zu beherrschen), besteht darin, dass die CellHelpTags, diese kleinen, sehr praktischen Zettelchen, die beim Verweilen des Mauszeigers über einer Zelle auftauchen, dies zwar tun – aber leider ohne jede Verzögerung.

weiterlesen