[Gelöst] Export über ExcelBuffer: Wie Zelle formatieren?

7. April 2008 18:23

Hallo Experten!
Ich exportiere Daten über den ExcelBuffer. Habe mir dazu das Tutorial von Navision24.de angesehen. Der Export klappt auch gut. Mein Problem ist, dass die Daten im Feld "No." mit führenden Nullen beginnen, also z.B. "00123". Excel macht dann daraus "123".

Wie kann ich die Zelle als Text-Zelle definieren, so dass meine Nullen erhalten bleiben?

Ich habe auch schon versucht mit ''''+FORMAT("No.") dem Ganze ein Hochkomma voran zustellen, dabei ist aber der Exort mit einer C/AL Fehlermeldung abgebrochen. Leider konnte ich nicht feststellen, wo und warum.

Viele Grüße, Lars Brinkmann
Zuletzt geändert von BrinkmannLars am 8. April 2008 21:24, insgesamt 1-mal geändert.

7. April 2008 20:12

Stelle dem Feldinhalt noch einen einfachen Anführungsstrich vor, also statt 00123 '00123 (Standard Excelfunktion: ' bedeutet Textformat)

7. April 2008 22:34

oder du übergibst den Text als Formel und dann so:

="00123"

Gruß, Marc

7. April 2008 22:51

Natalie hat geschrieben:Stelle dem Feldinhalt noch einen einfachen Anführungsstrich vor, also statt 00123 '00123 (Standard Excelfunktion: ' bedeutet Textformat)


Das ist schon ein einfacher Anführungsstrich, die ''''+"No." sind vier einfache Anführungsstriche. Mit drei ''' hat es nicht funktioniert. Da kommt dann ein Syntax-Fehler, weil er ein ) erwartet.

Mit 'meinText'+"No". könnte ich dem Feldinhalt meinText voranstellen. Also dachte ich mit ''' kann ich dem Feldinhalt das ' voranstellen. Ging aber nicht. Mit zwei '' ging es dann, aber hier kam dann irgendwann ein Fehler im gesamten Ablauf. Weiß jetzt leider nicht mehr genau welcher.

Viele Grüße, Lars Brinkmann

7. April 2008 22:54

Marc Teuber hat geschrieben:oder du übergibst den Text als Formel und dann so:
="00123"


Öh, also in etwa so?:
Statt:
EnterCell(RowNo, 2, "No.", '', FALSE, FALSE, FALSE);
Setze:
EnterCell(RowNo, 2, '', "No.", FALSE, FALSE, FALSE);

Viele Grüße, Lars Brinkmann

8. April 2008 10:26

Ich habe das folgendermaßen gemacht:

Code:
EnterCell(RowNo, 2, '', STRSUBSTNO(Text001, "No."), FALSE, FALSE, FALSE);


Wobei Text001 eine Textkonstante ist und wie folgt aussieht:

Text001="%1"

Gruß, Marc
Zuletzt geändert von Marc Teuber am 8. April 2008 22:55, insgesamt 1-mal geändert.

8. April 2008 21:25

Hallo Marc!
Vielen Dank, das hat funktioniert.

Viele Grüße, Lars Brinkmann

Re: [Gelöst] Export über ExcelBuffer: Wie Zelle formatieren?

15. Juni 2009 08:29

Hallo zusammen,
da ich ein ähnliches Problem habe, aber deshalb kein neues Thema öffnen möchte, schreibe ich hier.

Und zwar mein Problem:

Der Export in Excel klappt soweit, nur wenn ich den Lagerortcode (z.b 11.1) Exportieren möchte, macht mir Excel ein Datum (11. Jan) daraus.

OnAfterGetRecord:
EnterCell(Row, 11, FORMAT("Sales Line"."Location Code"), FALSE, FALSE, FALSE);


OnPreDataItem:
EnterCell(Row, 11, 'Lagerortcode', TRUE, FALSE, FALSE);

Wie muss ich den Code ändern, damit Excel den Wert direkt so übernimmt, wie er auch in wirklichkeit ist (z.b 11.1)

MFG schummd

Re: [Gelöst] Export über ExcelBuffer: Wie Zelle formatieren?

15. Juni 2009 10:06

schummd hat geschrieben:Wie muss ich den Code ändern, damit Excel den Wert direkt so übernimmt, wie er auch in wirklichkeit ist (z.b 11.1)

Du musst der Zelle ein Textformat verpassen:

Code:
EnterCell(Row, 11, '''' + 'Lagerortcode', TRUE, FALSE, FALSE);

Re: [Gelöst] Export über ExcelBuffer: Wie Zelle formatieren?

15. Juni 2009 10:16

Meine Zeile muss wie folgt aussehen:

Code:
EnterCell(Row, 11, '''' + FORMAT("Sales Line"."Location Code"), FALSE, FALSE, FALSE);



Danke für die Hilfe :)

Re: [Gelöst] Export über ExcelBuffer: Wie Zelle formatieren?

15. Juni 2009 10:26

FORMAT ist übrigens nicht notwendig, weil es sich bei "Sales Line"."Location Code" ohnehin um ein Textfeld (speziell: CODE) handelt.