[gelöst]Requester zur Auswahl eines Pfades

Bild Microsoft Dynamics NAV 4.xx
(ehem. Microsoft Business Solutions-Navision)

[gelöst]Requester zur Auswahl eines Pfades

Beitragvon Michael Schumacher » 16. Oktober 2006 19:28

Die Funktion FileOpen der Codeunit Common Dialog Management bietet ja bekanntlich einen Requester in dem man nach einer Datei suchen kann und den Dateinamen samt Pfad in ein Feld schreiben lassen kann.
Wenn man jetzt aber nur einen Pfad einstellen will, z.B. wohin XML-Dateien mit Daten fĂĽr den Webshop geschrieben werden sollen, ist der Requester nicht nutzbar. Die Automation CommonDialog bietet auch weder ein Property noch eine Methode dafĂĽr.

Weiss zufällig jemand, ob dafür eine andere Automation nutzbar ist?
Zuletzt geändert von Michael Schumacher am 24. April 2007 17:13, insgesamt 1-mal geändert.
mfg
Michael Schumacher


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.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon Timo Lässer » 16. Oktober 2006 19:51

Auch hier hilft mal wieder ein Griff in meine allseits beliebte "Tools-Datenbank", wo ich so manche nĂĽtzliche Funktion gesammelt habe.

Ich wollte die Codeunit ursprünglich als Download hochladen, aber irgendwie funktioniert das gerade nicht, daher hänge ich die Datei einfach mal hier an diesen Beitrag an.
Dateianhänge
FileManagement.jpg
Screenshot
FileManagement.zip
Codeunit 99994 als 4.00 SP2 fob-Datei sowie im Textformat
(26.14 KiB) 270-mal heruntergeladen
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Michael Schumacher » 16. Oktober 2006 21:09

Danke, das ist das was ich gesucht habe.
Ich bekomme allerdings eine Fehlermeldung, dass die gewählte Typenbibliothek nicht geladen werden kann.
Die Automation namens ActiveWindow ist ein unbekannter Automationserver....
mfg
Michael Schumacher


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.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon Timo Lässer » 16. Oktober 2006 21:50

Die Variable 'ActiveWindow' ist ein AutomationServer vom SubType 'CSideWindowCheck'.WindowCheck

FĂĽr den Fall, dass dieser AutomationServer nicht verfĂĽgbar ist (wie es bei dir der Fall ist), kann auch alternativ der SubType 'C/SIDE Utility Classes'.ActiveWindow verwendet werden.

Für den (seltenen) Fall (z. B. in älteren Navision-Versionen), dass auch dieser AutomationServer nicht verfügbar ist, kann auch einfach eine 0 (in Worten: Null) übergeben werden, jedoch kann dann nicht sichergestellt werden, dass der Rückgabewert an das richtige Programm (in diesem Fall Navision) zurückgegeben wird.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Michael Schumacher » 17. Oktober 2006 08:29

leider hab ich beide nicht in der Liste (Nav4.0 SP1).
WeiĂźt Du, welche DLL oder OCX dahinter steht?
Dann muss ich die Datei mal suchen und registrieren
mfg
Michael Schumacher


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.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon Timo Lässer » 17. Oktober 2006 19:11

Ich habe mich mal auf die Suche gemacht und bin fĂĽndig geworden:

Entpacke die angehängte Datei direkt nach C:\ (die notwendigen Unterverzeichnisse sind als absolute Pfade im Archiv gespeichert)
Ich gehe mal davon aus, dass die Datei anschlieĂźend noch in Windows registriert werden muss.
Dateianhänge
CSideWindowCheck.zip
(5.9 KiB) 252-mal heruntergeladen
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Michael Schumacher » 17. Oktober 2006 20:21

Die dll läßt sich nicht registrieren, die TLB nur mit dem Programm OleRegistration, aber nicht mit regsvr32....
nachdem die TLB registriert wurde, konnte ich die Automation auswählen, aber beim Run kommt die Meldung, dass keine Instanz registriert werden konnte.
Also muss es weiter mit der 0 gehen......
unter welchen bedingungen könnte denn der von Dir erwähnte Fehler auftauchen, dass die Antwort nicht im richtigen Fenster landet?
mfg
Michael Schumacher


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.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon Timo Lässer » 17. Oktober 2006 21:42

Michael Schumacher hat geschrieben:[...]
unter welchen bedingungen könnte denn der von Dir erwähnte Fehler auftauchen, dass die Antwort nicht im richtigen Fenster landet?


tomtror (auf mibuso.com) hat geschrieben:[...] But if I use 0 instead of the window handle parameter, the folder selection window disapears suddenly when I move the mouse... [...]
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Michael Schumacher » 17. Oktober 2006 21:55

Das Phänomen hab ich nicht, ich kann ganz normal den Pfad aussuchen....
mfg
Michael Schumacher


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.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon Timo Lässer » 24. April 2007 11:45

Ich habe bei mibuso eine Alternative Bibliothek fĂĽr das WindowHandle gefunden.

