F2 per Hand anders als VALIDATE?

4. Juli 2011 13:27

Hallo,

wenn ich manuell in einem Feld ein F2 tippe, verändern sich andere Werte.
Jetzt will ich das im Code nachbilden. Ein einfaches REC.VALIDATE(FELD);
tut aber nicht das was ich möchte. Muss ich noch etwas anderes beachten?

Weiss jemand da Rat?

Re: F2 per Hand anders als VALIDATE?

4. Juli 2011 13:32

Manche Validates unterscheiden sich je nachdem, ob es aus Code oder per Handeingabe aufgerufen wurde. Da musst du mal gucken, ob in dem Code irgendwo CurrFieldNo steht.

Re: F2 per Hand anders als VALIDATE?

4. Juli 2011 13:36

Es kann auch sein, sofern du F2 auf einer Form (im Unterschied zur Tabelle-Run) machst, das im OnValidate der Form etwas programmiert ist.

Re: F2 per Hand anders als VALIDATE?

4. Juli 2011 13:37

Das Feld ist Inventurmenge in Artikelbuchblattzeile.

Da steht:


TESTFIELD("Phys. Inventory",TRUE);

PhysInvtEntered := TRUE;
Quantity := 0;
IF "Qty. (Phys. Inventory)" >= "Qty. (Calculated)" THEN BEGIN
VALIDATE("Entry Type","Entry Type"::"Positive Adjmt.");
VALIDATE(Quantity,"Qty. (Phys. Inventory)" - "Qty. (Calculated)");
END ELSE BEGIN
VALIDATE("Entry Type","Entry Type"::"Negative Adjmt.");
VALIDATE(Quantity,"Qty. (Calculated)" - "Qty. (Phys. Inventory)");
END;
PhysInvtEntered := FALSE;

Re: F2 per Hand anders als VALIDATE?

4. Juli 2011 13:52

Im OnValidate von Quantity wird die Funktion CheckItemAvailable aufgerufen, da verbirgt sich möglicherweise der Grund für das unterschiedliche Verhalten.