[GastForen Programmierung/Entwicklung FileMaker Skript um ein Feld in anderer Tabelle zu ändern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Skript um ein Feld in anderer Tabelle zu ändern

DuneFreme
Beiträge gesamt: 3

17. Dez 2011, 10:00
Beitrag # 1 von 4
Bewertung:
(6972 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo in die Runde,

ich habe mir in FM11 die Rechnungslösung abgewandelt und möchte jetzt ein Buchungsformular für meinen Lagerbestand einrichten. In der Rechnungslösung ist eine Inventarbuchung für einen Ausschnitt integriert, die habe ich verstanden. Ich möchte jetzt aber bei neuen Tabellen, die ich angelegt habe, auf Knopfdruck den Lagerwert aktualisieren und das findet nicht in einem Ausschnitt über eine Schleife statt. Ich dachte, es reicht eine passende Beziehung zu erstellen und dann kann ich den Feldwert direkt setzen?

Leider setzt mein Script aber den Feldwert einfach im ersten vorhandenen Datensatz in der Bezugstabelle. Also das Script nimmt den Mengenwert und rechnet diesen beim falschen Bezugs-Datensatz ab.

Das Skript sieht so aus:
# #Die verkaufte Menge beim Material-Lagerbestand aktualisieren.
#Wenn Lagerbestand gebucht, dann Statusmarkierung auf "Gebucht"
#Wenn bereits gebucht wurde, Fehlermeldung zeigen und Script beenden.
#
Wenn [ Verkaufsaufträge::z_VerkaufsMenge > 0 ]
Wenn [ Verkaufsaufträge::t_Abgeschlossen = "Gebucht" ] Eigenes Dialogfeld anzeigen [ Titel: "Warnung"; Mitteilung: "Dieser Verkauf ist bereits als \„Gebucht\“ markiert. Sie
können den Lagerbestand deshalb nicht aktualisieren.
Ändern Sie zuerst den Status, um diesen Verkauf zu bearbeiten."; Schaltflächen: “OK” ] Aktuelles Script verlassen [ ]
Ende (wenn)
Fehleraufzeichnung setzen [ Ein ]
Fenster fixieren
Gehe zu Feld [ Verkaufsaufträge::z_MaterialID_fk ]
Variable setzen [ $Mat_ID; Wert:Verkaufsauftrage::z_MaterialID_fk ]
Variable setzen [ $Menge; Wert:Verkaufsauftrage::z_VerkaufsMenge ]
Gehe zu Bezugsdatensatz [ Aus Tabelle: “MaterialVerkaufsauftrage”; Mit Layout: <Aktuelles Layout> ] Feldwert setzen [ Material::Menge auf Lager; Material::Menge auf Lager - $Menge ]
Feldwert setzen [ Verkaufsauftrage::t_Abgeschlossen; "Gebucht" ]
Schreibe Änderung Datens./Abfrage
[ Dateneingabeüberprüfung unterdrücken; Ohne Dialogfeld ]
Ende (wenn)

Im entsprechenden Formular für die Buchung verwende ich Referenz-Felder, die auf einer Beziehung zwischen meiner Artikel-Tabelle und dem zu buchenden Auftrag aufbauen. Dort hole ich mir nach Eingabe der Artikelnummer die Bezeichnung und die Gewichtseinheit. Somit kann ich doch davon ausgehen, dass die Beziehung korrekt gesetzt ist?

Warum kann ich dann nicht dieselbe Beziehung verwenden, um den Feldwert zu aktualisieren?
X

Skript um ein Feld in anderer Tabelle zu ändern

JensTeich
  
Beiträge gesamt: 595

17. Dez 2011, 12:16
Beitrag # 2 von 4
Beitrag ID: #486525
Bewertung:
(6949 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
über eine beziehung schreibt man immer in den ersten ds der bezugs-ds. welcher das ist, kann über die sortierung der beziehung gesteuert werden.

jens


als Antwort auf: [#486520]

Skript um ein Feld in anderer Tabelle zu ändern

DuneFreme
Beiträge gesamt: 3

17. Dez 2011, 12:48
Beitrag # 3 von 4
Beitrag ID: #486526
Bewertung:
(6943 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ach du Schande...

Im Formular wähle ich über eine Werteliste die ArtikelNummer aus. Die Werteliste basiert schon auf der Materialtabelle. Wenn ich die Id des Materials habe, dann zeigt mir die Referenz in meinem Formular auch korrekt die Artikelbezeichnung und die Gewichtseinheit an.

Warum kann ich im Skript nicht einfach diese Verknüpfung nehmen?

Sollte es nicht einfach so funktionieren, dass ich anhand der Artikelnummer den richtigen Artikel in der Materialtabelle zu fassen kriege?


als Antwort auf: [#486525]

Skript um ein Feld in anderer Tabelle zu ändern

JensTeich
  
Beiträge gesamt: 595

21. Dez 2011, 20:25
Beitrag # 4 von 4
Beitrag ID: #486735
Bewertung:
(6886 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Klingt so als fehlt eine Tabelle: Positiionen


als Antwort auf: [#486526]
X