5. Dezember 2011 10:29
if findfirst ("Item Ledger Entry"."Entry Type", 'Einkauf') then
(CurrReport.SHOWOUTPUT;
//nur ausführen, falls der Artikel bereits gekauft wurde also mind. 1x Postenart Einkauf hat aus Item Ledger Entry
IF AnzahlLieferanten >= 2 THEN BEGIN
AnzahlMultiLieferantenArtikel +=1;
AnzahlMultiLieferantenArtikelG +=1;
END;
IF AnzahlLieferanten >= 1 THEN BEGIN
AnzahlArtikelmind1Lieferant +=1;
AnzahlLieferanten := 0;
END;
IF LastItemCategoryCode <> Item."Item Category Code" THEN BEGIN
CLEAR(AnzahlArtikel);
CLEAR(AnzahlMultiLieferantenArtikel);
LastItemCategoryCode := Item."Item Category Code";
END;
AnzahlArtikel +=1;
AnzahlArtikelGesamt +=1;
AnzahlLieferanten += 1;
//hier muss die Bedingung rein, dass nur um 1 erweitert wird, falls sich die Einträge unterscheiden
//Beispiel: 11111,11111,11111,22222 => ergeben nur 2 Lieferanten, ohne Filterbed. erhält man 4 Einträge
5. Dezember 2011 12:11
5. Dezember 2011 12:18
5. Dezember 2011 12:45
Artikelnummer,11111, ...
Artikelnummer,11111, ...
Artikelnummer,11111, ...
Artikelnummer,22222, ...
5. Dezember 2011 14:21
if findfirst value 'Einkauf' in "Item Ledger Entry".Postenart then //falls mind. 1x der Wert Einkauf in dem Feld Postenart gefunden wird dann
IF AnzahlLieferanten >= 2 BEGIN
AnzahlMultiLieferantenArtikel +=1;
AnzahlMultiLieferantenArtikelG +=1;
END;
if findfirst value 'Einkauf' in "Item Ledger Entry".Postenart then //falls mind. 1x der Wert Einkauf in dem Feld Postenart gefunden wird dann
IF AnzahlLieferanten >= 1 BEGIN
AnzahlArtikelmind1Lieferant +=1;
AnzahlLieferanten := 0;
END;
AnzahlArtikel +=1;
AnzahlArtikelGesamt +=1;
5. Dezember 2011 14:29
misterelektro1981 hat geschrieben:oder lasse ich die Item Ledger Entry als DataItem weg, zieh sie mir als Record und baue dann meine Bedingung in die Purchase Price ein???
5. Dezember 2011 14:43
5. Dezember 2011 15:07
ItemLedgerEntry.SetRange("Entry Type",ItemLedgerEntry."Entry Type"::Purchase);
ItemLedgerEntry.SetRange("Item No.","No.");
if ItemLedgerEntry.isempty then
CurrReport.Skip;
5. Dezember 2011 16:48
IF LieferantenCode <> "Purchase Price"."Vendor No." THEN BEGIN
AnzahlLieferanten += 1;
LieferantenCode := "Purchase Price"."Vendor No.";
END;
5. Dezember 2011 23:58
misterelektro1981 hat geschrieben:Ist nun 1 Lieferant vorhanden (egal ob nur 1mal oder 10 mal der gleiche) und die Einkaufsbedingung ist erfüllt, so wird die Anzahl an Lieferanten mit 0 ausgegeben.
6. Dezember 2011 10:37
CLEAR(LieferantenCode);
IF AnzahlLieferanten >= 2 THEN BEGIN
AnzahlMultiLieferantenArtikel +=1;
AnzahlMultiLieferantenArtikelG +=1;
END;
IF AnzahlLieferanten >= 1 THEN BEGIN
AnzahlArtikelmind1Lieferant +=1;
AnzahlLieferanten := 0;
END;
6. Dezember 2011 11:29
misterelektro1981 hat geschrieben:1) Es sollen nur die Artikel ausgegeben werden, die bereits einmal beschafft wurden.
6. Dezember 2011 12:27
6. Dezember 2011 14:21
6. Dezember 2011 14:28
6. Dezember 2011 14:33
6. Dezember 2011 14:50
6. Dezember 2011 15:51
Item - OnPreDataItem()
RhePic.GET;
RhePic.CALCFIELDS(Picture);
Item.SETFILTER("Replenishment System",'Einkauf');
Item.SETFILTER("Item Category Code",'GK|HP|SB|KL|MR');
IF "Item Category Code" = 'KL|MR' THEN
Item.SETFILTER("Product Group Code",'KL01|MR03..MR06');
CLEAR(AnzahlLieferanten);
CLEAR(AnzahlMultiLieferantenArtikel);
CLEAR(AnzahlArtikelmind1Lieferant);
CLEAR(AnzahlArtikel);
CLEAR(AnzahlMultiLieferantenArtikelG);
CLEAR(GesamtArtikel);
CLEAR(AnzahlArtikelOhne);
Item - OnAfterGetRecord()
CLEAR(LieferantenCode);
ItemLedgerEntry.SETRANGE("Entry Type",ItemLedgerEntry."Entry Type"::Purchase);
ItemLedgerEntry.SETRANGE("Item No.","No.");
IF ItemLedgerEntry.ISEMPTY THEN
CurrReport.SKIP;
IF AnzahlLieferanten >= 2 THEN BEGIN
AnzahlMultiLieferantenArtikel +=1;
AnzahlMultiLieferantenArtikelG +=1;
END;
IF AnzahlLieferanten >= 1 THEN BEGIN
AnzahlArtikelmind1Lieferant +=1;
AnzahlLieferanten := 0;
END;
IF ItemCode <> Item."Item Category Code" THEN BEGIN
CLEAR(AnzahlArtikel);
CLEAR(AnzahlMultiLieferantenArtikel);
ItemCode := Item."Item Category Code";
END;
GesamtArtikel += 1;
AnzahlArtikel += 1;
Item - OnPostDataItem()
IF LieferantenCode <> PurchasePrice."Vendor No." THEN BEGIN
AnzahlLieferanten += 1;
LieferantenCode := PurchasePrice."Vendor No.";
END;
6. Dezember 2011 16:22
6. Dezember 2011 17:53
Item - OnPreDataItem()
RhePic.GET;
RhePic.CALCFIELDS(Picture);
Item.SETFILTER("Replenishment System",'Einkauf'); //diverse Filter
Item.SETFILTER("Item Category Code",'GK|HP|SB|KL|MR');
IF "Item Category Code" = 'KL|MR' THEN
Item.SETFILTER("Product Group Code",'KL01|MR03..MR06');
IF ItemCode <> Item."Item Category Code" THEN BEGIN //Gruppenbezogen bzw. beim Gruppenwechsel sollen diese Variablen geleert werden;
CLEAR(AnzahlArtikel);
CLEAR(AnzahlMultiLieferantenArtikel);
ItemCode := Item."Item Category Code";
END;
Item - OnAfterGetRecord()
ItemLedgerEntry.SETRANGE("Entry Type",ItemLedgerEntry."Entry Type"::Purchase); //das ist die Abprüfung, ob ein Posteneintrag Einkauf vorhanden ist, sonst wird eine weiter Verarbeitung unterbunden
ItemLedgerEntry.SETRANGE("Item No.","No.");
IF ItemLedgerEntry.ISEMPTY THEN
CurrReport.SKIP;
CLEAR(LieferantenCode); //wird geleert, damit die Anzahl von Lieferanten angezeigt ist
IF LieferantenCode <> PurchasePrice."Vendor No." THEN BEGIN //bei unterschiedlichen Lieferantencodes wird der Zähler um 1 erhöht, oder?
AnzahlLieferanten += 1;
LieferantenCode := PurchasePrice."Vendor No.";
END;
IF AnzahlLieferanten >= 2 THEN BEGIN //für eine spätere Verwendung in den Sections
AnzahlMultiLieferantenArtikel +=1;
AnzahlMultiLieferantenArtikelG +=1;
END;
IF AnzahlLieferanten >= 1 THEN BEGIN //für eine spätere Verwendung in den Sections
AnzahlArtikelmind1Lieferant +=1;
AnzahlLieferanten := 0;
END;
GesamtArtikel += 1;
AnzahlArtikel += 1;
6. Dezember 2011 18:13
Item - OnPreDataItem()
RhePic.GET;
RhePic.CALCFIELDS(Picture);
Item.SETFILTER("Replenishment System",'Einkauf'); //diverse Filter
Item.SETFILTER("Item Category Code",'GK|HP|SB|KL|MR');
IF "Item Category Code" = 'KL|MR' THEN <--- bringt hier nichts, da noch kein Artikel gefunden wurde. Soll das eine Oder-Abfrage sein?
Item.SETFILTER("Product Group Code",'KL01|MR03..MR06');
IF ItemCode <> Item."Item Category Code" THEN BEGIN <--- ebenfalls: noch kein Artikel gefunden
CLEAR(AnzahlArtikel);
CLEAR(AnzahlMultiLieferantenArtikel);
ItemCode := Item."Item Category Code"; <--- ebenfalls: noch kein Artikel gefunden
END;
7. Dezember 2011 08:44
Item - OnPreDataItem()
RhePic.GET;
RhePic.CALCFIELDS(Picture);
Item.SETFILTER("Replenishment System",'Einkauf');
Item.SETFILTER("Item Category Code",'GK|HP|SB|KL|MR');
Item - OnAfterGetRecord()
IF "Item Category Code" = 'KL|MR' THEN
Item.SETFILTER("Product Group Code",'KL01|MR03..MR06');
IF ItemCode <> Item."Item Category Code" THEN BEGIN
CLEAR(AnzahlArtikel);
CLEAR(AnzahlMultiLieferantenArtikel);
ItemCode := Item."Item Category Code";
END;
ItemLedgerEntry.SETRANGE("Entry Type",ItemLedgerEntry."Entry Type"::Purchase);
ItemLedgerEntry.SETRANGE("Item No.","No.");
IF ItemLedgerEntry.ISEMPTY THEN
CurrReport.SKIP;
CLEAR(LieferantenCode);
IF LieferantenCode <> PurchasePrice."Vendor No." THEN BEGIN
AnzahlLieferanten += 1;
LieferantenCode := PurchasePrice."Vendor No.";
END;
IF AnzahlLieferanten >= 2 THEN BEGIN
AnzahlMultiLieferantenArtikel +=1;
AnzahlMultiLieferantenArtikelG +=1;
END;
IF AnzahlLieferanten >= 1 THEN BEGIN
AnzahlArtikelmind1Lieferant +=1;
AnzahlLieferanten := 0;
END;
GesamtArtikel += 1;
AnzahlArtikel += 1;
7. Dezember 2011 11:41
[quote="misterelektro1981"]IF "Item Category Code" = 'KL|MR' THEN[/quote]
SetRange(Feld, ...)
if findset then repeat
.
.
until next=0;
7. Dezember 2011 11:48
7. Dezember 2011 12:00
If "Item Category Code"='XY' OR "Item Category Code"='XYZ' then ...