Die dll lässt sich auch problemlos aus Navision heraus registrieren.
Dateianhänge
CSIDEUtils.dll.zip
(4.58 KiB) 266-mal heruntergeladen
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re:

Beitragvon rotsch » 7. Januar 2010 12:47

Timo Lässer hat geschrieben:Auch hier hilft mal wieder ein Griff in meine allseits beliebte "Tools-Datenbank"...


Kann es sein, dass diese Codeunit, bzw. die Funktionen unter dem RTC nicht mehr funktionieren? Mir stürzt der Client regelmässig ab, wenn ich OpenFolder aufrufe.
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: Re:

Beitragvon dannyt » 24. Juli 2012 11:37

rotsch hat geschrieben:
Timo Lässer hat geschrieben:Auch hier hilft mal wieder ein Griff in meine allseits beliebte "Tools-Datenbank"...


Kann es sein, dass diese Codeunit, bzw. die Funktionen unter dem RTC nicht mehr funktionieren? Mir stürzt der Client regelmässig ab, wenn ich OpenFolder aufrufe.


Dieses Problem habe ich derzeit auch.
Das ActiveWindow Control habe ich mit 0 ersetzt, da ich nicht auf allen Kundenrechnern die .dll installieren möchte.
Die RĂĽckgabe an NAV funktioniert im Classic einwandfrei.

Im RTC (2009 R2) habe ich jedoch auch das Problem, dass der Client abschmiert.
Hat jemand eine Idee woran das liegen könnte oder ggfs. noch eine andere Möglichkeit, Ordner in NAV (RTC) auszuwählen?
dannyt
Microsoft Partner
Microsoft Partner
 
Beiträge: 106
Registriert: 5. September 2008 12:01
Realer Name: Danny Trautmann
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: alle

Re: Re:

Beitragvon Natalie » 24. Juli 2012 11:57

dannyt hat geschrieben:Hat jemand eine Idee woran das liegen könnte oder ggfs. noch eine andere Möglichkeit, Ordner in NAV (RTC) auszuwählen?

Generell mĂĽssen fĂĽr Datei- und Ordnerfunktionen Automation-Variablen verwendet werden.
Automation 'Microsoft Shell Controls And Automation'.Shell verfĂĽgt ĂĽber die Methode BrowseForFolder.
Denkt nur daran, die Variable vorher zu initialisieren.
Wenn eure Variable z.B. Shell heiĂźt, dann:

Code: Alles auswählen
  IF ISCLEAR(Shell) THEN
    CREATE(Shell,FALSE,TRUE);
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? 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
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: [gelöst]Requester zur Auswahl eines Pfades

Beitragvon rotsch » 24. Juli 2012 12:21

Ich habe das mittlerweile mit dotnet interop gelöst. Das ist einfacher, eleganter und bringt viel weniger Probleme mit sich.

Meine Funktion dazu heisst SelectFolder

Code: Alles auswählen
Lokale Variable
Name                   DataType   Subtype
FolderBrowser   DotNet   'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Windows.Forms.FolderBrowserDialog

RetVal ist mein ReturnValue der Funktion

FolderBrowser := FolderBrowser.FolderBrowserDialog();
FolderBrowser.ShowNewFolderButton := _NewFolder;
FolderBrowser.Description := Text000;
FolderBrowser.ShowDialog();

IF FolderBrowser.SelectedPath <> '' THEN
  RetVal := FolderBrowser.SelectedPath +'\'
ELSE
  RetVal := '';
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: [gelöst]Requester zur Auswahl eines Pfades

Beitragvon dannyt » 24. Juli 2012 12:24

Hallo Natalie,

das war der einigermaĂźen entscheidende Hinweis.

Zwar habe ich die Variable initialisiert, aber nicht korrekt.
Im Code wurde die Variable vorher mit
Code: Alles auswählen
CREATE(ShellControl);

initialisiert.
Dies bedeutete, dass der Automation Server auf dem Middle Tier, also dem NAV Server, initialisiert wurde. Dies ging aber nicht und somit stĂĽrzte der RTC ab.

Hier der komplette Codeschnipsel zur Auswahl eines Pfades:
Code: Alles auswählen
OpenFolder() : Text[1024]

IF ISCLEAR(ShellControl) THEN
  CREATE(ShellControl,false,true);

Folder := ShellControl.BrowseForFolder(0,Text000,0);

IF NOT ISCLEAR(Folder) THEN BEGIN
  CLEAR(ShellControl);
  EXIT(Folder.Items().Item.Path);
END;


Variablen:
Name DataType Subtype Length
ShellControl Automation 'Microsoft Shell Controls And Automation'.Shell
Folder Automation 'Microsoft Shell Controls And Automation'.Folder3



VG
dannyt
dannyt
Microsoft Partner
Microsoft Partner
 
Beiträge: 106
Registriert: 5. September 2008 12:01
Realer Name: Danny Trautmann
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: alle


ZurĂĽck zu NAV 4.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast