2. April 2015 08:52
CalcFormula:
Sum("Item Ledger Entry".Quantity WHERE (Item No.=FIELD(No.),Global Dimension 1 Code=FIELD(Global Dimension 1 Filter),Global Dimension 2 Code=FIELD(Global Dimension 2 Filter),Location Code=FIELD(Location Filter),Drop Shipment=FIELD(Drop Shipment Filter),Variant Code=FIELD(Variant Filter),Lot No.=FIELD(Lot No. Filter),Serial No.=FIELD(Serial No. Filter)))
CalcFormula:
Sum("Sales Line"."Outstanding Qty. (Base)" WHERE (Document Type=CONST(Order),Type=CONST(Item),No.=FIELD(No.),Shortcut Dimension 1 Code=FIELD(Global Dimension 1 Filter),Shortcut Dimension 2 Code=FIELD(Global Dimension 2 Filter),Location Code=FIELD(Location Filter),Drop Shipment=FIELD(Drop Shipment Filter),Variant Code=FIELD(Variant Filter),Shipment Date=FIELD(Date Filter)))
...
Item.CALCFIELDS("S. Consump. of last 12 Months");
IF Item."Calculated to Date" = 0D THEN BEGIN
CurrReport.SKIP;
END;
Unterdeckung := "Item Ledger Entry".Quantity - "Sales Line"."Outstanding Qty. (Base)";
IF Unterdeckung > 0 THEN BEGIN
CurrReport.SKIP;
END;
IF Unterdeckung <= 0 THEN BEGIN
GlobalRowNo += 1;
EnterCell(GlobalRowNo,1,'"' + Item."No." + '"',FALSE,FALSE,'');
EnterCell(GlobalRowNo,2,FORMAT(Description),FALSE,FALSE,'');
EnterCell(GlobalRowNo,3,FORMAT(Unterdeckung),FALSE,FALSE,'');
EnterCell(GlobalRowNo,4,FORMAT(Item."S. Consump. of last 12 Months"),FALSE,FALSE,'');
END;
...
2. April 2015 10:54
NIQ hat geschrieben:DataItems für die "Item Ledger Entry" und die "Sales Line" habe ich schon angelegt. Benötige ich die überhaupt und falls ja, was muss ich in die Trigger schreiben?
NIQ hat geschrieben:Mit Flow Fields habe ich noch nicht viel gemacht. Was muss ich hier wohl noch tun?
NIQ hat geschrieben:Und wie bekomme ich es hin, dass nur die Artikelnummern mit 10 Stellen ausgegeben werden?
2. April 2015 11:24
Benötigst du vermutlich nicht. Du lässt beide Werte genauso berechnen, wie du es in deinem Beispiel mit deinem Feld "S. Consump. of last 12 Months" machst.
Irgendwo in deinem Code steht so etwas wie "ItemLedgerEntry.CALCFIELDS(Quantity)". Daher kommt der Fehler.
2. April 2015 11:59
NIQ hat geschrieben:Was meinst du mit berechnen?
NIQ hat geschrieben:Item.CALCFIELDS("S. Consump. of last 12 Months");
NIQ hat geschrieben:CALCFIELDS habe ich noch nicht in meinem Code. An welcher Stelle benötige ich das?
2. April 2015 12:19
Hast du schon (s.o. ), aber es kann auch sein, dass du das Feld Quantity in den Properties des DataItems "Item Ledger Entry" bei den CalcFields eingetragen hast. Jedoch egal, ob du versuchst, das Feld im Code oder in Properties berechnen zu lassen: das funktioniert da nicht.
...
Item.CALCFIELDS("S. Consump. of last 12 Months");
IF Item."Calculated to Date" = 0D THEN BEGIN
CurrReport.SKIP;
END;
Unterdeckung := "Item Ledger Entry".Quantity - "Sales Line"."Outstanding Qty. (Base)";
IF Unterdeckung > 0 THEN BEGIN
CurrReport.SKIP;
END;
IF Unterdeckung <= 0 THEN BEGIN
GlobalRowNo += 1;
EnterCell(GlobalRowNo,1,'"' + Item."No." + '"',FALSE,FALSE,'');
EnterCell(GlobalRowNo,2,Description,FALSE,FALSE,'');
EnterCell(GlobalRowNo,3,FORMAT(Unterdeckung),FALSE,FALSE,'');
EnterCell(GlobalRowNo,4,FORMAT(Item."S. Consump. of last 12 Months"),FALSE,FALSE,'');
END;
...
Schau dir die Funktion STRLEN oder die Filtermöglichkeiten mit Fragezeichen an.
Item."No." = '??????????'
2. April 2015 12:33
NIQ hat geschrieben:STRLEN bringt mir in dem Fall nichts, da die Funktion ja nur die Anzahl der Zeichen einer Zeichenkette ausgibt.
NIQ hat geschrieben:Leider bekomme ich als Wert immer nur 0 bei Unterdeckung bei allen Artikeln raus, sprich er rechnet nicht richtig.
NIQ hat geschrieben:
- Code:
Unterdeckung := "Item Ledger Entry".Quantity - "Sales Line"."Outstanding Qty. (Base)";
NIQ hat geschrieben:Außer das CALCFIELD für "S. Consump. of last 12 Months" habe ich kein anderes im Code. Weitere DataItems habe ich auch nicht angelegt.
NIQ hat geschrieben:DataItems für die "Item Ledger Entry" und die "Sales Line" habe ich schon angelegt.
2. April 2015 12:58
Eben. Du wolltest doch heraus bekommen, welche 10 Zeichen haben, oder? Die kannst du dann skippen.
Aber dein Vorschlag funktioniert auch, wenn du ihn in der DataItemTableView des Dataitems benutzt.
Du möchtest doch etwas ganz anderes rechnen, nämlich den Lagerbestand minus Menge in Auftrag?
2. April 2015 13:14
2. April 2015 13:45
NIQ hat geschrieben:Die 10 Zeichen haben sollen ausgegeben werden. Alle anderen nicht...
NIQ hat geschrieben:Also wäre die Zeile ja schon korrekt!?
2. April 2015 15:17
10. April 2015 13:02
10. April 2015 23:40
13. April 2015 10:27
13. April 2015 10:53
13. April 2015 11:08
14. April 2015 07:15
14. April 2015 12:23
Dafür kannst du zB eine Variable einbinden, die du bei den Optionen anzeigst.
In deinem allerersten Beitrag hast du ja die CalcFormulas zitiert. Bei der "Menge in Auftrag" ist bereits der Date Filter mit einbezogen. Somit kannst du dieses Feld auch weiterhin benutzen.
14. April 2015 15:52
Item.SetRange( ... );
..
.. <-- alle deine bisherigen Filter
..
Item.SetRange("Date Filter",VonDatum,BisDatum);
Item.Calcfields("Qty. on Sales Order");
14. April 2015 16:32
Item.SetRange( ... );
Item.Calcfields("Qty. on Sales Order");
IF STRLEN(Item."No.") <> 10 THEN
CurrReport.SKIP;
Item.CALCFIELDS("S. Consump. of last 12 Months");
IF Item."Calculated to Date" = 0D THEN BEGIN
CurrReport.SKIP;
END;
Item.CALCFIELDS(Inventory);
Item.CALCFIELDS("Qty. on Sales Order");
Unterdeckung := Item.Inventory - Item."Qty. on Sales Order";
IF Unterdeckung >= 0 THEN BEGIN
CurrReport.SKIP;
END;
GlobalRowNo += 1;
EnterCell(GlobalRowNo,1,'"' + Item."No." + '"',FALSE,FALSE,'');
EnterCell(GlobalRowNo,2,Description,FALSE,FALSE,'');
EnterCell(GlobalRowNo,3,FORMAT(Item.Inventory),FALSE,FALSE,'');
EnterCell(GlobalRowNo,4,FORMAT("Qty. on Sales Order"),FALSE,FALSE,'');
EnterCell(GlobalRowNo,5,FORMAT(Unterdeckung),FALSE,FALSE,'');
EnterCell(GlobalRowNo,6,FORMAT(Item."S. Consump. of last 12 Months"),FALSE,FALSE,'0,00');
14. April 2015 21:44
Alles, was du ggf. bisher schon einfilterst war damit gemeint. Nach deinem Codeschnipsel also nichtsNIQ hat geschrieben:Welche Range muss ich denn hier abrufen?
14. April 2015 21:53
15. April 2015 08:00
NIQ hat geschrieben:Was genau benötige ich denn jetzt alles?
15. April 2015 13:20