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?