0

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

null
    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    hab auch Let und Var getestet aber keinen Unterschied feststellen können!?

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    kein mir keiner helfen?

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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