5. August 2008 10:48
SETFILTER(Inventory,'>%1',"Reserved Qty. on Inventory");
TempItemRec := Rec;
Rec := TempItemRec;
5. August 2008 11:11
ChristophE hat geschrieben:Die Suche wird in der Übersicht über eine Funktion gestartet und soll anschließend z.B. nur die zur freien Verfügung stehenden Artikel Listen.
Filtern wollte ich per
- Code:
 SETFILTER(Inventory,'>%1',"Reserved Qty. on Inventory");
"Inventory" und "Reserved Qty. on Inventory" sind beides FlowFields.
Leider klappt das nicht so ganz.
Zu mindest bei mir ;)
Eine andere Möglichkeit wäre ja noch die Daten in eine temp. Tabelle zu schreiben und dann zu filtern oder?
Aber wie muss ich da vorgehen?
AusgangRecord.FIND('-');
REPEAT
  IF AusgangRecord erfüllt Bedingung THEN BEGIN
    TempRecord := AusgangRecord;
    TempRecord.INSERT;
  END;
UNTIL AusgangRecord.NEXT = 0;5. August 2008 12:38
IF OnlyOnStock THEN BEGIN
  CALCFIELDS(Inventory,"Reserved Qty. on Inventory");
  grTempOnStockItem.DELETEALL;
  FINDFIRST;
  REPEAT
    IF Inventory > "Reserved Qty. on Inventory" THEN BEGIN
      grTempOnStockItem := Rec;
      grTempOnStockItem.INSERT;
    END;
  UNTIL NEXT = 0;
  Rec := grTempOnStockItem;
END ELSE
  SETRANGE(Inventory);
5. August 2008 13:25
Zeigt aber das selbe wie vorher an.
Mit der "Triggerei" kann ich mich echt noch nicht so anfreunden ;)
5. August 2008 14:28
Natalie hat geschrieben:Bitte das FINDFIRST durch FIND('-') oder FINDSET ersetzen, sonst nagt das unnötig an der Performance!
Natalie hat geschrieben:Wundert mich nicht
Wo rufst du den Code überhaupt auf?
Du musst am Schluss die Artikelübersicht-Form mit dem temporären Record aufrufen, also
z.B. FORM.RUN(FORM::"Item List", grTempOnStockItem);
Sprich: Dieser Quelltext gehört eigentlich nicht in die Form, die das Ganze darstellen soll.