scripten in filemaker - HILFE!

warpspeedster

Mitglied
Thread Starter
Dabei seit
11.06.2003
Beiträge
55
Reaktionspunkte
0
hallo!

ich hab eine datenbank in filemaker gebastelt - ca 4000 datensätze.

darin hab ich relational andere datenbanken verknüpft.
aufrufen kann man diese mit buttons, denen ich scripte zugewiesen habe.

eines dieser scripts als attachment hier angefügt.

diese möchte ich verfeinern!

es zeigt mir einen fragebogen zu einer karteikarte an, und zwar exakt den passenden, wenn er existiert. ansonsten öffnet es die entsprechende relationale datenbank - und gibt vorher die meldung aus - datensatz wurde noch nicht erstellt.

jetzt hab ich verzweifelt versucht, diesem script beizubringen, nicht nur den relationalen datensatz zu öffnen, sondern darin einen neuen leeren datensatz zu erzeugen.

immer wenn ich diesen befehl einfüge - egal ob mitten drin, am ende - oder in einer neuen wenn schleife - es erzeugt mir einen neuen datensatz in der datenbank der karteikarten - also in der "mutter" statt im relationalen datensatz - im "kind".


wer weiß rat, wie ich spezifizieren kann, in welcher datenbank meiner kollektion der neue datensatz zu erzeugen ist???


vielen tausen dank im voraus!

mfg

michaeldaum@mac.com
 

Anhänge

  • bild-1.gif
    bild-1.gif
    62,8 KB · Aufrufe: 140
Original geschrieben von warpspeedster
hallo!

jetzt hab ich verzweifelt versucht, diesem script beizubringen, nicht nur den relationalen datensatz zu öffnen, sondern darin einen neuen leeren datensatz zu erzeugen.

immer wenn ich diesen befehl einfüge - egal ob mitten drin, am ende - oder in einer neuen wenn schleife - es erzeugt mir einen neuen datensatz in der datenbank der karteikarten - also in der "mutter" statt im relationalen datensatz - im "kind".

michaeldaum@mac.com
 

Hallo,
vermutlich benutzt du in deiner "Mutterdatenbank" den Befehl "Neuer Datensatz".
Damit wird immer in der Datei, in der du gerade bist, ein neuer DS angelegt.
Lege in deiner anderen Datenbank ein neues Script an, das nur einen neuen DS anlegt.
Dieses Script steuerst du dann aus deinem jetzigen Script an.

Gruß von File
 
Bild im Anhang von meinem Script

Ich habe nen Screenshot von meinem Script angehängt. Ich habe es etwas anders gelöst as du klappt aber sehr gut. Ist leider in Englisch, aber läßt sich recht leicht übersetzten.









Viel Spaß beim Filemakern

Viele Filemakerwege führen nach Rom.
 
Bild im Anhang von meinem Script

ups Anhang vergessen
 

Anhänge

  • filemaker-script.jpg
    filemaker-script.jpg
    57 KB · Aufrufe: 143
vielen dank!

das mit dem script ansteuern in der relationalen datenbank hab ich probiert -

läuft spitze! - vielen dank.

jetzt würde ich gerne noch automatisch eine kennummer aus dem basisdatensatz
in den erzeugten neuen leeren datensatz einfügen.

ich hab nämlich viele felder schon mit der abfragefunktion versehen - und so wäre es sicher möglich die basisdaten aus dem hauptsatz in den relationalen zu kopieren.

dummerweise bleibt das script hängen, wenn ich den einsetzen befehl bringe, und darin auf den hauptdatensatz verweise....

kurz:

leerer dataset funzt - auch als script element in einem anderen script prima.
abfrage von daten aus relationalen datensätzen funzt auch - simpel über die felder selbst.

aber welcher ist der eleganteste weg, um einen automatischen eintrag zu generieren, direkt im anschluß an die erstellung eines neuen leeren datensatz?

welcher script befehl?

vielen dank im voraus !

clap
 
Datenfelder setzen

Set Field wäre die funktion meiner Wahl. Da geht das dann ganz easy.


Viel Spaß noch
 
Script

Hallo,

