(CC) Excel erzeugen

31. März 2011 13:07

Hallöchen liebe Dynamics-Community, ;-)

Ich habe mir gestern vorgenommen mich mal mit dem Thema der Automations für Excel auseinander zu setzen und muss gestehen, ich sehe kein Stich!

Ich habe gerade mal das bisschen zusammen bekommen:

Code:
Name   DataType   Subtype   Length
xlApp   Automation   'Microsoft Excel 12.0 Object Library'.Application   
xlBook   Automation   'Microsoft Excel 12.0 Object Library'.Workbook   
xlSheet   Automation   'Microsoft Excel 12.0 Object Library'.Worksheet   
xlRange   Automation   'Microsoft Excel 12.0 Object Library'.Range   
xlBorder   Automation   'Microsoft Excel 12.0 Object Library'.Border   

CREATE(xlApp);

xlApp.Visible(TRUE);
xlBook := xlApp.Workbooks.Add(-4167);
xlSheet:= xlApp.ActiveSheet;
xlRange := xlApp.Range('B2','E5');
xlRange.Value := 'testinhalt';
xlApp := xlRange.Application;


Mein Ziel ist es eigtl noch um die Range einen Rahmen zu zaubern, aber *zensiert* nochmal, ich finde einfach keine Beschreibung zu der abnormal großen 'Microsoft Excel 12.0 Object Library'. Weder mal eine kleine Beschreibung wie ich mit was zu handeln hab noch Beispiele die mich da irgendwie weiter bringen könnten. Ich hab viel gelesen von wegen Excel -> Makro erzeugen etc.. Bringt mich nur nicht wirklich weiter, weil Navision nunmal ne Eigenart hat... ;-)

Naja zu meinem Problem:

Ich dachte mir, wenn ich eine Range schonmal zugewiesen habe kann ich das xlBorder einfach von dem xlRange ableiten

Code:
xlBorder := xlRange.Borders;
xlBorder.LineStyle(1);


bing, der Debugger geht an weil Border <> Borders... hmm Toll! Wie bekomm ich jetzt um die Range nen Border gesetzt? Sämtliche Wege die ich versuche führen mich in eine Sackgasse...

Bitte liebe Community, hilft mir :oops:

Re: (CC) Excel erzeugen

31. März 2011 13:23

Hi,


verwende doch lieber die Tabelle 370 Excel Buffer.
Das Grundgerust ist da bereits schon implementiert.
Du kannst dort bestimmt eine weitere Funktion einfügen, die dir den Rahmen generiert (mit VBA-Code).



Gruß
Aydin

Re: (CC) Excel erzeugen

31. März 2011 13:35

Cr4cks hat geschrieben:Mein Ziel ist es eigtl noch um die Range einen Rahmen zu zaubern, aber *zensiert* nochmal, ich finde einfach keine Beschreibung zu der abnormal großen 'Microsoft Excel 12.0 Object Library'. Weder mal eine kleine Beschreibung wie ich mit was zu handeln hab noch Beispiele die mich da irgendwie weiter bringen könnten. Ich hab viel gelesen von wegen Excel -> Makro erzeugen etc.. Bringt mich nur nicht wirklich weiter, weil Navision nunmal ne Eigenart hat... ;-)

Naja zu meinem Problem:

Ich dachte mir, wenn ich eine Range schonmal zugewiesen habe kann ich das xlBorder einfach von dem xlRange ableiten

Code:
xlBorder := xlRange.Borders;
xlBorder.LineStyle(1);


bing, der Debugger geht an weil Border <> Borders... hmm Toll! Wie bekomm ich jetzt um die Range nen Border gesetzt? Sämtliche Wege die ich versuche führen mich in eine Sackgasse...

Bitte liebe Community, hilft mir :oops:


Hallo Cr4cks,

willkommen!

Eine vermeintliche Lösung findest du hier: (Link) oder (Link).

mfg,
winfy

Re: (CC) Excel erzeugen

1. April 2011 14:49

Danke =)

funzt:

Code:
CREATE(xlApp);

xlApp.Visible(TRUE);
xlBook := xlApp.Workbooks.Add(-4167);
xlSheet:= xlApp.ActiveSheet;

xlRange := xlApp.Range('B2','E5');

xlRange.Value := 'testinhalt';

xlRange.Borders.Item(0).LineStyle := TRUE;

xlApp := xlRange.Application;



Kennt jemand von euch einen Link zur Dokumentation von der Library? MSDN oder ähnliches?

Am liebsten wäre mir eine Übersicht über die Hierarchie der Objekte.

Re: (CC) Excel erzeugen

5. April 2011 21:59

Hierarchie der Objekte? Meinst du zu allen Objekten des Nav-Systems?

Ich glaube soetwas gibt es nicht. Um wirklich "alle Objekte" des Systems zu können, müsste man alle Prozesse alles Module theoretisch kennen. Ich glaube das ist nur mit viel Erfahrung machbar, oder irre ich mich und gibt es "die doku"?

Re: (CC) Excel erzeugen

6. April 2011 07:39

Hallo,

Kennt jemand von euch einen Link zur Dokumentation von der Library? MSDN oder ähnliches?


in so einem Fall hilft Google weiter. Gibst du eines der Kommandos (z.B. Workbook.Add) dort ein, findest du auch die entsprechenden MSDN-Links :wink:

Gruß, Fiddi

Re: (CC) Excel erzeugen

6. April 2011 09:34

Hallo,

damals habe ich immer makro aufzeichnung benutzt, die gewünschte Tätigkeit getan und dann mir den Macro-Code angeschaut und diesen mit den entsprechenden excel-automations in CAL nachgebaut. Mit ein paar Kniffen konnte man nette Diagramme zaubern, die manuell nicht so einfach zu erzeugen sind.

Viele Grüße
Jan

Re: (CC) Excel erzeugen

7. April 2011 09:44

Cr4cks hat geschrieben:Kennt jemand von euch einen Link zur Dokumentation von der Library? MSDN oder ähnliches?

Extending Microsoft Dynamics NAV Using COM: http://msdn.microsoft.com/en-us/library/dd301255.aspx

Da findest Du zum Beispiel:
COM and C/SIDE Overview: http://msdn.microsoft.com/en-us/library/dd301404.aspx
Using COM Technologies in C/SIDE: http://msdn.microsoft.com/en-us/library/dd301064.aspx
Create an Automation Controller in C/SIDE: http://msdn.microsoft.com/en-us/library/dd301408.aspx

Viel Erfolg!

Re: (CC) Excel erzeugen

7. April 2011 11:26

blunx hat geschrieben:
Cr4cks hat geschrieben:Kennt jemand von euch einen Link zur Dokumentation von der Library? MSDN oder ähnliches?

Extending Microsoft Dynamics NAV Using COM: http://msdn.microsoft.com/en-us/library/dd301255.aspx

Da findest Du zum Beispiel:
COM and C/SIDE Overview: http://msdn.microsoft.com/en-us/library/dd301404.aspx
Using COM Technologies in C/SIDE: http://msdn.microsoft.com/en-us/library/dd301064.aspx
Create an Automation Controller in C/SIDE: http://msdn.microsoft.com/en-us/library/dd301408.aspx

Viel Erfolg!


Ich glaube er möchte eine referenz für excel und nicht ein eigene COM automation programmieren.