Liebe FileMaker-Experten,
es ist absolut nicht auszuschließen, dass der Grundfehler bei mir liegt, weil ich mir FileMaker beim Arbeiten an einem konkreten Projekt erschließe. Sei’s drum: Für Hilfe wäre ich dankbar.
(Nicht ganz so) Kurz das Drumherum: Beim Aufbauen einer Verlagsdatenbank im FM Pro Advanced 12 habe ich ein Portal erstellt, das Zugriff auf die Datensätze in Listenform ermöglicht, ohne auf das potthässliche und nicht verbesserte Listendesign von Filemaker zurückgreifen zu müssen.
Zumal es mir unbegreiflich ist, warum FileMaker immer noch nicht die Modifikation der Sortierreihenfolge in einem Ausschnitt ermöglicht, war ich von der Idee, zig Layouts mit unterschiedlichen Sortiervorgaben zu erstellen oder versteckte Tabellenzeilen anzulegen, nicht sehr angetan. Da das Projekt in absehbarer Zeit mehrbenutzerfähig gemacht werden soll, erscheinen mir die versteckten Zellen ohnehin nicht sinnvoll, da die ganze Zeit Datensätze modifiziert und die entsprechenden Stempel gesetzt werden.
Im letzten Jahr sind einige neue Ideen zur Portalsortierung aufgekommen, die häufig eine zusätzliche Tabelle benötigen (was durch die Schreibvorgänge den Aufbau wieder verlangsamt) bzw. recht komplizierte Formeln beinhalten. Da ich recht autodidaktisch an FileMaker rangehe, bin ich nicht ganz sicher, ob meine Lösung ohne Fußangeln ist, aber ich habe statt der Extra-Datenbank eine globale Variable eingeführt, deren Wiederholfeld [Portal_Anzeigetabelle_DatensatzID] nach der Sortierung der Tabelle mit PositionInErgebnismenge gefüllt wird. Dann wird die Ergebnismenge invertiert und die restlichen Variablen-Wiederholfelder mit einer 0 gefüllt.
Das Portal filtert jetzt diese 0er-Sätze aus und sortiert nach einem Pointer auf das Wiederholfeld der Variable. Durch das Sortieren in der Tabelle statt nur über das Portal vergeht zwar Extra-Zeit, aber selbst bei einer Tabelle mit über 30.000 Datensätzen, die in der Praxis so gut wie nie vollständig angezeigt werden wird, liegen die Wartezeiten bei unter 3 Sekunden. Bewege ich mich implausiblen Bereich mehrerer tausend Datensätze, ist die Verzögerung mit vielleicht einer halben Sekunde völlig akzeptabel, finde ich.
Gibt es grundsätzliche Bedenken gegen dieses Vorgehen?
Jetzt aber zum ersten Thema meines Threads: Ich gestalte die Liste möglichst komfortabel und blende via Tooltip zusätzliche Informationen ein. So gibt es auch eine Spalte "Verkaufspreis", und wenn ich dort nur den Feldinhalt mit Währungangabe anzeige, sieht das bei glatten Eurobeträgen wegen der fehlenden Nachkommastellen blöd aus.
Also habe ich eine Funktion "Währung", die den Ganzzahlbetrag, ergänzt durch Komma + rechtes Zeichen des Ganzzahlbetrags * 10 + rechtes Zeichen des Ganzzahlbetrags von * 100 ausgibt. Mit anderen Worten:
Code Ganzzahl(Betrag)&","&ZeichenRechts(Ganzzahl(Betrag*10);1)&ZeichenRechts(Ganzzahl(Betrag*100);1) Funktioniert auch prima, sieht alls so aus wie im Feld mit Einstellung "Währung" formatiert.
Nehme ich diese Funktion aber in den Tooltip, habe ich auf einmal Rundungsfehler – aber auch nicht konsequent!
6 Cent werden richtig als 6 Cent angezeigt, 8 Cent aber als 7 und 9 Cent als 8. An einer Stelle der Liste gibt es zwei Folgebeträge mit 11 Cent nach dem Komma. Der erste wird bei mir auf 10 gerundet, der zweite richtig angezeigt.
Habt ihr eine Idee, was da schiefläuft?
Vielen Dank!
Uli