Steuerung Client-Ebene

26. Mai 2008 16:46

Hi!

Ich habe die Funktionalität des Word Exports (Symbolleiste) erweitert.

Das Problem: der Word Export läuft über den Client (die Daten der aktuellen Form werden als XML Baum an Codeunit 1 und dann an Codeunit 403 übergeben).

Ich würde gerne die aktuelle Form aktualisieren (aus welcher heraus der Word Export statt fand). Die Form weiß aber leider nicht, dass Word Daten exportiert wurden.

Hat jemand einen Tipp?

Ich würde den Word Export auch gerne selbst steuern, dazu müsste ich aber den Daten XML Baum selbst erstellen, da dies normalerweise der Client macht (Übergabe in Codeunit 1: LaunchApp). Hat das schon mal jemand probiert? ;-)

Danke
Ralf

Re: Steuerung Client-Ebene

5. September 2008 17:24

*push*

Jemand zwischenzeitlich eine Idee?

Kann man den Client indirekt über Tastaturbefehle steuern? D.h. per C/SIDE Code wird ein Tastaturbefehl ausgeführt.
(Z.B. an "Microsoft Word senden" hat im Standard STRG+W und man mit Hilfe von einem ActiveX diesen Tastaturbefehl auslöst).

Gibt es unter Umständen Navision ActiveX Routinen mit welchen man den Navision Client steuern kann?

Im Fall von "an Microsoft Word senden", kann man feststellen, welches Formular momentan den Fokus hat und dessen Inhalt updaten (CURRFORM.UPDATE)?

Gruß
Ralf

Re: Steuerung Client-Ebene

8. September 2008 09:13

Hallo Ralf,

ich hab mal mit sowas herumprobiert :

Code:
// FORMULAR ID KANN HIER ERMITTELT WERDEN
xFormID := StyleSheetMgt.GetAttributeValue(xDataXML,'//Object','id');   // Aufrufende Form feststellen
// PRÜFEN OB AUS BESTELLUNG
IF xFormID = '50' THEN
  BEGIN
    xFormCaption := StyleSheetMgt.GetAttributeValue(xDataXML,'//Object','caption');
    xFormCode := COPYSTR(xFormCaption,1,STRPOS(xFormCaption,' '));


In xFormID finde ich dann die aufrufende Form. Wie gesagt, herumprobiert. Ob das immer und in jeder Form klappt ? Vielleicht bringt DIch das ein wenig weiter.

Gruss Ralf

Re: Steuerung Client-Ebene

10. September 2008 17:00

Ralf_1960 hat geschrieben:[...]In xFormID finde ich dann die aufrufende Form. Wie gesagt, herumprobiert. Ob das immer und in jeder Form klappt ? Vielleicht bringt DIch das ein wenig weiter.

Danke für den Tipp. Da ich mit der Style Sheet Erweiterung arbeite (Nummernkreis 68x), weiß ich bereits aus welchem Formular der Wordexport aufgerufen wurde (Codeunit 682, LoadStylesheetData). Die Tabelle 680 "Style Sheet Header" enthält im Feld "Form No." die Nummer des Formulars.

Mein Problem ist, dass ich nicht in diesem Formular bin. Der Benutzer klickt in der Leiste das "W" Symbol und von der aktuellen Form wird über den Client der Dateninhalt als XML an Codeunit 1, dann Codeunit 403 und dann an Codeunit 682 weitergereicht. D.h. das ich dann nicht dieses Formular aktualisieren kann. Dazu müsste ich die Instanz des Formulars kennen und selbst dann wüsste ich nicht, wie ich diese Instanz dazu bringen könnte, sich zu aktualisieren.

Ideal wäre es, wenn ich den Word Export aus dem Formular heraus anstoßen könnte, dann kann ich danach das Formular davon informieren.

Thx
Ralf

Re: Steuerung Client-Ebene

11. September 2008 08:36

ralfescher hat geschrieben:*push*

Jemand zwischenzeitlich eine Idee?

Kann man den Client indirekt über Tastaturbefehle steuern? D.h. per C/SIDE Code wird ein Tastaturbefehl ausgeführt.
(Z.B. an "Microsoft Word senden" hat im Standard STRG+W und man mit Hilfe von einem ActiveX diesen Tastaturbefehl auslöst).

Gibt es unter Umständen Navision ActiveX Routinen mit welchen man den Navision Client steuern kann?

Gruß
Ralf


Tastatureingaben lassen sich simulieren http://www.msdynamics.de/viewtopic.php?f=20&t=4001 - WindowsScriptHostManagement \ Funktion Sendkeys.