Итак, пример. Создадим дополнительную команду в контекстном меню Навигатора, которая будет создавать задачу в Outlook с напоминанием. При создании задачи у пользователя будем запрашивать дату и время напоминания.
Создаем проект в VisualStudio6: ActiveX Dll (ссылка на файлы внизу).
В данном проекте создаем класс OTaks с методом CreateTask.

Добавляем форму

И описываем её логику.

Компилируем проект, в результате чего появляется библиотека, которую нужно будет зарегистрировать на всех машинах, на которых будет использоваться скрипт.
Создаем дополнительную команду Навигатора. В которой указываем где она появится, и для каких карточек будет действительна.

Sub DoEvent(UserSession, CardHost, FolderType, FolderID, SelectionIDs)
On Error Resume Next
Set oTask=CreateObject("DVMHelper.OTask")
For Each Id In SelectionIDs
Set oCard = UserSession.CardManager.CardData(Id)
Set oMain = oCard.Sections.Item(oCard.Type.Sections.GetByAlias("MainInfo").ID).FirstRow
Body=CStr(oMain.Value("Digest"))
Number=CStr(oMain.Value("FullNumber"))
Subject=Number+" " + CStr(oMain.Value("Name"))
oTask.CreateTask CStr(Subject),CStr(Body)
Next
Set oTask=Nothing
End Sub
После переоткрытия Навигатора в контекстном меню появляется команда.

При выборе запускается сценарий и появляется окно из нашего объекта

После работы скрипта, в Outlook видна задача.

Ниже приведена ссылка на пример проекта и на библиотеку, которую уже можно использовать.
Скачать проект и библиотеку Читать дальше
5 коммент.:
Как альтернативный вариант - если вы пользуетесь UltraViews, то форму можно реализовать средствами библиотеки. В этом случае никаких дополнительных клиентских компонент не нужно.
Данную библиотеку нужно распространять по клиентским станциям, что не очень удобно... с учетом того, что она может меняться достаточно часто и их может быть много...
может, конечно, не лучший вариант, но я использую HTML-формы...
Set oProgress = CreateObject("InternetExplorer.Application")
oProgress.ToolBar = False
oProgress.MenuBar = False
oProgress.AddressBar = False
oProgress.StatusBar = False
oProgress.Visible = 1
oProgress.Navigate "about:blank"
oProgress.Document.Write ""
======
ну и так далее....
PS: Теги не разрешены тут :(
Если речь про UltraViews то библиотека ставится один раз при установке клиентских компонент DocsVision и пока она "достаточно часто" не менялась.
Про "их много" не вполне понял.
Кстати, есть и еще один вариант - реализовать новых тип универсальной карточки с нужными свойствами и показывать ее модально. После закрытия считывать данные и карточку удалять. Не вполне красиво и ограниченно по функциональности но тоже может работать.
Что такое UltraViews? Это разработка партнера DocsVision? так она, наверное, не бесплатная же....
Насколько я понял, в этом посте речь шла о том как создать форму для заполнения каких-либо дополнительных данных при работе со стандартным ДВ...
=====
в UltraViews есть возможность добавлять контролы динамически? или что имелось ввиду под "пока она "достаточно часто" не менялась"...
я имел ввиду, что подобного рода маленьких форм для заполнения информации может быть большое множество... не обязательно для пользователя, а, например, для администратора... я не имею возможности обучать администраторов всех предприятий всем красотам доксвижна и для выполнения админских функций пишу сценарии, при запуске которых необходимо указывать определенные параметры.... таких сценариев много и у каждого своя форма... по мере развития системы, данные формы наполняются дополнительными контролами, изменяют свой внешний вид и так далее....
Платность или не бесплатность (а разработка, разумеется, не бесплатная) - здесь ни при чем. Блог могут читать и те пользователи ДВ, которые библиотеку UltraViews используют. Поэтому я хотел чтобы они знали о собственных возможностях.
Говоря же про N-ое количество таких форм - в случае с UltraViews это никак не влияет на устанавливаемые клиентам компоненты. Все отчеты администрируются, создаются и изменяются при помощи соответствующего справочника в Навигаторе и не требуют никакой установки на клиентах при изменении их функциональности или появлении новых. Кроме, повторюсь, первичной установки самой библиотеки.
Отправить комментарий