[Gelöst] Fremdprogramm aus NAV starten

Bild Microsoft Dynamics NAV 2009 (aka "NAV 6")
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie

Bitte unbedingt angeben, ob sich eure Frage auf den RoleTailored-Client (RTC) oder den Classic-Client (CC) bezieht!

[Gelöst] Fremdprogramm aus NAV starten

Beitragvon daniel » 12. November 2009 09:57

Ich bins mal wieder,
ich würde gerne aus Navision raus über einen Commandbutton o.Ä. ein bestimmtes Excelfile öffnen und im Idealfall dort noch einen Wert aus der aktuellen Karte in ein bestimmtes Feld eintragen lassen.
Gibts es da in Navision schon eine Stelle wo man sich sowas angucken könnte, oder gibt es ein Tutorial dazu?
Ich bin leider nicht sonderlich bewandert was programmieren angeht.
Gruß
Daniel
Zuletzt geändert von daniel am 13. November 2009 09:45, insgesamt 3-mal geändert.
daniel
 
Beiträge: 15
Registriert: 10. November 2009 10:25
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Fremdprogramm aus NAV starten

Beitragvon mikka » 12. November 2009 11:18

In deinem Fall könntest du den "Excelbuffer" nutzen.

Ein Programm von nav aus zu starten ginge auch über die Befehle "SHELL" oder mit dem "Windows Script Host".
(Wäre aber in deinem fall unpraktikabel)

Duchsuche den Objektdesigner mal nach '@*excel*'
(Ohne Hochkomma, die Ansicht auf "All"!)

Hier kannst du einiges zum Thema Excel sehen, z.B. die Reports 81 & 82 "Import Budget from Excel", "Export Budget to Excel"

Andernfalls hier im Forum nach Excel suchen, es gibt dutzende Beiträge zum Thema.
Gruß, Mikka

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! Dafür ist dieses Forum da.
Benutzeravatar
mikka
Microsoft Partner
Microsoft Partner
 
Beiträge: 1832
Registriert: 26. September 2005 11:54
Wohnort: Bremen
Realer Name: Michael
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.6, 3.7, 4, 5, 2009/13/15

Re: Fremdprogramm aus NAV starten

Beitragvon winfy » 12. November 2009 11:21

Eine andere Möglichkeit zum Excelbuffer wäre auch:

Die Gobalen Variablen einbinden bzw. die konkrete MS Excel Object Library die du verwendest.

Code: Alles auswählen
Name   DataType                   Subtype   
Excel   Automation   'Microsoft Excel 9.0 Object Library'.Application   
Book   Automation   'Microsoft Excel 9.0 Object Library'.Workbook   
Sheet   Automation   'Microsoft Excel 9.0 Object Library'.Worksheet


Instanz erzeugen
Code: Alles auswählen
Create(Excel);


Exceltabelle mit Workbook und Sheet erzeugen und speichern
Code: Alles auswählen
Book:=Excel.Workbooks.Add; // Exceltabelle und Worksheet erzeugen
Book:=Excel.Workbooks.Open('C:\Pfad\Dateiname.xls'); //Pfad zur Exceldatei
Sheet:=Book.Worksheets.Item('Tabelle1'); // gehe zu Tabelle 1
Book.SaveAs('dateiname.xls'); // Excel Datei speichern
Sheet.Activate; // Sheet aktivieren
Book.Save; // in bestehende Datei speichern
Book.Close; // Schliessen
Excel.Quit; // Excel beenden


ein paar nützliche Excel Formatierungen und Zuweisungen:
Code: Alles auswählen
Sheet.Range('A1:B100').NumberFormat := '@';  // Text für Spalte A1-D100
Sheet.Range('C1:C100').NumberFormat := '#.##0'; // Zahlformat mit 1000. Trennung
Sheet.Range('D1:D100').NumberFormat := '#.##0,00 €'; // Währungsformat für Euro mit 1000. Trennung

Sheet.Range('A1').Font.Bold:=TRUE; // Schrift Fett
Sheet.Range('A1').Font.Size:=12; // Schriftgröße
Sheet.Range('A1:B1').MergeCells := TRUE; // Zellen verbinden
Sheet.Columns.AutoFit; // optimale Spaltenbreite

