[Gelöst] Alle Tabellen in File speichern

21. Februar 2011 12:28

Hallo miteinander,

Ich beginn gleich einmal mit der Aufgabenstellung, welche eigentlich recht simpel klingt:
Alle in Navision vorhandenen Tables mit ihren Zeilen wiefolgt mithilfe einer Codeunit in ein File speichern:
TableID1;TableName1
TableID1;Column1 Entry;Datatype1;Column2 Entry;Datatype2
TableID1;Column1 Entry;Datatype1;Clolumn2 Entry;Datatype2
TableID2;TableName2
...

Ich hoffe man versteht anhand des Beispieles was ich meine.

Das ganze stellt auch ansich kein wirkliches Problem für mich dar, bis auf das Fakt, dass ich keinerlei Möglichkeit gefunden habe, um durch alle existierenden Tables durch zu iterieren.
Bisher ging ich immer von einer RecordRef aus und öffnete eine vorgegebene Tabelle anhand ihrer ID mittels RecordRef.OPEN(Id,<true/false>) und kann anschließend auch alle Einträge durchgehen. Aber wie gesagt weiß ich jetzt leider nicht wie ich alle Tabellen durch iteriere ohne eine stupide schleife die von 1 bis 1000000000 rennt.

Über eine Hilfe zum Lösungsansatz wäre ich sehr dankebar.

Mfg,
Chris
Zuletzt geändert von LordFrag am 23. Februar 2011 16:34, insgesamt 3-mal geändert.

Re: Alle Tabellen in File speichern

21. Februar 2011 12:39

Es gibt eine schöne Tabelle namens Object ;)
Da musst nur richtig darauf filtern und du kannst damit alle Tabellen durchgehen.

Re: Alle Tabellen in File speichern

21. Februar 2011 12:46

Vielen Dank für deine schnelle Antwort, leider aber finde ich bei mir keine Tabelle mit dem Namen Object.

Es gibt 3Tables die den Namen Object beinhalten, jedoch zeigt kaum eine davon brauchbare Informationen:
(Object Translation), Object Metadata und Object Tracking

Mfg,
Chris

Re: Alle Tabellen in File speichern

21. Februar 2011 13:41

Die wirst du auch nicht finden, da es sich um eine virtuelle Tabelle handelt.

Wenn du den Inhalt sehen willst kannst du zum Beispiel den Form Wizard aufmachen und "Object" als SourceTable definieren.

Du kannst also als DataItem oder RecordVariable einfach Object eingeben. Es gibt einige solcher nicht sichtbarer Tabellen, wie File und Date.

Re: Alle Tabellen in File speichern

21. Februar 2011 15:42

Ahh super danke, an so etwas hab ich gar nicht mehr gedacht :).

Hab jetzt ansich das gefunden was ich gesucht hab und werd mich wieder an die Lösung setzen.

Danke,
Chris

Re: Alle Tabellen in File speichern

23. Februar 2011 15:29

Bezüglich des erhalts, aller Tabellen ging wunderbar mittels des Object Records.

Leider bin ich jetzt auf ein anderes Problem gestoßen:

Ich geh mittels einer RecordRef Variable die erste Zeile aller vorhandenen Tabellen durch und will mithilfe von

RecRef.FIELD(<nummer>).NAME / RecRef.FIELD(<nummer>).CAPTION die Zeilen bezeichnung herauslesen um sie anschließend in ein File zu speichern.

Leider gibt mir Navision "Feldnummer <nummer> ist in der Tabelle <tabellenname> nicht definiert." aus und beendet anschließend meine Codeunit.
Die Stelle an der Navision abbricht ist eine, bei der, der Inhalt aus einer anderen Tabelle kommt.

Wie komm ich jetzt trotzdem dynamisch auf die Spaltennamen aller Tabellen?

Mfg,
Chris

Re: Alle Tabellen in File speichern

23. Februar 2011 16:26

Fieldcount und Fieldindex helfen :)

Re: Alle Tabellen in File speichern

23. Februar 2011 16:29

Evtl. hilft auch die Tabelle Field, die jedes Feld aller Tabellen beinhaltet.

Re: Alle Tabellen in File speichern

23. Februar 2011 16:34

Danke, die Tabelle Field war genau was ich suchte :D