Infosheet in Exceltabelle

5. September 2017 10:05

Hallo,
beim Erstellen eines Excel-Exports habe ich folgendes, lästiges Problem: Es soll ein Report mit einem Blatt für die Daten und einem Blatt für die Informationen als Deckblatt erstellt werden. Grundsätzlich funktioniert dies auch, nur leider wird das Deckblatt nicht ganz links sondern rechts neben dem Blatt mit den Daten ausgegeben.

Hier der Code, der das ganze steuern soll.

Code:
OnPostReport()
IF gboExportToExcel THEN BEGIN
  MakeExcelInfo;
  ExcelBuf.SetUseInfoSheet;
  ExcelBuf.CreateBook('','test');
  ExcelBuf.WriteSheet('test',COMPANYNAME,USERID);
  ExcelBuf.CloseBook;
  ExcelBuf.SetFriendlyFilename('test');
  ExcelBuf.OpenExcel;
  ExcelBuf.GiveUserControl;
END;


Der Datenheader wird im OnAfterGetRecord-Trigger des steuernden DataItems erzeugt.
Ich habe einige Versuche unternommen, um die Reihenfolge der Ausgabe zu verändern, ohne Erfolg, entweder es kommt gar nichts raus, oder die Blätter werden in der beschriebenen Reihenfolge ausgegeben. Irgendjemand eine Idee?

Re: Infosheet in Exceltabelle

11. September 2017 12:00

In der Funktion "MakeExcelInfo" muss die folgenden Zeile enthalten sein:
ExcelBuf_DSD.SetUseInfoSheet();
Mit der Funktion wird die Information in ein Extraregister eingetragen.

Re: Infosheet in Exceltabelle

11. September 2017 12:07

Hallo Raimond,
habe ich versucht, leider ohne Erfolg. Wofür steht denn das _DSD neben ExcelBuf?

Re: Infosheet in Exceltabelle

11. September 2017 14:28

Ich arbeite da mit verschiedenen Instanzen auf der Tabelle ExcelBuffer, das ist eine davon.
Es muss also eigentlich in der Tabelle Excelbuffer eine Funktion SetUseInfoSheet geben.

Re: Infosheet in Exceltabelle

12. September 2017 08:20

Hallo Raimond,
ja, die Funktion SetUseInfoSheet habe ich wohl gefunden (steht auch im Codeblock meines Eröffnungspostings). Nur, egal von wo aus ich die auch aufrufe, es erscheint erst das Blatt mit den Daten und dann erst das Blatt mit den Infos.

Re: Infosheet in Exceltabelle

12. September 2017 09:36

Versuche einmal das 2. Blatt "Komplett" zu benennen, damit es alphabetisch nach "Information" kommt.

Re: Infosheet in Exceltabelle

13. September 2017 08:04

Hallo Raimond,
hat leider auch nichts gebracht, 'Komplett' steht links neben 'Information'. Trotzdem danke für den Tip.

Re: Infosheet in Exceltabelle

13. September 2017 09:03

Hi,

ich war neugierig und hab mal in die Tabelle 370 geschaut. Dort gibt es doch die DotNet Variable XlWrkSht. Diese enthält auch die Methode Move. Vielleicht kannst du damit dein Problem lösen.

XlWrkSht.Move(System.Object Before, System.Object After)