Excel Export

Veröffentlicht: 7. Oktober 2011 in Tipp

Eine Regelmäßige Anforderung: „Können wir diesen Report auch nach Excel exportieren?“ und die Antwort ist natürlich „Ja“ 🙂 Das ist sogar, sehr einfach!

Wie benötigen folgende Variablen:

ShowInExcel: Boolean;
ExcelBuf: TEMPORARY Record 370;

Die boolean ShowInExcel ist sinnvoll um den Export optional einzurichten zu können und diesen nicht grundsätzlich als Excel zu exportieren. So besteht also die Wahl zwischen „Ich Drucke aus“ und „ich exportiere in  Excel“. Des Weiteren benötigen wir die folgenden drei Proceduren:

LOCAL PROCEDURE CreateCaption@1();
BEGIN
  ExcelBuf.NewRow;
  ExcelBuf.AddColumn(.FIELDCAPTION("),FALSE,'',TRUE,FALSE,TRUE,'@');
  ExcelBuf.AddColumn(.FIELDCAPTION(.FIELDCAPTION(),FALSE,'',TRUE,FALSE,TRUE,'@');
  ExcelBuf.AddColumn(.FIELDCAPTION(),FALSE,'',TRUE,FALSE,TRUE,'@');
END;
PROCEDURE CreateNewDataRow@2();
BEGIN
  ExcelBuf.NewRow;
  ExcelBuf.AddColumn(.,FALSE,'',FALSE,FALSE,TRUE,'@'); // das @ steht für Textwerte
  ExcelBuf.AddColumn(.,FALSE,'',FALSE,FALSE,TRUE,'@');
  ExcelBuf.AddColumn(.,FALSE,'',FALSE,FALSE,TRUE,'@');
  ExcelBuf.AddColumn(.,FALSE,'',FALSE,FALSE,TRUE,'@');
END;
PROCEDURE CreateExcelFile@3();
BEGIN
  ExcelBuf.CreateBook;
  ExcelBuf.CreateSheet('Unser Excel Export', '129', COMPANYNAME,USERID); // nur wenn ein Info Sheet existieren soll
  ExcelBuf.GiveUserControl; // spricht fuer sich oder? ;)
  ERROR('');
END;

Diese müssen nun nurnoch an die entsprechenden Stellen implementiert werden:

  1. CreateCaption: Dies kann in den OnPreDataItem der Exportiert werden soll, um die Überschriften zu füllen
  2. CreateNewDataRow: In den passenden OnAfterGetRecord
  3. CreateExcelFile: ans Ende des Reports oder des DataItems (OnPostDataItem)

Bitte beachten Sie noch dass Sie dies mit der IF-Anweisung…

IF ShowInExcel THEN ...

… umschliessen damit der Export auch, wie gewünscht, Optional bleibt. Dieser Wert sollte nun noch in der Request Form veränderbar sein. Daraufhin kann der Export getestet werden.

Eigentlich ganz einfach oder?

Mit freundlichen Grüßen Matthias König

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s