[Gelöst] Excel Export aus Navision

24. Juli 2008 15:02

Hallo Leute,
ich habe mal wieder eine Frage:

Und zwar möchte ich aus Navision heraus ein Excel-Sheet füllne. Bis dahin kein Problem.

Doch ich möchte nach dem Export kein offenes Excelblatt sehen, sondern möchte einfach,dass er mir die Exceltabelle mit Daten füllt und dann die Datei wieder schließt.

In der Einrichtung soll es dann ein Feld geben, indem der Pfad steht, wo die ExcelTabelle abgelegt werden soll.

Ist das möglich? Weil ich kenne momentan nur folgendes:

Code:
TempExcelBuffer.CreateBook;
Name :='TEST';
TempExcelBuffer.CreateSheet(Name,Beschreibung,COMPANYNAME,USERID);
TempExcelBuffer.GiveUserControl;


Dabei wird ja dann eine ExcelTabelle geöffnet und ich kann diese benutzen.

Vielen Dank schon einmal. Ich hoffe mir kann jemand helfen.

P.S.: Wenn ich die Funtkion GiveUserControl weglasse öffnet sich schon einmal kein Excel mehr, aber wo ist die Tabelle? Gibt es irgendwie eine Möglchkeit,dass er die abspeichert? Und das wie gesagt am besten an der Stelle, die dem Feld in der Einrichtung entspricht?

Liebe Grüße
Andree
Zuletzt geändert von EDING am 24. Juli 2008 16:15, insgesamt 3-mal geändert.

24. Juli 2008 15:28

Hallo Andree,

ich kann dir diesen Code anbieten:

Code:
  Workbook.SaveAs(FileName);
  Excel.Quit;


Workbook wäre in den Variablen als 'Microsoft Excel 11.0 Object Library'.Workbook zu definieren, Excel als 'Microsoft Excel 11.0 Object Library'.Application .

HTH
Gruss
Christian

24. Juli 2008 15:42

Vielen Dank,
das werde ich so mal testen..

schönen, sonnigen Resttag und liebe grüße

Andree



Mir kam jetzt doch noch eine Frage und zwar:

Wie und wo genau wende ich diesen Code an?
Das von mir angegebene Codestück is das letzte.


Hatte nun folgendes gedacht:

Code:
TempExcelBuffer.CreateBook;
Name :='Test';
TempExcelBuffer.CreateSheet(Name,Beschreibung,COMPANYNAME,USERID);
//TempExcelBuffer.GiveUserControl;


  Workbook.SaveAs('C:\Test');
  Excel.Quit;


Aber da kommt ein Fehler: Für diese Automation Variable wurde keine Instanz erstellt.Sie können Ihr eine Instanz zuordnen, indem Sie sie entweder erstellen oder zurodnen.

Was mache ich Falsch?
:?:

24. Juli 2008 16:06

[dummschwaezerModus]Du musst eine Instanz erstellen bzw. die Automation Var. zuweisen [/dummschwaezerModus]

Code:
CREATE(Workbook);

Das muss gemacht werden bevor die die Workbook Var. nutzt.
nen Tipp:
Code:
IF ISEMPTY(Workbook) THEN
  CREATE(Workbook);

schützt vor den Versuch erneut eine Instanz zu erstellen.

Ohne mir das nun genauer angeschaut zu haben denke ich das du das Workbook noch füllen musst. Woher soll die neue Automation Var. wissen welche Datei sie speichern soll?

24. Juli 2008 16:10

Code:
TempExcelBuffer.CreateBook;
Name :='TEST';
TempExcelBuffer.CreateSheet(Name,Beschreibung,COMPANYNAME,USERID);
//TempExcelBuffer.GiveUserControl;

CREATE(Workbook);
Workbook.SaveAs('C:\ExcelMappe');
Excel.Quit;


ergibt wieder eine Fehlermeldung ^^
Ich glaub es ist zu spät, dass ich noch irgendwie großartig etwas verstehen könnte.

Er gibt den Fehler,dass keine Instanz erstellt werden konnte.

Mhh... vllt übergebe ich falsche Parameter oder sowas?



Problemchen gelöst :P Mir wurde gerade hier noch einmal geholfen..tada...funktioniert..

Danke euch 2.....

Excel Export aus Navision

9. Januar 2009 12:53

Es wäre nett gewesen wenn du die Lösung auch hier reingeschrieben hättest.