powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Navision - safearray
16 сообщений из 16, страница 1 из 1
Navision - safearray
    #34564980
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не могу разобраться
есть такой кусок кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  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)));
взят из forum.mazzy.ru

вопрос: как мне получить/использовать SafeArray. т.е. где и как его прописать, не могу разобраться, так как навижн не поддерживает этот тип данных.
...
Рейтинг: 0 / 0
Navision - safearray
    #34565327
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. кусок кода приведе специально, чтобы не было вопросов "для чего тебе он нужен" и "напиши по конкретнее, может тебе подскажут как обойти проблему другими путями".
...
Рейтинг: 0 / 0
Navision - safearray
    #34566636
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Upтуально
...
Рейтинг: 0 / 0
Navision - safearray
    #34566771
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я конечно с Navision не работал, но на сколько я вижу тут идет работа с WSH
попробуйте написать вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE(MsScriptControl);
  MsScriptControl = CreateObject('MSScriptControl.ScriptControl');
  MsScriptControl.Language	= 'vbscript';
  Str := 'function browse()';
  Str += 'Dim WSHShellApp';
  Str += 'Dim SelectedItem;
  Str += 'WSHShellApp = WScript.CreateObject("Shell.Application");';
  Str += 'SelectedItem = WSHShellApp.BrowseForFolder( 0 , Prompt, BrowseInfo, StartFolder);';
  Str += 'End Function';
  MsScriptControl.AddCode(Str);
  MESSAGE('Ваш путь: % 1 ',FORMAT(MsScriptControl.Run('browse()')));
не претендую на правильность, т.к. я пишу под 1С, но думаю создание объектов WSH и работа с ними должна быть аналогична, т.к. WSH относится к ОС, а не ИС.

P.S. насчет как создать объект MsScriptControl - не уверен
...
Рейтинг: 0 / 0
Navision - safearray
    #34566776
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс, немного ошибся, скорее будет вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE(MsScriptControl);
  MsScriptControl = CreateObject('MSScriptControl.ScriptControl');
  MsScriptControl.Language	= 'vbscript';
  Str := 'function browse()';
  Str += 'Dim WSHShellApp';
  Str += 'Dim SelectedItem';
  Str += 'SET WSHShellApp = WScript.CreateObject("Shell.Application");';
  Str += 'SET SelectedItem = WSHShellApp.BrowseForFolder(0, Prompt, BrowseInfo, StartFolder);';
  Str += 'End Function';
  MsScriptControl.AddCode(Str);
  MESSAGE('Ваш путь: %1',FORMAT(MsScriptControl.Run('browse()')));
...
Рейтинг: 0 / 0
Navision - safearray
    #34567344
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей84упс, немного ошибся, скорее будет вот так
Код: plaintext
1.
2.
3.
CREATE(MsScriptControl);
...
  MESSAGE('Ваш путь: %1',FORMAT(MsScriptControl.Run('browse()')));

проблема в том, что для метода Run объекта ScriptControl именно в Navision нужно указывать второй параметр, тип которого должен быть SafeArray. В любом другом языке метод Run вызывается с одним параметром.
...
Рейтинг: 0 / 0
Navision - safearray
    #34567737
ДмитрийНБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может так пойдет?

aut Automation 'Microsoft Shell Controls And Automation'.Shell
Folder Automation 'Microsoft Shell Controls And Automation'.Folder3
FolderItem Automation 'Microsoft Shell Controls And Automation'.FolderItem
Path Text 1024

CREATE(aut);
Folder := aut.BrowseForFolder(0,'Фолдерище!',1,'C:\');
FolderItem := Folder.Self();
Path := FolderItem.Path();
MESSAGE(Path);
...
Рейтинг: 0 / 0
Navision - safearray
    #34567805
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДмитрийНБМожет так пойдет?

aut Automation 'Microsoft Shell Controls And Automation'.Shell
Folder Automation 'Microsoft Shell Controls And Automation'.Folder3
FolderItem Automation 'Microsoft Shell Controls And Automation'.FolderItem
Path Text 1024

CREATE(aut);
Folder := aut.BrowseForFolder(0,'Фолдерище!',1,'C:\');
FolderItem := Folder.Self();
Path := FolderItem.Path();
MESSAGE(Path);
подойти то подойдет. пример который привели вы - это обход моей "проблемы". а мне нужно ее решение, т.е. использовать в навижене тип данных с магическим названием SafeArray.
з.ы. задача получения папки не была актуальной
но всеже сенкс)
...
Рейтинг: 0 / 0
Navision - safearray
    #34567859
ДмитрийНБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вобщем SafeArray нормально компилируется если это TEXT 30.
...
Рейтинг: 0 / 0
Navision - safearray
    #34568066
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДмитрийНБНу вобщем SafeArray нормально компилируется если это TEXT 30.
компилируется то без проблем. но потом при запуске(нажитии на кнопку) выдает сообщение
...
Рейтинг: 0 / 0
Navision - safearray
    #34568069
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дадахан ДмитрийНБНу вобщем SafeArray нормально компилируется если это TEXT 30.
компилируется то без проблем. но потом при запуске(нажитии на кнопку) выдает сообщение
...
Рейтинг: 0 / 0
Navision - safearray
    #34568499
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Upтуально.
неужели никто не сталкивался с сейфарэй в навижене?
...
Рейтинг: 0 / 0
Navision - safearray
    #34568544
ДмитрийНБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДадаханUpтуально.
неужели никто не сталкивался с сейфарэй в навижене?

Наверное никому не нужен этот внешний тип. Смотрите MSDN.
...
Рейтинг: 0 / 0
Navision - safearray
    #34576748
Фотография Дадахан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДмитрийНБ ДадаханUpтуально.
неужели никто не сталкивался с сейфарэй в навижене?

Наверное никому не нужен этот внешний тип. Смотрите MSDN.
Да он в принципе и мне не особо то нужен, но раз код был представлен для нава значит его можно как то реализовать.
Чтоже Мазуркин Сергей молчит, он наверно точно знает
...
Рейтинг: 0 / 0
Navision - safearray
    #34577070
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДадаханЧтоже Мазуркин Сергей молчит, он наверно точно знает
Не знаю, ответил бы.
Что-то у меня не возникало необходимости использовать safearray.
...
Рейтинг: 0 / 0
Navision - safearray
    #34577171
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFFTOPIC ON

Когда у меня была похожая проблема с Oracle Forms client-server. Я делал просто - писал для нужных классов свой собственный класс "обертку" (proxy) на VB или WSH. Регистрировал его в системе и работал через него. Тогда проблема, что язык высокого уровня поддерживает не все типы OLE отпадает.

Конечно deploy'мент приложения усложняется, но зато можно работать.

Кроме того, ряд серверов (например MS Excell) иногда содержат методы, которые вообще описаны в typelibrary черти как (нарушая все стандарты). И кроме как из M$ продуктов (a la VB) не вызываются или вызываются с большими проблемами.

OFFTOPIC OFF
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Navision - safearray
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]