Dynamics AX Blog - Dynamics AX 2012 - Beiträge von 2008 - Seite 2

Momentan angezeigt werden nur Beiträge, welche für die Dynamics AX-Version »Dynamics AX 2012« relevant sind. Filter entfernen

RSS-Feed dieser Version
Momentan angezeigt werden nur Beiträge von »2008«.

Dynamics AX: Excel-Datei erstellen aus einer CSV-Datei

Manchmal ist es notwenig, aus Dynamics AX heraus per X++ eine "echte" Excel-Datei zu erstellen. Dazu stellt AX ja bekanntermaßen Objekte wie SysExcelApplication, SysExcelWorkBooks usw. zur Verfügung. Der Nachteil dieser Objekte ist rasch erwähnt: Sie sind langsam!

Aber es geht auch wesentlich rascher, allerdings mit dem Umweg per TextIO zuerst eine CSV-Datei zu erstellen und diese anschließend von AX in eine Excel-Datei umzuwandeln.

Der Code für letztere Umwandlung ist diesem Microsoft-Knowlegebase-Artikel zu entnehmen (erfordert PartnerSource-Zugriff).


 
 

CSV-Datei und Zeilenumbrüche

Wenn man aus AX Daten in eine CSV-Datei exportieren muss, gibt es immer wieder Probleme mit Zeilenumbrüchen in mehrzeiligen AX-Feldern.

Um diese zu umgehen, müssen lediglich folgende Punkte beachtet werden:

  • Der Text muss in doppelte Anführungszeichen (") eingeschlossen werden
  • Der RecordDelimiter des TextIO-Objekts muss ein Linefeed sein [=num2char(10)]
  • Doppelte Anführungszeichen im Text müssen "verdoppelt" werden

 

static void Export_CSV(Args _args)
{
    TextIO      textFile;
    CustTable   CustTable;

    str csv(str _str)
    {
        _str = strReplace(_str, """, """");
       
        return """ + _str + """;
    }
    ;

    textFile = new TextIO("c:\temp\csv_test.csv","W",0);
    textFile.outFieldDelimiter(";");
    textFile.outRecordDelimiter(num2char(10));  // Wichtig wegen Zeilenumbrüchen!!!


    while select CustTable
    {
        textFile.write(
            csv(CustTable.Name) +
            ";" +
            csv(CustTable.Address) +
            ";"
            );
    }
   
    textFile = null;
}

 
 
Seiten « 1 2 

 

 
 
 
Beiträge des aktuellen Monats
April 2008
MoDiMiDoFrSaSo
 123456
78910111213
14151617181920
21222324252627
282930 
 
© 2006-2025 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu