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);