[Gelöst] Zeilen-Sortierung in der Bestellung beim Ausdruck

27. Oktober 2006 00:03

Hi zusammen,

hat von Euch schon mal jemand die Sortierung der Einkaufszeilen in der Bestellung nach dem erwartetem Lieferdatum geändert ? :roll:

Mein Kunde hat die Anforderung, die Standardsortierung (Primary Key ist ja Doc.-Type, Doc.-No. Line No.) auf die nach Erwartetem Wareneingangsdatum ("Expected Receipt Date") aufsteigend zu ändern.

Hab bereits versucht unter Neuanlage eines Schlüssels ("Expected Receipt Date") die Sortierung auf dem DataItem Purchase Line (Properties DataItemTableView neuer Key hinterlegt) und im DataItem Integer/RoundLoop im Trigger-OnPreDataItem per SETCURRENTKEY herzustellen. Beides hat nicht gefunzt.

Eigenartig ist, dass bei Verwendung des SETCURRENTKEY Befehls im Trigger Einkaufszeilen "verschluckt" werden. (Es gibt keine zweite Seite :-D )
Beispiel: 4 Zeilen werden eingegeben, dabei ist das Erw. Wareneingangsdatum auch chronologisch. Druck der Bestellung einwanfrei, gut es gibt ja eigentlich auch nichts zum Sortieren ;-)
Wird jetzt beispielsweise in der ersten Zeile ein erw. WE-Datum eingegeben, welches nach dem Datum der vierten Zeile ist, dann wird nur die erste gedruckt ?

Bin nicht der große Report-Fan, wer hat eine Idee oder hat bereits vor dem gleichen Prob gestanden ?

Gruss
Wolfgang
Zuletzt geändert von voyager am 6. Dezember 2006 12:51, insgesamt 1-mal geändert.

6. Dezember 2006 12:50

Bin wieder mal über die Anforderung meines Kunden gestolpert (hat zum Glück beim Kunden keine hohe Prio :wink: ) und konnte nun doch lösen.

Es reicht, den Key per Code im entsprechenden Trigger einzustellen.
Komisch, dass ich da nicht gleich darauf gekommen bin :oops:

Hier das Code-Stück:
Code:
RoundLoop - OnPreDataItem()
MoreLines := PurchLine.FIND('+');
WHILE MoreLines AND (PurchLine.Description = '') AND (PurchLine."Description 2"= '') AND
      (PurchLine."No." = '') AND (PurchLine.Quantity = 0) AND
      (PurchLine.Amount = 0) DO
  MoreLines := PurchLine.NEXT(-1) <> 0;
IF NOT MoreLines THEN
  CurrReport.BREAK;

//voy+ Sortierung der Zeilen
PurchLine.SETCURRENTKEY("Document Type","Document No.","Expected Receipt Date");
//voy-

PurchLine.SETRANGE("Line No.",0,PurchLine."Line No.");
SETRANGE(Number,1,PurchLine.COUNT);
CurrReport.CREATETOTALS(PurchLine."Line Amount",PurchLine."Inv. Discount Amount");


Wolfgang

Da es den Key in der Tabelle Purchase Line im Standard nicht gibt, ist er vorher anzulegen.