10. März 2009 11:55
IF ("Chargen Nr. Eingabe" <> '') AND ("Line No." <> 0) THEN BEGIN
IF( decSetQuantity = 0 ) THEN BEGIN
BinContent.RESET;
BinContent.SETCURRENTKEY( "Bin Code" );
IF( "Bin Code" <> '' ) THEN
BinContent.SETRANGE( "Bin Code", "Bin Code" );
BinContent.SETRANGE("Lot No. Filter","Chargen Nr. Eingabe");
BinContent.SETFILTER(Quantity,'<>0');
IF NOT BinContent.FINDFIRST THEN
EXIT;
// IF BinContent.FINDFIRST THEN
BinContent.CALCFIELDS(Quantity);
VALIDATE("Item No.",BinContent."Item No.");
VALIDATE("Location Code",BinContent."Location Code");
VALIDATE("Bin Code",BinContent."Bin Code");
VALIDATE(Quantity,BinContent.Quantity);
END ELSE BEGIN
VALIDATE( Quantity, decSetQuantity );
END;
10. März 2009 12:08
15. März 2009 12:35
stony hat geschrieben:Nun meine Frage kann ich das lösen, sprich diese Abfrage beschleunigen.
IF( "Bin Code" <> '' ) THEN
BinContent.SETRANGE( "Bin Code", "Bin Code" );
IF NOT BinContent.FIND(‘-‘) THEN
EXIT;
Found := FALSE;
BinContent.SETRANGE("Lot No. Filter","Chargen Nr. Eingabe");
REPEAT
BinContent.CALCFIELDS(Quantity);
IF BinContent.Quantity <> 0 THEN BEGIN
Found = TRUE;
VALIDATE("Item No.",BinContent."Item No.");
VALIDATE("Location Code",BinContent."Location Code");
VALIDATE("Bin Code",BinContent."Bin Code");
VALIDATE(Quantity,BinContent.Quantity);
END;
UNTIL (BinContent.NEXT = 0) OR (Found = TRUE);