Variabele wird nicht umgeschrieben
Hallo liebes Forum,
ich möchte meine Podukte weiterleiten. Diese werden hierfür markiert und dann über eine Taste z.B. in einen Lieferschein weitergeleitet. Hierfür werden die Kontakte geprüft (ob Kontakt vom Beleg = Kontakt der Ware ist). Die erste Position funktioniert wie gewünscht! Doch dann werden die weiteren Positionen immer in den Ausgangsbeleg eingefügt! Die Variabele bNr verliert immer wieder seinen Wert ??? Warum ?
Ich mach jetzt seit einer Woche herum komme aber nicht auf die Lösung. Bitte um Hilfe
Liebe Grüße aus dem Odenwald
Michael
"
/ Lieferschein /
// Artikelstatus = 5
// Formularnummer = 6
";
var bNr := Nr; <------------------ wird in der Schleifen immer wieder gesetzt !
auch wenn man ihne in der Schleife änderte
var kNr := 0;
var LieferNr := 0;
var pNr := 0;
let BelNr := 6;
let BelStNr := 5;
let BelStName := text((select ArtikelStatus)[Nr = BelStNr].Name);
for i in (select Belegpositionen)[Beleg = bNr and Markiert = 1] order by Beleg.Kontakt do
if contains(concat(i.Ware.ArtikelStatus.'Status Ausgang'), BelStName) = true then
LieferNr := number(i.Ware.Artikelvorlage.Lieferant.Nr);
if kNr != LieferNr then
var result := dialog("Beleg erstellen", "", ["weiter"]);
var belNr := (create Beleg);
bNr.(Belegart := BelNr);
bNr.(Belegdatum := today());
bNr.(Kontakt := i.Ware.Artikelvorlage.Lieferant.Nr);
bNr.(Kontaktperson := first(i.Ware.Artikelvorlage.Lieferant.Person.Nr));
var pNr := (create Belegpositionen);
pNr.(EK := i.EK);
pNr.(VK := i.VK);
pNr.(Ware := i.Ware);
pNr.(Kreislauf := i.Kreislauf);
pNr.Ware.(ArtikelStatus := BelStNr);
pNr.(Bemerkung := i.Bemerkung);
pNr.(Beleg := bNr);
i.(Markiert := null);
kNr := number(pNr.Ware.Artikelvorlage.Lieferant.Nr);
var result := dialog("Kontrolle", kNr + " / " + LieferNr, ["weiter"]);
void
else
var pNr := (create Belegpositionen);
pNr.(EK := i.EK);
pNr.(VK := i.VK);
pNr.(Ware := i.Ware);
pNr.(Kreislauf := i.Kreislauf);
pNr.Ware.(ArtikelStatus := BelStNr);
pNr.(Bemerkung := i.Bemerkung);
pNr.(Beleg := bNr); <------------------------ diese Variabele wird immer mit dem ersten Wert gesetzt!!!
i.(Markiert := null);
kNr := number(pNr.Beleg.Kontakt.Nr);
var result := dialog("Kontrolle alter Beleg", kNr + " / " + LieferNr, ["weiter"]);
void
end
end
end
3 Antworten
-
hab auch Let und Var getestet aber keinen Unterschied feststellen können!?
-
kein mir keiner helfen?
-
Problem gelöst! Gleiche Variabele 2 mal mit let definiert!! let und sind gleich!
Danke Jörg!
"
/ Lieferschein /
// Artikelstatus = 5
// Formularnummer = 6
";
var bNr := Nr;
var BelegXX := 0;
var kNr := 0;
var LieferNr := 0;
var pNr := 0;
var BelNrAtl := 6;
var BelStNr := 5;
var BelStName := text((select ArtikelStatus)[Nr = BelStNr].Name);
for i in (select Belegpositionen)[Beleg = bNr and Markiert = 1] order by Beleg.Kontakt do
"hat Pos gefunden/ jetzt wir der Status überprüft";
if contains(concat(i.Ware.ArtikelStatus.'Status Ausgang'), BelStName) = true then
LieferNr := number(i.Ware.Artikelvorlage.Lieferant.Nr);
if kNr != LieferNr then
var result := dialog("Beleg erstellen", "", ["weiter"]);
let belNr := (create Beleg);
belNr.(Belegart := BelNrAtl);
belNr.(Belegdatum := today());
belNr.(Kontakt := i.Ware.Artikelvorlage.Lieferant.Nr);
belNr.(Kontaktperson := first(i.Ware.Artikelvorlage.Lieferant.Person.Nr));
BelegXX := number(belNr)
end;
var pNr := (create Belegpositionen);
pNr.(Beleg := BelegXX);
pNr.(EK := i.EK);
pNr.(VK := i.VK);
pNr.(Ware := i.Ware);
pNr.(Kreislauf := i.Kreislauf);
pNr.Ware.(ArtikelStatus := BelStNr);
pNr.Ware.(Belegart_Akt := BelNrAtl);
pNr.(Bemerkung := i.Bemerkung);
i.(Markiert := null);
kNr := number(i.Ware.Artikelvorlage.Lieferant.Nr);
void
end
end
Content aside
- vor 5 JahrenZuletzt aktiv
- 3Antworten
- 1069Ansichten