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)

Редактирование данных в связанных полях

В Конструкторе есть простой и эффективный механизм связанных полей, позволяющий автоматически подтягивать значения по ссылке из других карточек и справочников.
Однако этот механизм позволяет лишь показывать данные из других объектов, не позволяя их отредактировать и сохранить.
Если стоит задача вытащить данные по ссылке в контролы, чтобы позволить затем пользователю их редактировать, то придется немного потрудиться...

Задача.
Предположим, у нас есть карточка маршрута согласования и карточка документа, где это маршрут используется. Карточка маршрута служит для описания типовых маршрутов и содержит список согласующих лиц, тип маршрута (последовательный, параллельный) и другие параметры. В документе, после выбора типового маршрута хочется дать пользователю возможность отредактировать список согласующих лиц и тип маршрута.

Решение.
В карточке документа размещаем 3 основных контрола:
- Выбор маршрута (контрол типа Ссылка на карточку)
- Тип маршрута (контрол типа Группа радиокнопок)
- Согласующие лица (контрол типа Сотрудники)
а также 2 вспомогательных контрола:
- Тип маршрута Вспомогательный (контрол типа Группа радиокнопок)
- Согласующие лица Вспомогательный (контрол типа Сотрудники)
Вспомогательные контролы делаем невидимыми (устанавливая атрибут Visibility в Invisible или EmptySpace) и привязываем по ссылке к соответствующим полям карточки маршрута согласования, выбираемой в контроле Выбор маршрута (как это сделать, описано в руководстве администратора).
Затем пишем следующий скрипт для события ControlValueChanged контрола Выбор маршрута:

using System;
using System.Windows.Forms;
using DocsVision.Platform.ObjectManager;
using DocsVision.BackOffice.View.WinForms;
using DocsVision.BackOffice.Model;
namespace ScriptNamespace
{
public class ScriptClass
{
public void Execute(UserSession session, CardData cardData, baseCardControl cardControl)
{
// Получение значения связанного свойства, которое на форме сделано невидимым.
// Его единственная задача - получить значение по ссылке
object propertyValue = cardControl.PropertyController.GetPropertyValue("Тип маршрута Вспомогательный");
// Запись значения в свойство
cardControl.PropertyController.UpdateProperty("Тип маршрута", propertyValue);
// То же для контрола типа Список сотрудников
object propertyValue2 = cardControl.PropertyController.GetPropertyValue("Согласующие лица Вспомогательный");
cardControl.PropertyController.UpdateProperty("Согласующие лица", propertyValue2);
// Обновление элементов управления
cardControl.PropertyController.RefreshControls();
}
}
}

Все!
Теперь после выбора ссылки на карточку маршрута можно редактировать тип маршрута и список согласующих лиц.
Читать дальше

0 коммент.:

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