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)

Категории в карточках

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

Такой же функционал можно сделать и в DocsVision. Приведу простой способ (рассматривается версия DocsVision 4.1).

1. Создаем в карточке свойство типа "Строка" и с именем "Метка"
2. Делаем представление в котором выводим значение данного свойства. Пример
3. Создаем новую комманду Навигатора в справочнике дополнительных комманд Навигатора.
Назначаем команду на меню карточки, задаем название и иконку.


А в поле "Сценарий" указываем следующий скрипт.

Sub DoEvent(UserSession, CardHost, FolderType, FolderID, SelectionIDs)
On Error Resume Next

' Для каждой карточки из коллекции

For Each sID In SelectionIDs

' Получаем карточку
Set oCard = UserSession.CardManager.CardData(sID)
' Получаем секцию Properties

Set oPRows = oCard.Sections(oCard.Type.Sections.GetByAlias
("Properties").ID)
Set oRow=oPRows.FindRow("@Name='Метка'")

oRow.Value("Value")="Срочно" oRow.Value("DisplayValue")="Срочно"
Next
CardHost.Refresh

End Sub


Данный скрипт будет записывать всем выделенным в представлении карточкам, в строковое свойство "Метка" значение "Срочно". Свойство в карточке должно существовать.

Переоткрываем Навигатор. Теперь выделив карточку или группу карточек, можно установить им метку, которая отобразится в представлении (представление, которое отображает свойство должно быть уже назначено папке).


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

5 коммент.:

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

Вот такой пример есть:

Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID, PropValue)

Set oCard = CardData
Set oSelected = oCard.Sections(oCard.Type.Sections.GetByAlias("Properties").ID).FindRow("@Name='Быстрый выбор действия'")
Set oResolution = oCard.Sections(oCard.Type.Sections.GetByAlias("Properties").ID).FindRow("@Name='Резолюция'")

oResolution.Value("Value")=oSelected.Value("DisplayValue")
oResolution.Value("DisplayValue")=oSelected.Value("DisplayValue")

CardFrame.ShowMessage "Команда Навигатора", "Резолюция2 " + oResolution.Value("DisplayValue"), , 3
CardFrame.ShowMessage "Команда Навигатора", "Резолюция2 " + oResolution.Value("Value"), , 3

End Function

ShowMessage показывет правильные, измененные значения поля "Резолюция". А на деле в карточке в этом поле значение не изменяется :( Или не отображается.

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

А, я уже разобралась, надо делать DoEvent=2

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

Интересно, кому-нибудь удалось достичь перрисовки экрана без применения DoEvent=2 ?

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

Если для отрисовки или скрытия полей использовать DoEvent=2, то перерисовка получается "рваная" выводятся какие о фэйковые поля, отрисовка долгая.

Есть ли возможность перерисовать окно без этих рывков?

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

Да, еще вопрос.
Возможно ли запустить из VB скрипта функции Win API?

Михаил Захаров комментирует...

Можно создавать объекты через
Set A = CreateObject ("ClassName.ObjectName")

Многие операции можно сделать через WMI см. http://technet.microsoft.com/en-us/scriptcenter/default.aspx

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