Sheet.Range('A1').Value:='Text'; // Wert zuweisen


Ich hoffe ich konnte helfen.

P.S: Die Variante würde übrigens auch für die Versionen funktionieren, die noch keine Excelbuffer-Unterstützung haben (siehe Tabelle 370).

Gruß,
winfy
Zuletzt geändert von winfy am 13. November 2009 09:32, insgesamt 4-mal geändert.
"Das Wissen ist das einzige Gut, das sich vermehrt, wenn man es teilt.
Wer nichts weiß, muss alles glauben."
...Marie von Ebner-Eschenbach
Benutzeravatar
winfy
 
Beiträge: 873
Registriert: 15. Oktober 2009 08:19
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: NAV 3.x - BC 23.x

Re: Fremdprogramm aus NAV starten

Beitragvon vsnase » 12. November 2009 12:19

Für mich hört sich das so nach ausfüllen eine Formulars an. Ist denn da evtl nicht das Style-Sheettool eine Möglichkeit?

Volker
vsnase
 
Beiträge: 1193
Registriert: 24. April 2008 10:06
Wohnort: Aschaffenburg
Realer Name: Volker Strähle
Arbeitsort: Aschaffenburg
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009R2

Re: Fremdprogramm aus NAV starten

Beitragvon daniel » 12. November 2009 15:18

ja genau das wäre es.
ich möchte kein neues sheet erzeugen sonder einfach eine auf einem Netzlaufwerk liegende Excel-Datei öffnen und in diese in ein bestimmtes Feld den Wert eines Feldes aus meiner NAV2009-Karte einfügen.
Was genau ist dieses Style-Sheettool?
daniel
 
Beiträge: 15
Registriert: 10. November 2009 10:25
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Fremdprogramm aus NAV starten

Beitragvon Cr4cks » 12. November 2009 15:22

Also ich würde es mir einfach machen (Datenübertragung aussen vor gelassen), einfach wie in jeder Karte zu bestaunen, die funktionalität der Links (Büroklammer in der Symbolleiste) kopieren, anpassen an den genauen Wunsch, fertig. Aber wie gesagt ist nur ohne Übertragung bestimmter Zelleninhalte...
Cr4cks
 
Beiträge: 119
Registriert: 14. September 2009 09:31
Realer Name: Martin S.
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 4,5,6,7,8

Re: Fremdprogramm aus NAV starten

Beitragvon McClane » 12. November 2009 15:30

Cr4cks hat geschrieben:Also ich würde es mir einfach machen (Datenübertragung aussen vor gelassen), einfach wie in jeder Karte zu bestaunen, die funktionalität der Links (Büroklammer in der Symbolleiste) kopieren, anpassen an den genauen Wunsch, fertig. Aber wie gesagt ist nur ohne Übertragung bestimmter Zelleninhalte...

Klingt gut. Könntest du den Ablauf etwas genauer erläutern?

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! Dafür ist dieses Forum da.
McClane
Moderator
Moderator
 
Beiträge: 3864
Registriert: 2. April 2008 10:00
Realer Name: Stefan
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009, 2016

Re: Fremdprogramm aus NAV starten

Beitragvon winfy » 12. November 2009 15:42

Die Befehle oben waren nur eine Sammlung einiger nützlicher Befehle in dem Zusammenhang.
Natürlich kannst du damit auch nur die Datei öffnen und deinen Wert dort ablegen! :wink:

Wie gesagt die Globals hinzufügen Excel Instanz erzeugen und dann wären die folgenden Befehle für dich hilfreich.

Code: Alles auswählen
Book:=Excel.Workbooks.Open('C:\Pfad\Dateiname.xls'); // Pfad zu der Exceldatei im Netzlaufwerk
Sheet:=Book.Worksheets.Item('Tabelle1'); // oder den Sheet deiner Exceldatei
Sheet.Activate;
Sheet.Range('A1').Value:='Text'; // Wert als String Feld A1 zuweisen bzw. deinem Feld in der Exceldatei

Book.Save; // den Wert in die Exceldatei speichern
Book.Close; // Datei schliessen
Excel.Quit; // Excel schliessen/beenden


