[gelöst] Problem beim leeren eines Decimalfeldes

13. Oktober 2009 15:01

Mit einem Report möchte ich ein Dezimalfeld auf der Artikelkarte auf 0 setzen.

Mit diesem Code dachte ich es soll laufen:
Code:
if "Unit Cost" <> 0 then
  currreport.skip;
"Unit Cost" := 0;
modify;


Es wird jedoch nichts geändert.
Zuletzt geändert von misterelektro1981 am 16. Oktober 2009 08:35, insgesamt 1-mal geändert.

Re: Problem beim leeren eines Decimalfeldes

13. Oktober 2009 15:03

ist doch klar, wenn du bei allen mit einem Wert<>0 skipst :wink:

Re: Problem beim leeren eines Decimalfeldes

13. Oktober 2009 15:08

Achso, ich wollte nur diese überspringen.

So läuft es. Was ist denn, fällt mir gerade als Beispiel ein, wenn ich einen Feldinhalt löschen möchte, bis auf einen bestimmten Inhalt z.B. 3.

Dann schreibe ich doch:
Code:
if "Unit Cost" = 3 then
  currreport.skip;
"Unit Cost" := 0;
modify;


BITTE nicht beachten!!!

Re: Problem beim leeren eines Decimalfeldes

13. Oktober 2009 15:25

Ist aber nun klar, oder?

Re: Problem beim leeren eines Decimalfeldes

14. Oktober 2009 11:04

misterelektro1981 hat geschrieben:Mit einem Report möchte ich ein Dezimalfeld auf der Artikelkarte auf 0 setzen.

Mit diesem Code dachte ich es soll laufen:
Code:
if "Unit Cost" <> 0 then
currreport.skip;
"Unit Cost" := 0;
modify;


Es wird jedoch nichts geändert.


Hä? Hat sich mein Gehirn gelöscht oder scheint es mir als würde da noch bissl was fehlen?

das gute Stück müsste doch so aussehen oder?

Code:
if "Unit Cost" <> 0 then currreport.skip;
ELSE BEGIN"Unit Cost" := 0;
modify; END;


oder?! bitte klärt mich auf... :)

Re: Problem beim leeren eines Decimalfeldes

14. Oktober 2009 11:16

Nein, nach einem Skip wird (wenn wir mal fehlerbehaftete Versionen ausklammern) die Verarbeitung des nachfolgenden Codes abgebrochen.

Somit braucht man nach einem SKIP, BREAK, QUIT, EXIT oder ERROR innerhalb eines IF-Zweiges keinen ELSE-Zweig definieren.

Re: Problem beim leeren eines Decimalfeldes

14. Oktober 2009 11:19

Wenn schon, dann so: :wink:
Code:
if "Unit Cost" <> 0 then
  currreport.skip
ELSE BEGIN
  "Unit Cost" := 0;
  modify;
END;

Macht aber auch keinen Sinn, da so ja genau die Werte nicht bearbeitet werden, die bearbeitet werden sollen, nämlich die, die einen Wert ungleich Null haben :evil: