12. September 2011 16:18
Hallo,
ich habe eine Frage zum Auslesen von Werten aus einer Exceltabelle?
Wie komme ich in der Funktion Readsheet in der Tabelle 370 Excelbuffer an den Wert "XlWorkSheet.Range(xlColID + xlRowID).Value" ran, wenn dieser mehr als 1024 Zeichen umfasst. Dieser lässt sich dann ja auch nicht mehr mit Format(XlWorkSheet.Range(xlColID + xlRowID).Value) in einen String umwandeln. Ich würde diesen Wert gerne in eine Textdatei schreiben. Ist so etwas überhaupt möglich?
Vielen Dank im voraus.
Viele Grüße
Jens
12. September 2011 16:53
jsch hat geschrieben:Wie komme ich in der Funktion Readsheet in der Tabelle 370 Excelbuffer an den Wert "XlWorkSheet.Range(xlColID + xlRowID).Value" ran, wenn dieser mehr als 1024 Zeichen umfasst.
in einen outstream schreiben?
12. September 2011 16:57
Genau an der Stelle gibt es mehrere Fallstricke, z.B. nicht aufgelöste Formeln mag der Excel-Buffer dort auch nicht. Was steht denn in dem Feld? Ich meine, Excel ist ja eigentlich kein Word und daher für lange Texte auch nur bedingt geeignet. Daher würde ich als erstes versuchen bei der Erstellung der Exceldatei schon darauf zu achten.
Ansonsten versuchen das Ganze vorab außerhalb von NAV zu konvertieren. Dann wird es allerdings sofort wieder deutlich komplizierter.
13. September 2011 10:55
Vielen Dank für eure Antworten.
Das mit dem outstream habe ich schon versucht. Leider bin ich da nicht so richtig weitergekommen.
Das Problem ist, dass ich den Wert aus "XlWorkSheet.Range(xlColID + xlRowID).Value" nicht in einen outstream umgewandelt bekomme.
Meine Versuche:
Inputfile.CREATE('c:\test.txt');
Inputfile.CREATEOUTSTREAM(OutStream);
OutStream.WRITE(XlWorkSheet.Range(xlColID + xlRowID).Value);
erzeugt diese Fehlermeldung: "Sie verwenden einen ungültigen Typ für diese Funktion"
OutStream.WRITE(format(XlWorkSheet.Range(xlColID + xlRowID).Value));
erzeugt diese Fehlermeldung: "Die Länge des Textstrings überschreitet die Größe des Zeichenpuffers"
Mit OutStream.WRITETEXT komme ich auch nicht weiter. Und auch die Umwandlung in eine BigText-Variabel hat nicht so richtig funktioniert.
Gibt es noch andere Möglichkeiten?
14. September 2011 09:58
Hallo,
Mach dir doch eine VAriable vom Typ Text (Länge 1024) und lies es ertmal da ein. Wenn die Länge größer ist dann Splitte doch den Text und fange eine neue Zeile im Textdokument an.
Gruß
Aydin
14. September 2011 14:33
Hallo,
benutze mal XlWorkSheet.Range(xlColID + xlRowID).Text statt XlWorkSheet.Range(xlColID + xlRowID).Value , dann kannst du auch mit Copystr arbeiten.
Gruß, Fiddi
15. September 2011 21:27
Hallo,
das mit XlWorkSheet.Range(xlColID + xlRowID).Text habe ich ausprobiert.
Leider enthält dieser Wert nur die ersten 1024 Zeichen.
Danke und Gruß
Jens
16. September 2011 11:15
Nur BigText kann mehr als 1024 Zeichen halten.
17. September 2011 15:43
Wie kann ich den Inhalt von XlWorkSheet.Range(xlColID + xlRowID).Value in eine BigText-Variable übertragen?
22. September 2011 16:55
entschuldigt bitte die kurze unterbrechung bzw zwischenfrage
wie kommt ihr auf 1024 zeichen?
der text - datentyp in nav kann doch nur 250 zeichen verwalten ...alles andere müsste ja in bigtext rein und dann mit copystr verarbeitet werden, oder täusche ich mich da jetzt?
22. September 2011 17:40
sweikelt hat geschrieben:entschuldigt bitte die kurze unterbrechung bzw zwischenfrage
wie kommt ihr auf 1024 zeichen?
der text - datentyp in nav kann doch nur 250 zeichen verwalten ...alles andere müsste ja in bigtext rein und dann mit copystr verarbeitet werden, oder täusche ich mich da jetzt?
Für Tabellenfelder vom Typ "Text" stimmt das mit den 250 Zeichen. Bei Variablen hast du bis zu 1024 Zeichen.
23. September 2011 09:32
@meto, jap, habs dann gestern auch noch rausgefunden :D .... man lernt nie aus
jsch hat geschrieben:Wie kann ich den Inhalt von XlWorkSheet.Range(xlColID + xlRowID).Value in eine BigText-Variable übertragen?
- Code:
BigText.ADDTEXT(XlWorkSheet.Range(xlColID + xlRowID))
mein problem wäre jetzt folgendes:
ich hab einen bigtext mit einem string gefüllt und möchte nun den string in eine text-variable von 250 zeichen speichern (falls bigtext zu lang is, dann einfach abschneiden), aber i-wie funktioniert das mit dem abschneiden bzw speichern nicht :(
hat jemand ne idee? => mit der GETSUBTEXT Function funktioniert es ja nicht, da mir dort dann nen integer wiedergegeben wird :(
23. September 2011 11:19
Hallo,
das geht mit der "CopySTR" Funktion. Vielleicht brauchst du noch eine Hilfsvariable, falls du mit deinen Variablen nicht zurecht kommst:-)
http://www.navision24.de/befehle/copystr.htmlGruß
Aydin
23. September 2011 12:43
sweikelt hat geschrieben:hat jemand ne idee? => mit der GETSUBTEXT Function funktioniert es ja nicht, da mir dort dann nen integer wiedergegeben wird :(
Der Returnwert ist nicht der einzige Weg, um von einer Funktion Daten zu erhalten.
Schau Dir mal den Satz in der Hilfe bzgl. des ersten Parameters an.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.