ich würde es so lösen:

Du legst in beiden Dateien ein Formelfeld mit dem Wert 1 als Inhalt an, Ergebnis Zahl.
Damit kannst du immer zwischen beiden Dateien Daten austauschen, unabhängig von der Zugehörigkeit der Mutter und Kind.

Dann ähnlich wie im Script von Interelectronix eine Abfrage (in der Beispieldatei von Mutter Prüfung genannt), ob bereits ein Datensatz als Kind existiert.
Den Rest kannst du aus den beiden Beispieldateien entnehmen.
Ich hoffe, es hilft dir und ich habe dein Problem korrekt verstanden.
 
vielen dank!

gracias an file und interlenix!

ich bin immerhin ein stück weiter dank eurer hilfe ;)

den neuen datensatz erzeuge ich ja jetzt mit dem "kind" selbst.

und rufe dieses script als teilscript aus dem hauptscript der mutter auf.

insofern hab ich ja eine beziehung zwischen den beiden erstellt.
an file - danke für dein zip mit den integrierten scipts!

hab ich mir angesehn - gute idee an sich - aber das formelfeld mit der 1

hab ich schon gegeben durch eine datensatzbezeichnung mit fortlaufender nummer - d1

bis d6000 usw....

jetzt kann ich natürlich über diese feld die beiden datensätze verknüpfen und diverse felder mit abfragefunktionen an die mutter direkt im layout bestimen.
einfach über control - feld angeben - beziehungen angeben....usw.

aber jetzt das knifflige!


wenn ich einen neuen datensatz erzeuge - und dann die fortlaufende nummer einsetzen will, kann ich das nicht über den control befehl im layout machen - weil dieser ja der einzige "aufhängungspunkt" oder bezugspunkt für den neuen datensatz ist!

wenn ich die fortlaufende nummer per hand in einen neuen datensatz im kind eingebe - dann springen sofort nach einem druck auf den tabulator alle felder auf die entsprechenden werte.

es erscheinen per geisterhand der richtige name. geburtstag, adresse, usw.

aber erst - n a c h dem ich diesen eintrag per h a n d gemacht habe.

da muss es doch einen eleganten weg geben, der diese nummer einfach auch abfragt oder einsetzt - so dass sämtliche daten - inklusive des bezugspunktes - sofort in jedem datensatz automatisch erscheinen, wenn ich von der mutter aus befehle, ein neues kind zu erzeugen....in meinem relationalen datensatz also einen neuen spezifisch zugeordneten....


eine 1 wäre nicht spezifisch - da ja sämtliche 6000 datensätze sowohl in der mutter als auch im kind vorliegen - oder besser in bislang 8 kindern separiert nach gruppen.

ich hoffe diese beschreibung ist detailliert genug - um das problem oder die aufgabenstellung eng einzukreisen.

ich vermute eine lösung darin, dass man aus dem bereits im kind neu erzeugten datensatz, eine abfrage an den gerade geöffneten satz in der mutter startet. sich dort die fortlaufende nummer holt und sie dann einsetzt- im leeren neuen im kind.

allerdings hab ich es schon mit allen scriptbefehlen probiert die mir sinnvoll schienen - und es will nicht:confused:


wäre ne klasse sache wenn jemand was dazu einfällt.


für jede hilfe dankbar

und nochmals vielen dank für die bisherige schon klasse hilfe ;)

best regards+


warp

:music
 
Re: vielen dank!

hab ich mir angesehn - gute idee an sich - aber das formelfeld mit der 1

hab ich schon gegeben durch eine datensatzbezeichnung mit fortlaufender nummer - d1

bis d6000 usw....

? Ich glaube, da verwechselt du etwas. Die Beziehung mit der 1 dient dazu, eine Verbindung zwischem JEDEM Datensatz der beiden Dateien aufzubauen, völlig unabhängig von Mutter/Kind. Über diese Beziehung kannst du dann wie in den Beispieldateien Daten wie z.B. eindeutige ID-Nummern transferieren und in neuen DS einsetzen.
Und das löst dein Problem.

Gruß File
 
Zurück
Oben Unten