|
![]() |
#1 |
Moderator
|
К сожалению, с помощью стандартных объектов automation и OCX, получить хендл нельзя.
В качестве более изящного способа могу предложить реализовать BrowseForFolder через scripting (например на jscript), а вызов диалога выбора папки через Microsoft Script Control. В общих чертах это будет выглядеть так: <div class='CALtop'>C/AL</div><div class='CAL'> CREATE(MsScriptControl); Str := 'function browse()'; Str += '{'; Str += ' var WSHShellApp = WScript.CreateObject("Shell.Application");'; Str += ' var SelectedItem = WSHShellApp.BrowseForFolder(0, Prompt, BrowseInfo, StartFolder);'; MsScriptControl.AddCode(Str); MESSAGE('Ваш путь: %1',FORMAT(MsScriptControl.Run('browse()',SafeArray))); </div> |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от tyrex
К сожалению, с помощью стандартных объектов automation и OCX, получить хендл нельзя.
В общих чертах это будет выглядеть так: <div class='CALtop'>C/AL</div><div class='CAL'> CREATE(MsScriptControl); Str := 'function browse()'; Str += '{'; Str += ' var WSHShellApp = WScript.CreateObject("Shell.Application");'; Str += ' var SelectedItem = WSHShellApp.BrowseForFolder(0, Prompt, BrowseInfo, StartFolder);'; MsScriptControl.AddCode(Str); MESSAGE('Ваш путь: %1',FORMAT(MsScriptControl.Run('browse()',SafeArray))); </div> Открыть диологовое окно у меня проблем не вызывает, а вызывает сложность заставить это окно открытся в Runmodal режиме, использую только C-AL и стандартные dll. Dll, которую я использую, была мною скачена с mibuso.com вместе с исходниками. Она используя user32.dll выдает handle активного окна, в моем случае Navision. От туда, кстати, я и взял идею открытия диалогового окна через Automation. В общем всем Спасибо. Придеться ташить к клиенту эту dll и там на всех машинах, где она может использоваться, ее регистрить.. ![]() |
|
![]() |
#3 |
Участник
|
Все таки, могли бы использовать Microsoft Common Dialog Control.
В отчете надо было бы просто первым Item ом сделать таблицу File и добавить небольшой кусочек кода для обработки всех файлов из директории. Ну, хозяин - барин.
__________________
MBS Certified Master in Navision Developer |
|