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.