Dataport // Filterproblem

2. Juni 2015 14:22

Liebe Community,

ich hoffe, dass Ihr mir auch diesmal wieder helfen könnt.

Ich komme bei der Anwendung einer Filterung durcheinander.

Folgender Tatbestand: Basteln eines bestehenden Dataports (DataItem „Sales Line“).

Aufgabe lautet:
a) Wenn der ermittelte „WERT“ (» globale Var.) größer als 0 ist, dann gehe in die Lagerhaltungsdaten (VK-Zeile „anzapfen") und hole von dort in Kombi mit Lagerortcode und Artikelnr. den jeweiligen Einstandspreis und Lagerbestand. (« bis hierhin soweit alles gut)
b) Dann gehe jedoch weiter über die VK-Zeile in die Tabelle 14 Location: Filtere auf das Feld „Target Location Code“ = MUSTERWERT, um die dazugehörigen Lagerorte (Feld names „Code“, welches Primärschlüssel ist) zu ermitteln.
c) Mit den ermittelten Werten (d.h. auf Ziellagerort = MUSTER gefiltert) des Feldes Location.Code gehe zurück in die Lagerhaltungsdaten und ermittle nun für Location.Code den jeweiligen Einstandspreis und Lagerbestand.

Ich bin mir unschlüssig, wie ich von a) nach b) komme. Von b) nach c) würde ich mit einem GET die Lagerhaltungsdaten erneut ansprechen, aber das kommt eher lückenhaft, da die Tabelle 14 nicht alle Felder hat, die mit dem PK von Lagerhaltung übereinstimmen würden.

Das ist mein Konstrukt:

OnBeforeExportRecord()

Code:
IF glRestmenge > 0 THEN BEGIN
  IF glSKU.GET("Location Code","No.","Variant Code") THEN BEGIN
    glSKUUnitCost := glSKU."Unit Cost";
    glSKU.CALCFIELDS(Inventory);
    glSKUInventory := glSKU.Inventory;
   
    glLOC.RESET;
    //glLOC.SETFILTER("Target Location Code",'MUSTER');
   // wäre der Sprung von a) nach b) so richtig?
    glLOC.SETRANGE("Target Location Code","Sales Line"."Location Code");
    IF glLOC.FINDFIRST THEN BEGIN
    // Tab. Location enthält nicht die Felder, die als PK von Tabelle Lagerhaltungsdaten gelten
      IF glSKU2.GET(glLOC.Code) THEN BEGIN
        glSKUUnitCostLoc := glSKU2."Unit Cost";
        glSKU2.CALCFIELDS(Inventory);
        glSKUInventoryLoc := glSKU2.Inventory;
      END;
    END;
   
  END ELSE BEGIN
….
  END;
END;


Ich erhalte nicht den Einstandspreis + Lagerbestand für die Felder "Code" aus der Tabelle Location. Was habe ich denn an meiner Programmierung vergessen/übersehen?
Über eine Hilfestellung würde mich freuen!

Gruß,
Boyrinho

Re: Dataport // Filterproblem

2. Juni 2015 16:19

Zwecks besseren Verständnis ein Bild. Siehe anhang, bitte.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Dataport // Filterproblem

9. Juli 2015 14:42

Verstehe ich Dich richtig, anhand Deines Bildes:
Du möchtest, dass zu dem Ziellagerort LUED zu allen zugehörigen Lagerorten (also AIRPORT-CN, AIRPORT-HK...) der Lagerbestand und der Einstandspreis vom Artikel in der VK-Zeile ausgelesen werden sollen?