Gruß,
winfy
Zuletzt geändert von winfy am 13. November 2009 09:33, insgesamt 1-mal geändert.
"Das Wissen ist das einzige Gut, das sich vermehrt, wenn man es teilt.
Wer nichts weiß, muss alles glauben."
...Marie von Ebner-Eschenbach
Benutzeravatar
winfy
 
Beiträge: 873
Registriert: 15. Oktober 2009 08:19
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: NAV 3.x - BC 23.x

Re: Fremdprogramm aus NAV starten

Beitragvon Cr4cks » 12. November 2009 16:05

Ich und meine schnellen Finger...

Hab gerade versucht die Form mit STRG-F2 zu bearbeiten um genauere Infos der Funktionalität zu bekommen... Geht garnicht. :cry:
Also wird dir wohl nichts anderes Üprig bleiben als das beim näheren Betrachten doch einfach Aussehende von meinen Vorpostern zu nehmen...
Cr4cks
 
Beiträge: 119
Registriert: 14. September 2009 09:31
Realer Name: Martin S.
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 4,5,6,7,8

Re: Fremdprogramm aus NAV starten

Beitragvon daniel » 12. November 2009 16:29

hallo winfy, jetzt hab ich es verstanden.
Bei mir ist es allerdings die 'Microsoft Excel 11.0 Object Library' installiert.
Beim kompilieren sagt er mir jetzt immer, dass ihm die Variable OPEN nicht bekannt ist!!!
Ist der Befehl für die 11er Version anders als bei der von dir angegebenen?
Aber das scheint auf jeden Fall das zu sein was ich suche.


-----Edit

Also es gibt den Befehl
Code: Alles auswählen
Excel.GetOpenFilename('C:\pfad\datei.xls');


aber hier bringt er mir die fehlermeldung:
Für diese Automation Variable wurde keine Instanz erstellt.
Sie können ihr eine Instanz zuordnen, indem Sie sie entweder erstellen oder zuordnen.
das gleiche passiert wenn ich nur versuche Excel zu öffnen via Excel.run.
Für das Book sehe ich leider keinen Open-Befehl, auch nichts ähnliches.
daniel
 
Beiträge: 15
Registriert: 10. November 2009 10:25
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Fremdprogramm aus NAV starten

Beitragvon daniel » 12. November 2009 16:59

Okay mit CREATE(Excel) habe ich ihm eine Instanz erstellt.
Der Fehler der jetzt kommt:
Diese Meldung ist für C/AL Programmierer:
In Methode Run wurde eine Ausnahme hervorgerufen. Das OLE Control oder der automation Server gaben folgende Fehlermeldung zurück (HRESULT) -2147352567.
Die Komponente verfügt über keine Ausnahmebeschreibung.
daniel
 
Beiträge: 15
Registriert: 10. November 2009 10:25
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Fremdprogramm aus NAV starten

Beitragvon winfy » 12. November 2009 17:04

daniel hat geschrieben:hallo winfy, jetzt hab ich es verstanden.
...

Also es gibt den Befehl
Code: Alles auswählen
Excel.GetOpenFilename('C:\pfad\datei.xls');


aber hier bringt er mir die fehlermeldung:
Für diese Automation Variable wurde keine Instanz erstellt.
Sie können ihr eine Instanz zuordnen, indem Sie sie entweder erstellen oder zuordnen.
das gleiche passiert wenn ich nur versuche Excel zu öffnen via Excel.run.
Für das Book sehe ich leider keinen Open-Befehl, auch nichts ähnliches.


Entschuldige du musst natürlich erst noch eine Instanz erzeugen mit:

Code: Alles auswählen
CREATE(Excel); // Instanz erzeugen
Excel.Visible(TRUE); // falls du es angezeigt bekommen möchtest


Code: Alles auswählen
Book:=Excel.Workbooks.Add; // Exceltabelle und Worksheet erzeugen

Code: Alles auswählen
Book:=Excel.Workbooks.Open('C:\Pfad\Dateiname.xls'); // Excel-Datei öffnen


Gruß,
winfy
Zuletzt geändert von winfy am 12. November 2009 17:24, insgesamt 1-mal geändert.
"Das Wissen ist das einzige Gut, das sich vermehrt, wenn man es teilt.
Wer nichts weiß, muss alles glauben."
...Marie von Ebner-Eschenbach
Benutzeravatar
winfy
 
