[gelöst] Dataport Überschrift überspringen

27. Mai 2020 14:09

Hallo Community,

ich weiß leider nicht, wie ich die erste Zeile beim Import skippe kann.

Ich habe 2 DataItems und zwar Integer (für die Überschriften) und GLAccount (Da sind die Datensätze).

Der Export funktioniert reibungslos, aber der Import nicht. Diese Fehlermeldung taucht auf:
2.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von CronusAG am 2. Juni 2020 09:03, insgesamt 1-mal geändert.

Re: Dataport Überschrift überspringen

27. Mai 2020 14:41

Hallo,

du könntest es mit einem CurrDataPort.Skip im OnBeforeImport- Trigger versuchen.

Gruß Fiddi

Re: Dataport Überschrift überspringen

27. Mai 2020 14:48

Habe ich bereits. Er zeigt die gleiche Fehlermeldung, egal wo ich CurrDataport.Skip eintrage.

Re: Dataport Überschrift überspringen

27. Mai 2020 14:51

Sollte so mit einem Dataitem klappen:
https://navision24.de/blog/daten-import ... ingen.html

Re: Dataport Überschrift überspringen

27. Mai 2020 14:52

Ja genau. Aber dieses mal sind es zwei. Ich brauch das eine, um damit die Überschriften zu erzeugen.

Re: Dataport Überschrift überspringen

27. Mai 2020 14:56

Hallo,

hast du vergessen Felder für den Import anzugeben?

Gruß Fiddi

Re: Dataport Überschrift überspringen

27. Mai 2020 14:56

Das geht auch mit mehreren Dataitems. Der Code muss nur beim ersten stehen.

Re: Dataport Überschrift überspringen

27. Mai 2020 14:58

Es ist ein Objekt, welches Export und Import ausführt. Ohne das DataItem Integer funktioniert das Objekt fehlerfrei.

Re: Dataport Überschrift überspringen

27. Mai 2020 15:03

678.jpg


Es funktioniert immer noch nicht. So sieht die Export-Datei aus:
hi.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Dataport Überschrift überspringen

27. Mai 2020 15:16

Wenn da nur die Überschriften drin sind, kann man gleich abbrechen, also vor dem ersten Dataitem im OnPreDataItem
Code:
IF CurrDataport.IMPORT THEN
   CurrDataport.BREAK;


oder anders aufbauen, ohne Dataportfields und die Daten manuell zusammenstellen und beim Import die erste Zeile in eine Dummyvariable einlesen so wie hier:
Beginners Tip: Creating and Handling Headers in Dataports

Re: Dataport Überschrift überspringen

27. Mai 2020 15:27

Was meinst du mit Dummy?

Re: Dataport Überschrift überspringen

27. Mai 2020 16:10

Der Inhalt der ersten Zeile wird in eine Textvariable eingelesen, die dann nicht weiter ausgewertet wird.
Siehe Codebeispiel im Artikel:
Code:
CurrFile.READ(Dummy); // read line into text variable

Re: Dataport Überschrift überspringen

27. Mai 2020 16:19

Hallo,

was machen die beiden zusätzlichen Felder in der Überschrift?
Werden die benötigt? Falls nein, weg damit.
Falls Ja, solltest du diese auch importieren,
Dann solltest du für jedes zu importierende Feld eine ausreichend große Text Variable angeben.
Im OnBeforeImport- Trigger
Wenn du in der ersten Zeile (Zeilenzähler oder Boolean einbauen) bist, machst zu einen Skip, ansonsten weißt du die importierten Texte per EVALUATE den eigentlichen Variablen zu.

Beim Export im OnBeforeExport, aus den internen Variablen, den Textvariablen per FORMAT die Werte zuweisen.

Gruß Fiddi

Re: Dataport Überschrift überspringen

27. Mai 2020 16:23

Er nimmt jetzt beim Importieren nur die erste Zeile mit ins Record, aber nicht die weiteren.

Re: Dataport Überschrift überspringen

27. Mai 2020 16:32

Hallo,

den Skip oder Break (bitte noch mal probieren. Hab schon lange keinen Dataport mehr programmiert :oops: ) sollte er nur machen, wenn es die erste Zeile ist.

Gruß Fiddi

Re: Dataport Überschrift überspringen

27. Mai 2020 16:41

1.jpg


Das ist der Übeltäter.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Dataport Überschrift überspringen

27. Mai 2020 16:44

Hallo

was steht denn zwischen den Feldern eines Datensatzes? Doch wahrscheinlich kein <NewLine> sondern <TAB> oder etwas ähnliches.

Gruß Fiddi

Re: Dataport Überschrift überspringen

27. Mai 2020 16:51

Tab damit Excel es in die Spalten hinzufügt.

Re: Dataport Überschrift überspringen

27. Mai 2020 17:00

Eine NewLine als DataItemSeparator sollte kein Problem sein. Vorgabe ist ja 2 x Newline (also zusätzlich eine Leerzeile).

Er nimmt jetzt beim Importieren nur die erste Zeile mit ins Record, aber nicht die weiteren.

Da das erste DataItem ja nur eine Zeile hat, meinst du damit das zweite DataItem?

Re: Dataport Überschrift überspringen

27. Mai 2020 17:05

Eine NewLine als DataItemSeparator sollte kein Problem sein. Vorgabe ist ja 2 x Newline (also zusätzlich eine Leerzeile).

Du hast recht. Ich meinte eigentlich den FieldSeparator :oops: (ich hab das son lange nicht mehr gemacht).

Wenn du einzelne Felder importieren willst, dann solltest du in diesem Fall aber <TAB> als FieldSeparator benutzen.


Gruß Fiddi

Re: Dataport Überschrift überspringen

29. Mai 2020 15:47

ich habe ein neues Problem und zwar die Überschriften sind länger als 250 Zeichen. Hat einer eine Idee?

Code:
IF NOT CurrDataport.IMPORT THEN BEGIN
  CurrFile.TEXTMODE(TRUE);
  CurrFile.WRITE(
  GLAccount.FIELDCAPTION("No.") +
  FORMAT(Tab) +
...
  GLAccount.FIELDCAPTION(Balance));
  CurrFile.TEXTMODE(FALSE);
END ELSE BEGIN
  CurrFile.TEXTMODE(TRUE);
  CurrFile.READ(Dummy);
  CurrFile.TEXTMODE(FALSE);
END;

Re: Dataport Überschrift überspringen

2. Juni 2020 09:03

Mit der Funktion SEEK hat es funktioniert.

Re: [gelöst] Dataport Überschrift überspringen

2. Juni 2020 09:07

Ist die Technik da auch noch von 4.x? Textvariablen können bis schon seit vielen Jahren 1024 Zeichen enthalten, ab NAV 2013 sogar unbegrenzt (=2GB).