RSS Подписка на статьи RSS Подписка на комментарии Панель инструментов

Блог профессионалов стал частью сайта технической поддержки DocsVision http://support.docsvision.com. Новые материалы будут появляться уже на этом сайте.

Поиск

Ярлыки

авто генерация кода (1) Администрирование DocsVision (60) Атрибутивный поиск (3) База данных (24) Базы знаний (1) Безопасность (1) Бизнес-процессы (20) Блог (2) Вы увидите это первыми (1) Групповые политики (1) Диаграммы (2) Задания (2) Интеграция (2) Карточки DocsVision (14) Конструктор Решений (11) Маркетинг и продажи (4) Навигатор (3) Новое (3) Новости (32) Опрос (4) Опросы DocsVision (4) Оптимизация (3) Отчеты (2) Ошибки (1) Поддержка (14) Полезные ссылки (1) Представления (4) Производительность (5) Разбор полетов (18) Разработка для Workflow (7) разработка карточек (2) Разработка на платформе DocsVision (41) Разработка решений (43) Расширение платформы (1) Расширенные отчеты (9) Решения на платформе DocsVision (6) Сервисы DocsVision (3) Сканеры (3) Справочник сотрудников (1) Справочник типов (1) Установка (1) Утилиты (13) Шлюз в SharePoint (8) Штрихкод (2) Cкрипты карточек (7) DocsVision внутри (1) DocsVision Live (1) FileStream (1) FireFox (2) Opera (1) Powershell (5) Safari (1) SharePoint2007 (1) SharePoint2010 (2) Silverlight (1) UltraViews (1) Vista (1)

Расширение возможностей скриптов карточек

Как известно, скрипты в карточках делопроизводства создаются на VisualBasic Script (VBS). Возникает вопрос - а можно ли в скрипте показать форму? Ответ - можно, но только создав внешний компонент с данной формой.

Итак, пример. Создадим дополнительную команду в контекстном меню Навигатора, которая будет создавать задачу в Outlook с напоминанием. При создании задачи у пользователя будем запрашивать дату и время напоминания.


Создаем проект в VisualStudio6: ActiveX Dll (ссылка на файлы внизу).
В данном проекте создаем класс OTaks с методом CreateTask.


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



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


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

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

В скрипте создаем наш объект через CreateObject. В нашей реализации в метод CreateTask передается Subject - тема задания, и Body - текст. В качеcтве темы получаем имя карточки и полный номер. Текст - значение из поля Digest

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, то форму можно реализовать средствами библиотеки. В этом случае никаких дополнительных клиентских компонент не нужно.

Netvista комментирует...

Данную библиотеку нужно распространять по клиентским станциям, что не очень удобно... с учетом того, что она может меняться достаточно часто и их может быть много...

может, конечно, не лучший вариант, но я использую 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 и пока она "достаточно часто" не менялась.
Про "их много" не вполне понял.

Кстати, есть и еще один вариант - реализовать новых тип универсальной карточки с нужными свойствами и показывать ее модально. После закрытия считывать данные и карточку удалять. Не вполне красиво и ограниченно по функциональности но тоже может работать.

Netvista комментирует...

Что такое UltraViews? Это разработка партнера DocsVision? так она, наверное, не бесплатная же....
Насколько я понял, в этом посте речь шла о том как создать форму для заполнения каких-либо дополнительных данных при работе со стандартным ДВ...
=====
в UltraViews есть возможность добавлять контролы динамически? или что имелось ввиду под "пока она "достаточно часто" не менялась"...
я имел ввиду, что подобного рода маленьких форм для заполнения информации может быть большое множество... не обязательно для пользователя, а, например, для администратора... я не имею возможности обучать администраторов всех предприятий всем красотам доксвижна и для выполнения админских функций пишу сценарии, при запуске которых необходимо указывать определенные параметры.... таких сценариев много и у каждого своя форма... по мере развития системы, данные формы наполняются дополнительными контролами, изменяют свой внешний вид и так далее....

Олег Назарько (Синтеллект) комментирует...

Платность или не бесплатность (а разработка, разумеется, не бесплатная) - здесь ни при чем. Блог могут читать и те пользователи ДВ, которые библиотеку UltraViews используют. Поэтому я хотел чтобы они знали о собственных возможностях.

Говоря же про N-ое количество таких форм - в случае с UltraViews это никак не влияет на устанавливаемые клиентам компоненты. Все отчеты администрируются, создаются и изменяются при помощи соответствующего справочника в Навигаторе и не требуют никакой установки на клиентах при изменении их функциональности или появлении новых. Кроме, повторюсь, первичной установки самой библиотеки.

Отправить комментарий