Dataport Export-mehrere Zeilen in eine Zeile

16. Februar 2016 11:42

Hallo,

ich muss eine Tabelle exportieren, in der die Daten nach folgendem Format vorliegen:

Kunde Kennzeichen Reifen1
Kunde Kennzeichen Reifen2
Kunde Kennzeichen Reifen3
Kunde Kennzeichen Reifen4


Der Export soll die Daten in einer Zeile enthalten:

Kunde Kennzeichen Reifen1 Reifen2 Reifen3 Reifen4

Und so soll das bei jedem neuen Kunden, der sich in der Tabelle befindet aussehen. Wie kann ich das lösen?
Der einfache Export aller Daten untereinander ist ja simpel.

Hat da jemand einen Vorschlag für mich?

Gruß
Günther

Re: Dataport Export-mehrere Zeilen in eine Zeile

16. Februar 2016 20:12

Nicht über Dataport sondern eine Textdatei manuell befüllen. In einer Codeunit z. B. mit einem passenden Schlüssel über die Tabelle laufen und prüfen ob aktueller Kunde/Kennzeichen gleich dem vorigen ist wenn ja dann anhängen sonst Zeile schreiben.

So in diesem Sinne etwa:

ExportFile.TEXTMODE(TRUE);
ExportFile.CREATE(Datei);
REPEAT
IF KundenNr = VorigeKundenNr THEN
ExportLine := ExportLine + ';' + [Feld]
ELSE BEGIN
ExportFile.WRITE(ExportLine);
ExportLine := [Feld];
END;
UNTIL NEXT = 0;

Re: Dataport Export-mehrere Zeilen in eine Zeile

17. Februar 2016 14:43

Geht das tatsächlich nicht über einen Dataport?

Kann ich die Daten nicht vor dem Ausgeben entsprechend der Anzahl der Reifen zwischenspeichern, zu einem Datensatz vereinen und dann erst ausgeben? Ich dachte,
dass könnte man irgendwie mit Arrays lösen. Oder ist das nicht so möglich?

Sollte es gar nicht anders gehen, werde ich mal die Codeunit nutzen. Würde das aber gerne mit einem Dataport abarbeiten.

Gruß,
Guenther

Re: Dataport Export-mehrere Zeilen in eine Zeile

17. Februar 2016 15:35

So eine Textdatei kann auch aus einem Report gefüllt werden, es muss nicht unbedingt eine Codeunit sein.
Da der ganze Code eeh getippt werden muss, kann das auch über einen Dataport laufen, aber das wäre schon etwas komplexer.

Re: Dataport Export-mehrere Zeilen in eine Zeile

17. Februar 2016 15:51

Hallo,

es ist letztendlich vollkommen egal ob Report, Codeunit oder Dataport, das Problem ist immer das gleiche :-?

wenn man es mit einem Dataport macht, und es immer 4 Reifen sind, kann man das Quick and Dirty im OnPreExport- Trigger wahrscheinlich so lösen:

Code:
Reifen1Txt := Reifen;
next;
Reifen2Txt := Reifen;
next;
Reifen3Txt := Reifen;
next;
Reifen4Txt := Reifen;


Die Dataport- Fields währen dann:
Kunde
Kennzeichen
Reifen1Txt
Reifen2Txt
Reifen3Txt
Reifen4Txt


Gruß Fiddi