-> Hier kostenlos registrieren
Hallo,
ich bin nun schon ein zweites mal auf dieses Problem gestoßen und konnte es noch nicht lösen.
Ich möchte im DB einen Wert um minus 1 subtrahieren. Das Problem ist, dass entweder der Wert durch die Schleife die ganze Zeit runterzählt oder ich habe es so wie hier im Bsp. das ich einen bestimmten Wert (xb) um 1 erhöhe und beim nächsten Durchlauf soll er es nicht mehr machen. Dann zählt er garnicht mehr :-(... Hoffe ihr versteht das Problem so und könnt mir weiterhelfen.
ich bin nun schon ein zweites mal auf dieses Problem gestoßen und konnte es noch nicht lösen.
Ich möchte im DB einen Wert um minus 1 subtrahieren. Das Problem ist, dass entweder der Wert durch die Schleife die ganze Zeit runterzählt oder ich habe es so wie hier im Bsp. das ich einen bestimmten Wert (xb) um 1 erhöhe und beim nächsten Durchlauf soll er es nicht mehr machen. Dann zählt er garnicht mehr :-(... Hoffe ihr versteht das Problem so und könnt mir weiterhelfen.
Code:
FUNCTION FC54 : INT
VAR_INPUT
MagazinLeerenAusgewaehlt: BOOL;
FreigabeDBWertNullSetzen: BOOL;
AngefahrenSpalte: INT;
END_VAR
VAR_OUTPUT
END_VAR
VAR_TEMP
// temporäre Variablen
z: INT;
xb: INT;
za: INT;
Groesse: INT;
END_VAR
VAR_IN_OUT
END_VAR
// Anweisungsteil
IF FreigabeDBWertNullSetzen = False THEN
xb := 1;
END_IF;
IF MagazinLeerenAusgewaehlt = True AND FreigabeDBWertNullSetzen = True THEN
FOR z := 1 TO 3 BY 1 DO
"lager".Zeile[z].Spalte[AngefahrenSpalte].Belegt := False;
Groesse := "lager".Zeile[z].Spalte[AngefahrenSpalte].Groesse;
FOR za := 1 TO 30 BY 1 DO
IF "anpassung".anpassung[za].Wahre_Groesse = Groesse and xb =1 THEN
"anpassung".anpassung[za].ISTBestand := "anpassung".anpassung[za].ISTBestand -1 ;
xb := xb+1;
END_IF;
END_FOR;
END_FOR;
END_IF;
;
FC54 := 100;
END_FUNCTION