2. Oktober 2006 15:27
//-----------------------UO1.39.001----Start-------------------------------
AnzZeilen := 0;
AktuellesJahr := DATE2DMY(TODAY, 3);
IF AktuellesJahr = buja THEN // wenn das Buchungsjahr dem aktuellen entspricht,
ReBePflicht := Structure."Accounts Statement Liability" // dann in der Gliederung schauen
ELSE
BEGIN
StructureHistory.SETCURRENTKEY(StructureHistory."Structure No.");
StructureHistory.SETRANGE(StructureHistory."Structure No.","Structure No.");
StructureHistory.SETRANGE(StructureHistory.Year,buja);
//---------Prüfen, ob innerhalb des Filtes mehr als eine Zeile existiert---------
IF StructureHistory.FIND('-') THEN // gibt es einen Eintrag, dann Zeilen zählen
BEGIN
REPEAT
AnzZeilen := AnzZeilen + 1;
UNTIL StructureHistory.NEXT = 0;
END
ELSE // gibt es keinen Eintrag, dann Range lösen und solange
BEGIN // zurückgehen, bis Eintrag gefunden wurde
REPEAT
StructureHistory.SETRANGE(StructureHistory.Year);
StructureHistory.SETRANGE(StructureHistory.Year,(buja-1));
UNTIL StructureHistory.FIND('-');
BEGIN
REPEAT // gibt es einen Eintrag, dann Zeilen zählen
AnzZeilen := AnzZeilen + 1;
UNTIL StructureHistory.NEXT = 0;
END
END;
// ------------------------------
IF AnzZeilen = 1 THEN // existiert nur eine Zeile, dann wird diese genommen
ReBePflicht := StructureHistory."Accounts Statement Liability"
ELSE // gibt es mehr Zeilen, dann eine Zeile zurück und diesen Wert
StructureHistory.FIND('+'); // nehmen und das Ergebnis umkehren
ZeilenNr := StructureHistory."Line No.";
IF StructureHistory.GET("Structure No.",(ZeilenNr)) THEN
ReBePflicht := StructureHistory."Accounts Statement Liability";
IF StructureHistory.GET("Structure No.",(ZeilenNr - 1)) THEN
ReBePflicht1 := StructureHistory."Accounts Statement Liability";
IF ReBePflicht <> ReBePflicht1 THEN
BEGIN
IF ReBePflicht = TRUE THEN
ReBePflicht := FALSE
ELSE
ReBePflicht := TRUE;
END
ELSE
ReBePflicht := StructureHistory."Accounts Statement Liability";
END;
2. Oktober 2006 16:49
mgerhartz hat geschrieben:REPEAT
StructureHistory.SETRANGE(StructureHistory.Year);
StructureHistory.SETRANGE(StructureHistory.Year,(buja-1));
UNTIL StructureHistory.FIND('-');
BEGIN
REPEAT
AnzZeilen := AnzZeilen + 1;
UNTIL StructureHistory.NEXT = 0;
END
2. Oktober 2006 16:56
3. Oktober 2006 16:19
//---------Prüfen, ob innerhalb des Filtes mehr als eine Zeile existiert-----------------------------------------------------------
StructureHistory.SETRANGE(StructureHistory."Structure No.","Structure No.");
StructureHistory.SETRANGE(StructureHistory.Year,buja);
IF StructureHistory.FIND('-') THEN // BuJa = SH.Year (Treffer)
BEGIN
AnzZeilen := StructureHistory.Count; // Zeilen zählen
END
ELSE
BEGIN
REPEAT
StructureHistory.SETRANGE(StructureHistory.Year); // Alte RANGE lösen
StructureHistory.SETRANGE(StructureHistory.Year,(buja-1)); // BuJa = SH.Year (Kein Treffer), dann (BuJa-1)
UNTIL ((StructureHistory.Year = 2000) OR (StructureHistory.FIND('-'))); // bis Year = 2000 ODER Treffer
IF StructureHistory.FIND('-') THEN
BEGIN
AnzZeilen := StructureHistory.Count; // Zeilen zählen
END
END;
3. Oktober 2006 16:38
mgerhartz hat geschrieben:"UNTIL ((StructureHistory.Year = 2000) OR (StructureHistory.FIND('-')));"
UNTIL (StructureHistory.Year = 2000) OR (StructureHistory.NEXT = 0);
3. Oktober 2006 16:58