FileMaker: Skript Variablen / Text einfügen hängt

papalapapp

papalapapp

Aktives Mitglied
Thread Starter
Dabei seit
27.12.2006
Beiträge
842
Reaktionspunkte
68
Hallo zusammen. Vielleicht kann mir jemand auf die Sprünge helfen. Ich komme bei diesem Skript nicht weiter. Es läuft bis zum Befehl "Text einfügen" und endet dann. Folgende Situation:

(FM 10 Pro auf Leo)

Es gibt eine Haupt- und eine Bezugstabelle. In den Hauptdatensätzen sind relativ viele Ja/Nein Auswahlfelder, die ich durch Auswahllisten ersetzt habe. Funktioniert für neue Datensätze gut. Nun möchte ich die alten Datensätze auch in der Bezugstabelle haben, d.h. ich muss für jedes gesetzte Häkchen einen Bezugsdatensatz einfügen. Und das ganze für alle Datensätze.

Im Prinzip so:

Haupttabelle hat die Felder Name, ID, Apfel (ja/nein), Banane (ja/nein). => Wenn Hauptdatensatz Feld Apfel="Wahr", dann neuer Datensatz in der Bezugstabelle mit Hauptdatensatz ID und "Apfel"

Mein Skript hat folgende Logik:

Gehe zum letzten Hauptdatensatz, setze dessen ID in Variable (fürs Schleifenende später)
Gehe zum ersten Hauptdatensatz,
Schleife Anfang
Setze ID in Variable
Setze Apfel Variable
Setze Banane Variable
Gehe zur Bezugstabelle
Wenn Apfel (oder Banane) Variable = Wahr, dann erstelle einen neuen Datensatz und schreibe Datensatz ID und "Apfel" (Banane) hiein
Gehe zum nächsten Datensatz
Schleife Ende (wenn ID=ID des letzten Datensatzes)

Hier das Skript dazu. Es macht alles bis zum ersten Mal Text einfügen (Apfel). Sowohl die ID als auch Apfel wird eingefügt, aber dann bleibt der cursor einfach im Feld und nichts passiert mehr. Hat jemand einen Tip für mich was da falsch läuft?

Code:
Gehe zu Layout [ “Haupttabelle” (Haupttabelle) ] 
Gehe zu Datens./Abfrage/Seite [ Letzte(r) ] 
Variable setzen [ $ID_of_last_account; Wert:Haupttabelle::ID_Account ] 
Gehe zu Datens./Abfrage/Seite [ Erste(r) ] 
Schleife (Anfang) 
	Variable setzen [ $Account_ID; Wert:Haupttabelle::ID_Account ] 
	Variable setzen [ $Banane; Wert:Haupttabelle::Banane ] 
	Variable setzen [ $Apfel; Wert:Haupttabelle::Apfel ] 
	Gehe zu Layout [ “Bezugstabelle” (Bezugstabelle) ] 
	Wenn [ $Banane="WAHR" ] 
		Neuer Datensatz/Abfrage 
		Feldwert setzen [ Bezugstabelle::id_company; $Account_ID ] 
		Text einfügen [ Auswahl; Bezugstabelle::Apfel; “Banane Text” ] 
	Ende (wenn) 
	Wenn [ $Apfel = Wahr ] 
		Neuer Datensatz/Abfrage 
		Feldwert setzen [ Bezugstabelle::id_company; $Account_ID ] 
		Text einfügen [ Bezugstabelle::Apfel; “Apfel Text” ] 
	Ende (wenn) 
Verlasse Schleife wenn [ $Account_ID = $ID_of_last_account ] 
Gehe zu Datens./Abfrage/Seite [ Nächste(r) ] 
Schleife (Ende)
 
Zuletzt bearbeitet:
Die Abbruchbedingung wird vermutlich erfüllt sein:

Verlasse Schleife wenn [ $Account_ID = $ID_of_last_account ]

Prüf einmal, was zu dem Zeitpunkt in den beteiligten Variablen steht....
 
Die Variablen sind soweit ok. Ich muss mich aber korrigieren, ich hatte oben geschrieben "(Apfel)" das müsste aber "(Banane)" heißen weil das Skript ja schon nach der ersten Eingabe aufhört. Es durchläuft also nur den ersten Datensatz. hm...
 
Also, ich habe noch ein fehlendes """ gefunden. Das Skript lief dann zwar weiter, hat aber dann lauter neue gleiche Datensätze produziert. Ich habs schrittweise nochmal ganz neu gebaut und nun funktionierts:

Code:
Gehe zu Layout [ “Haupttabelle” (Haupttabelle) ] 
# 
Gehe zu Datens./Abfrage/Seite [ Letzte(r) ] 
Variable setzen [ $ID_of_last_account; Wert:Haupttabelle::ID_Account ] 
# 
Gehe zu Datens./Abfrage/Seite [ Erste(r) ] 
# 
#------------------------------------- 
# 
Schleife (Anfang) 
Variable setzen [ $Account_ID; Wert:Haupttabelle::ID_Account ] 
Variable setzen [ $Banane; Wert:Haupttabelle::Banane ] 
Variable setzen [ $Apfel; Wert:Haupttabelle::Apfel ] 
# 
Eigenes Dialogfeld anzeigen [ Titel: "Variablen"; Mitteilung: "ID last account = "&$ID_of_last_account&", ID this account = "&$Account_ID&", Variable Banane = "&$Banane&", Variable Apfel = "&$Apfel; Schaltflächen: “OK” ] 
# 
Gehe zu Layout [ “Bezugstabelle” (Bezugstabelle) ] 
# 
#-------------------------------------- 
# 
Wenn [ $Banane = "Wahr" ] 
Neuer Datensatz/Abfrage 
Feldwert setzen [ Bezugstabelle::id_company; $Account_ID ] 
Text einfügen [ Bezugstabelle::Banane; “Banane” ] 
Ende (wenn) 
# 
Wenn [ $Apfel = "Wahr" ] 
Neuer Datensatz/Abfrage 
Feldwert setzen [ Bezugstabelle::id_company; $Account_ID ] 
Text einfügen [ Bezugstabelle::Banane; “Apfel” ] 
Ende (wenn) 
# 
Gehe zu Layout [ “Haupttabelle” (Haupttabelle) ] 
Verlasse Schleife wenn [ $ID_of_last_account = $Account_ID ] 
Gehe zu Datens./Abfrage/Seite [ Nächste(r) ] 
Schleife (Ende)
 
Zurück
Oben Unten