Code Problem mit Modify

17. Juli 2012 13:59

Hallo,
ich habe folgenden Code
Code:

TESTFIELD(PlanungFix,FALSE);

IF Jahr < 2012 THEN BEGIN
  MESSAGE('Bitte Jahr richtig eingeben!');
  EXIT;
END;

PlanungsVerkaufZeilen.RESET;
PlanungsVerkaufZeilen.SETRANGE(Nr,Nr);
IF PlanungsVerkaufZeilen.FINDSET THEN BEGIN
  Überschreiben := DIALOG.CONFIRM('Die Planung existiert bereits. Soll diese überschrieben werden');
  IF Überschreiben THEN BEGIN
    //PlanungsVerkaufZeilen.DELETEALL(TRUE);
    FOR i:= 1 TO 12 DO BEGIN
      PlanungsVerkaufZeilen.Nr := Nr;
      PlanungsVerkaufZeilen.Vertreter := Vertreter;
      PlanungsVerkaufZeilen.Jahr := Jahr;
      PlanungsVerkaufZeilen.Monatint := i;
      TempDate := DMY2DATE(1,i,Jahr);
      PlanungsVerkaufZeilen.Monat := FORMAT(TempDate,0,'<Month Text>');
      PlanungsVerkaufZeilen.Artikelkategoriecode := Artikelkategoriecode;
      PlanungsVerkaufZeilen.Produktgruppencode := Produktgruppencode;
      PlanungsVerkaufZeilen.Holzartencode := Holzartencode;
      PlanungsVerkaufZeilen.MengeSoll := Menge / 12;
      PlanungsVerkaufZeilen.UmsatzSoll := Umsatz /12;
      PlanungsVerkaufZeilen.MODIFY;
    END;

  END;
END ELSE BEGIN
  FOR i:= 1 TO 12 DO BEGIN
    PlanungsVerkaufZeilen.Nr := Nr;
    PlanungsVerkaufZeilen.Vertreter := Vertreter;
    PlanungsVerkaufZeilen.Jahr := Jahr;
    PlanungsVerkaufZeilen.Monatint := i;
    TempDate := DMY2DATE(1,i,Jahr);
    PlanungsVerkaufZeilen.Monat := FORMAT(TempDate,0,'<Month Text>');
    PlanungsVerkaufZeilen.Artikelkategoriecode := Artikelkategoriecode;
    PlanungsVerkaufZeilen.Produktgruppencode := Produktgruppencode;
    PlanungsVerkaufZeilen.Holzartencode := Holzartencode;
    PlanungsVerkaufZeilen.MengeSoll := Menge / 12;
    PlanungsVerkaufZeilen.UmsatzSoll := Umsatz /12;
    PlanungsVerkaufZeilen.INSERT;
  END;
END;

CurrPage.UPDATE(FALSE);


Zusätzlich gibt es in den Planungszeilen noch das Feld MengeVJ. Nun hat z.B. die erste Zeile den Wert 100 und die zweite den Wert 200 usw.
Wenn ich den Code nun nochmals ausführe, haben plötzlich alle Felder von MengeVJ den Wert 100 (also dern Wert der ersten Zeile) als Inhalt.
Was mache ich hier falsch. Ich will doch nur best. Feldwert ändern und die anderen belassen wie sie sind.

Danke
stony

Re: Code Problem mit Modify

17. Juli 2012 15:03

Hi,

da du keine Trigger ausführst und auch den Wert des Feldes nicht direkt änderst stellt sich mir die Frage was dieses Feld genau ist.
Handelt es sich hierbei evtl. um ein Flowfield?
Wann wird der Wert von MengeVJ normalerweise gefüllt (falls es kein Flowfield ist)?
Wie ist die CalcFormula, falls es ein Flowfield ist?

Re: Code Problem mit Modify

17. Juli 2012 15:12

Hallo stony,

sind das vielleicht Datensätze aus der INSERT-Schleife?
mach am Anfang der Schleife nen Datensatz.INIT, dann verschwinden auch die Werte aus den vorher gelesenen und modifizierten Sätzen

Re: Code Problem mit Modify

18. Juli 2012 07:06

Diese Feld MengeVJ ist ein normales Feld. (Keine FlowField) Es wird über eine andere Funktion befüllt (sprich Button), welcher die Verkaufsmenge des Vorjahres ermittelt und in dieses Feld einfügt. (Vorjahremenge pro Monat wird in diese Feld gespeichert).

Nein, es ist keine Insert-Schleife. Der Code wird über einen Action-Button aufgerufen.