Beiträge: 873
Registriert: 15. Oktober 2009 08:19
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: NAV 3.x - BC 23.x

Re: Fremdprogramm aus NAV starten

Beitragvon daniel » 12. November 2009 17:18

Super es hat geklappt. Du bist echt der Beste. Vielen Dank.
daniel
 
Beiträge: 15
Registriert: 10. November 2009 10:25
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: [halb Gelöst] Fremdprogramm aus NAV starten

Beitragvon daniel » 12. November 2009 17:56

jetzt noch zur übergabe von werten an die Excel-Datei.
es kommt folgende Meldung:
Für das OLE-Control oder den automation Server GUID xxxxxxx.... 'Microsoft Excel 11.0 Object Library'.Workbook konnte keine Instanz erstellt werden.
Prüfen Sie ob das OLE Control oder der autom. Server korrekt installiert und registriert wurde.

mein code:
Code: Alles auswählen
CREATE(Excel); // Instanzen erzeugen
CREATE(Book);
CREATE(Sheet);

Excel.Visible(TRUE);  //sichtbar machen
Excel.Workbooks.Open('C:\Dokumente und Einstellungen\daniel\Desktop\UPS-Tracking\Kopie von SignatureTracking.xls'); //Pfad zur Datei
Sheet:=Book.Worksheets.Item('Eingabe'); // Eingabe ist der Name des Sheets (es gibt insgesamt 4 sheets in der datei.
Sheet.Activate;
Sheet.Range('B4').Value:='Text'; // hier müsste ja im moment der Text an feld b4 übergeben werden
daniel
 
Beiträge: 15
Registriert: 10. November 2009 10:25
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: [halb Gelöst] Fremdprogramm aus NAV starten

Beitragvon winfy » 12. November 2009 21:29

daniel hat geschrieben:jetzt noch zur übergabe von werten an die Excel-Datei.
es kommt folgende Meldung:
Für das OLE-Control oder den automation Server GUID xxxxxxx.... 'Microsoft Excel 11.0 Object Library'.Workbook konnte keine Instanz erstellt werden.
Prüfen Sie ob das OLE Control oder der autom. Server korrekt installiert und registriert wurde.

CREATE(Excel); // Instanzen erzeugen
CREATE(Book);
CREATE(Sheet);

...
[/code]


Code: Alles auswählen
CREATE(Book);
...
Excel.Workbooks.Open('C:\Dokumente und Einstellungen\daniel\Desktop\UPS-Tracking\Kopie von SignatureTracking.xls'); //Pfad zur Datei
...
Sheet:=Book.Worksheets.Item('Eingabe'); // ???

Der Code würde bei dir ins Nirvana zeigen. :wink:

So müsste es für meine Begriffe gehen, habe es aber gerade nicht getestet!

Code: Alles auswählen
CREATE(Excel);
Book:=Excel.Workbooks.Open('C:\Dokumente und Einstellungen\daniel\Desktop\UPS-Tracking\Kopie von SignatureTracking.xls'); //Pfad zur Datei
Sheet:=Book.Worksheets.Item('Eingabe'); // Eingabe ist der Name des Sheets (es gibt insgesamt 4 sheets in der datei.
Sheet.Activate;
Sheet.Range('B4').Value:='Text'; // hier müsste ja im moment der Text an feld b4 übergeben werden


Gruß,
winfy
"Das Wissen ist das einzige Gut, das sich vermehrt, wenn man es teilt.
Wer nichts weiß, muss alles glauben."
...Marie von Ebner-Eschenbach
Benutzeravatar
winfy
 
Beiträge: 873
Registriert: 15. Oktober 2009 08:19
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: NAV 3.x - BC 23.x

Re: [Gelöst] Fremdprogramm aus NAV starten

Beitragvon daniel » 13. November 2009 09:46

EInen Ehrenurkunde für winfy :-D :-D
Problem gelöst.
Vielen Dank.
daniel
 
Beiträge: 15
Registriert: 10. November 2009 10:25
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009


Zurück zu NAV 2009

Wer ist online?

Mitglieder in diesem Forum: Google [Bot], Unbekannter Robot, Yandex [Bot] und 1 Gast