[Gelöst] Datensatz finden

20. August 2007 13:59

Hallo

Ich möchte aus der Tabelle Item Unit of Measure einen bestimmten Datensatz finden. Und zwar haben wir bei den Artikeln versch. Paketeinheiten hinterlegt. Diese beginnen immer mit PK (solche Einheiten lauten z.B. PK06 oder PK24 usw.). Wie kann ich nun man besten diesen Datensatz finden, wobei ich nur die Artikelnummer weiss.

mfg
stony
Zuletzt geändert von stony am 21. August 2007 10:08, insgesamt 1-mal geändert.

20. August 2007 14:03

Das Feld 1 in dieser Tabelle enthält die Item No. Du kannst also ganz einfach einen Filter über diese Tabelle legen mit der gewünschten Artiklenr.

20. August 2007 14:20

Die Tabelle sieht bei uns so aus:
Artikelnr. Code Menge pro Einheit
101010000002 M 0,45455
101010000002 M2 2,4975
101010000002 M3 178,39304
101010000002 PK06 6

Nun möchte ich die Menge pro Einheit für den Code PK06 finden. Wobei dieser Code auch PK12 usw. sein kann. Mit welchen Befehl löse ich das man besten.

20. August 2007 14:24

Du könntest einen Filter verwenden in der Art:

Code:
ItemUnitOfMeasure.SETFILTER(Code, '%1', 'PK*');


Dann erhälst du alle Einträge, deren Code mit PK beginnen.

20. August 2007 21:00

Hallo

Irgendwie schaffe ich es nicht.
Mein Code :

Code:
Item Ledger Entry - OnAfterGetRecord()
Item.GET("Item No.");
ItemUnitofMeasure.GET("Item No.");
ItemUnitofMeasure.SETFILTER(Code,'%1','PK*');

und ich bekomme immer die Fehlermeldung :
Artikeleinheit existiert nicht.
Identifizierte Felder und Werte.
Artikelnr='abc',Code="

Was mache ich hier falsch. Der Artikel hat in der Tabelle Item Unit of Measure den Code PK48.

20. August 2007 21:08

So ist es "richtiger":

Code:
Item Ledger Entry - OnAfterGetRecord()
----------------------------------------------------------
// ---- Item.GET("Item No."); --- brauchst du nicht!!
ItemUnitofMeasure.SETRANGE("Item No.", "Item No."); -- nicht GET!
ItemUnitofMeasure.SETFILTER(Code,'%1','PK*');
IF ItemUnitofMeasure.FIND('-') THEN // was auch immer du damit machen möchtest


Schaue dir in der Onlinehilfe noch einmal ganz genau die Befehle GET und SETRANGE an.
GET schießt eine Datenbankabfrage los, mit SETRANGE und SETFILTER bastelst du dir einen Filter zusammen. Nach den Filtern kommt immer ein FIND, sonst gibt es keine Datenbankabfrage.

Siehe auch hier: Unterschied zwischen SETRANGE und SETFILTER