Was machen bei lahmen Datenexport aus Reports in Excel

Der Export von Daten welche aus einem Report von Dynamics NAV (Version?) nach Excel ausgegeben werden sollen, kann unter Umständen langsam sein, auch wenn nur etwa ein Zehntel der Kapazität eines Excel Spread Sheets damit gefüllt wird.

Dieser Umstand kann wie folgt erklärt werden:

Im folgenden Codestück des Aufrufes der Funktion „CreateSheet“ der Tabelle 37 (Excelpuffer), wird hier das Pagesetup für das Excel Sheet vorgenommen. Die Formatierung der Zellen in, konkret der Font mit der Eigenschaft „Bold“ ist sehr Performanceaufwendig.

Tablle 370 "Excel Buffer" Funktion “CreateSheet”:

 

    IF Comment <> '' THEN

      XlWrkSht.Range(xlColID + xlRowID).AddComment := Comment;

{ /// Das Bold- Format ist sehr Zeitaufwendig!

    IF Bold THEN

      XlWrkSht.Range(xlColID + xlRowID).Font.Bold := Bold;

}

    IF Italic THEN

      XlWrkSht.Range(xlColID + xlRowID).Font.Italic := Italic;

Wenn folgende Veränderung an diesem Codestück vorgenommen werden, kann bei der Validierung der Formatierung im Seitensetup von Excel, die Performance des Exports der Daten aus dem Report nach Excel immens gesteigert werden.

Funktion CreateSheet:

 

Ersetzten Sie dieses Code Stück

IF Bold THEN

     XlWrkSht.Range(xlColID + xlRowID).Font.Bold := Bold;

 

mit diesem Code Stück

 

  IF Bold THEN BEGIN

    TempBoldList.Code := xlColID + xlRowID;

    IF TempBoldList.INSERT THEN;

  END;

 

TempBoldList ist eine temp record variable der tablle 7 Standard Text.

 

Fügen Sie dieses Code Stück außerdem noch an das Ende der Funktion ein:

 

IF TempBoldList.FINDSET THEN

  REPEAT

    XlWrkSht.Range(TempBoldList.Code).Font.Bold := Bold;

  UNTIL TempBoldList.NEXT = 0;

Im ursprünglichen Code würde so verfahren, dass während der Ausführung des Reports für jeden generierten Datensatz parallel die Zelle in Excel formatiert wurde. Im veränderten Code wird nun bei der Ausführung des Reports so verfahren, dass erst einmal ermittelt wird, welche Zellen im Excel Sheet formatiert werden müssen und im nächsten Schritt wird dann die Formatierung der formatierungsbedürftigen Zellen vorgenommen.

Peter Schimon Mosessohn

Specialist Support Engineer

EMEA Customer Support & Services - SMS&P