11. September 2017 15:30
WSHShell.Run('"' + Dateiname + '"',WindowsStyle,WaitForReturn);
WordApplication := WordHelper.GetApplication(ErrLoc);
IF ISNULL(WordApplication) THEN
ERROR(WordNotFoundErr);
// Open word and wait for the document to be closed
WrdHandler := WrdHandler.WordHandler();
WordDocument := WordHelper.CallOpen(WordApplication,FileName2,FALSE,FALSE);
WordDocument.ActiveWindow.Caption := parRec.Dateiname;
WordDocument.Application.Visible := TRUE;
WordDocument.ActiveWindow.WindowState := WdWindowState.wdWindowStateNormal;
// Push the word app to foreground
WordApplication.WindowState := WdWindowState.wdWindowStateMinimize;
WordApplication.Visible := TRUE;
WordApplication.Activate;
WordApplication.WindowState := WdWindowState.wdWindowStateNormal;
WordDocument.Saved := TRUE;
WordDocument.Application.Activate;
NewFileName := WrdHandler.WaitForDocument(WordDocument);
IF WindowIsOpen THEN BEGIN
Window.CLOSE;
WindowIsOpen := FALSE;
END;
CLEAR(WordDocument);
CLEAR(WordApplication);
11. September 2017 15:47
11. September 2017 16:43
12. September 2017 11:49
ProcessLoc := ProcessLoc.Process;
ExecName := 'C:\Program Files (x86)\Microsoft Office\Office16\WINWORD.exe'; (hier soll aber dann noch der filename rein)
//ExecName := FileName2;
ProcessLoc.StartInfo.UseShellExecute := FALSE;
ProcessLoc.StartInfo.FileName := ExecName;
ProcessLoc.StartInfo.CreateNoWindow := TRUE;
//ProcessLoc.WaitForExit; -> der Wait Befehl liefert leider eine Fehlermeldung, dass dieser keinem Prozess zugeordnet ist.
ProcessLoc.Start(ProcessLoc.StartInfo);
12. September 2017 13:50
12. September 2017 15:38
ProcessLoc := ProcessLoc.Process;
ExecName := 'C:\Program Files (x86)\Microsoft Office\Office16\WINWORD.exe';
param := STRSUBSTNO(' /q /t "%1"',FileName2);
ProcessLoc.StartInfo.UseShellExecute := FALSE;
ProcessLoc.StartInfo.FileName := ExecName;
ProcessLoc.StartInfo.Arguments := param;
ProcessLoc.StartInfo.CreateNoWindow := FALSE;
// ProcessLoc.EnableRaisingEvents := TRUE;
ProcessLoc.Start(ProcessLoc.StartInfo);
13. September 2017 06:14
13. September 2017 08:31
fiddi hat geschrieben:Hallo,
ich fürchte aus der Nummer kommst du nicht raus, wenn du nach dem Beenden von Word in deinem Programmfluss weiterarbeiten möchtest. Warten auf das Programm heißt im RTC nun mal warten auf das Programm. leider!
13. September 2017 08:50
Mr.Nav hat geschrieben:2.) wenn 1. keine Option ist, kann man evtl. über "RaisingEvent" was machen á la: ich lasse eine schleife laufen bis eine Rückmeldung da ist!?
13. September 2017 09:00
vandyke hat geschrieben:Mr.Nav hat geschrieben:2.) wenn 1. keine Option ist, kann man evtl. über "RaisingEvent" was machen á la: ich lasse eine schleife laufen bis eine Rückmeldung da ist!?
Vielleicht hilft dir als »unterbrechungsfreie Schleife« das integrierte PingPong Addin. Das könntest du auf die Page einbauen, welche die Word-Datei startet. Das PingPong Event rufst du dann z.B. jede Sekunde auf. In dem Event machst du deine WaitforDocument Prüfung.
https://msdn.microsoft.com/en-us/library/jj551782(v=nav.90).aspx
http://www.dynamics.is/?p=1311
13. September 2017 11:50
13. September 2017 13:41
m_schneider hat geschrieben:Der RTC hat das übrigens auch in Version 2009 nicht gemacht. Es geht hier um eine Funktion des CC.
m_schneider hat geschrieben: Was hältst du von vernünftigem Pragmatismus? Das der Windows Client gleichzeitig offene Sitzungen nicht von der Lizenz abzieht, würde ich im Bedarfsfall den Benutzer ein zweites NAV öffnen lassen.
13. September 2017 16:36
Mr.Nav hat geschrieben:m_schneider hat geschrieben:Der RTC hat das übrigens auch in Version 2009 nicht gemacht. Es geht hier um eine Funktion des CC.
Da muss ich dir leider wiedersprechen !!! Habe es gearde im NAV 2009 RTC probiert *** einfach magisch ***