FM - unsaubere Lösung?

W

WiKainZwaida

Aktives Mitglied
Thread Starter
Dabei seit
21.04.2006
Beiträge
131
Reaktionspunkte
0
Hallo zusammen !

Bin seit langem mal wieder dabei, mit FM rumzubasteln. Und zwar wollte ich es so einrichten, dass man, wenn man später einen Datensatz bearbeitet, die Möglichkeit hat, entweder die Änderungen zu bestätigen oder die Änderungen rückgängig zu machen.

Daher wird der entsprechende Datensatz vor den Änderungen samt seinen Bezugsdatensätzen dupliziert. Die Änderungen werden am "Original"datensatz vorgenommen. Bestätigt der Benutzer diese Änderungen, wird das Duplikat (und automatisch die duplizierten Bezugsdatensätze) einfach wieder gelöscht. Will der Benutzer die Änderungen rückgängig machen, wird dementsprechend der "Original"datensatz gelöscht und sozusagen durch das Duplikat ersetzt.

Funktioniert soweit wunderbar! Nur habe ich festgestellt, dass die fortlaufende Nr., über die mein Testdatensatz eindeutig identifiziert wird, mittlerweile bei 54 liegt. Ich weiß, dass jedem Datensatz ohnehin eine interne Nr. oder sowas zugeordnet wird.

Situation ist also: Ich habe erst einen Datensatz, der aber schon die fortlaufende Nr. 54 und interne Nr. was-weiß-ich-wie-viel inne hat.

Ich denke mal, dass diese Zahl wahrscheinlich ohne Probleme in die Millionen gehen kann und es keine Fehlermeldung wie "Zahl zu groß" etc. geben wird. Aber ist diese Lösung wirklich "sauber"? Bei mehreren Datensätzen, die immer wieder bearbeitet werden, gerät man sicher ganz schnell in den 1.000er bis 10.000er-Bereich. Was sagen die FM-Cracks dazu?
 
Hallo WiKainZwaida,

die automatische Datensatznummerierung hast Du manuell aktiviert (in den Felddefinitionen), das macht FileMaker nicht von selbst.

Insgesamt erscheint mir das System (Duplikat erstellen, Änderungen vornehmen, Bestätigen, Original oder Duplikat verwerfen) reichlich aufwendig.
Eine altbewährte Alternative ist die Erstellung eines alternativen Erfassungsbildschirms, in dem nur Variablenfelder sichtbar sind. In diese werden die Angaben aus dem Datensatz reinkopiert (per Script mit "Feld angeben" bzw. "feldwert setzen") und beim Verlassen des Schirms entweder in den Datensatz zurückgeschrieben ("Speichern") oder einfach verworfen ("Abbrechen").

Hierbei muß man nur einmal die benötigte Anzahl an Variablenfeldern definieren und die Wechselscripte (hin zum Erfassungsbildschirm mit Datenübernahme und zurück zum Originalbildschirm) programmieren. Der Aufwand einen Datensatz mit allen Bezugsdatensätzen zu kopieren entfällt....

MfG

ThoRo
 
War ewig nicht mehr hier, aber an Deinen Nick kann ich mich noch gut erinnern.

Vielen Dank für die (mal wieder) schnelle Hilfe!

1. Problem: Wie erstellt man ein Variablen-Feld?

2. Problem: Mit den Änderungsmöglichkeiten, die auf Wunsch wieder rückgängig gemacht werden sollen, ist es möglich, Bezugsdatensätze zu ergänzen bzw. zu löschen.
Bsp.: Tabelle "Buch" ist über eine Linktabelle, die "ID_Buch" und "ID_Themen" enthält, mit der Tabelle "Themen" verknüpft. Man kann in dieser Linktabelle nun Datensätze löschen bzw. hinzufügen.
Denke, dieses Problem kann mit Deinem Vorschlag leider nicht gelöst werden... oder hab ich Dich eventuell falsch verstanden?

die automatische Datensatznummerierung hast Du manuell aktiviert (in den Felddefinitionen), das macht FileMaker nicht von selbst.

3. Natürlich habe ich ein Feld "ID" mit fortlaufender Nr. selbst erstellt. Aber soweit ich weiß, vergibt Filemaker auch intern solche IDs für jeden Datensatz, die man über hole (datensatz idnr) erhält... Wie groß kann diese Zahl wohl werden?

Wie gesagt: Vielen Dank für Deine Hilfe! Und auch, wenn sich Problem 2 wohl damit nicht beheben lässt, bin ich sehr denkbar, wenn Du mir erklärst, wie man Variablenfelder erstellt.

Schöne Grüße
 
Hi WiKainZwaida,

Variablenfelder hießen bis FileMaker 6 auch noch so. Danach - ab FileMaker 7 - sind es normale Felder (also Typ Text, Zahl, etc.) bei denen in den Feldoptionen unter "Speicher" die globale Speicherung aktiviert wird ("Ein Wert für alle Datensätze").

Über den von mir beschriebenen Weg lassen sich auch Bezugsdatensätze bearbeiten - allerdings ist dafür der Programmieraufwand höher. Es muß eine zweite, parallele Beziehung (vom Variablenfeld ausgehend) definiert werden, die quasi die realen Änderungen "vorwegnimmt" bzw. simuliert.

FileMaker führt intern eine Kennzeichung für jeden Datensatz mit, das stimmt. Von einer Begrenzung in der Nummerierung hab ich bislang noch nichts gehört, der Adreßraum sollte also mehr als ausreichend groß sein....

MfG

ThoRo
 
Hast mir restlos geholfen: Das mit den "globalen Feldern" finde ich sehr viel eleganter als meine alte Methode!

Tausend Dank!!!
 
Zurück
Oben Unten