Пособие для партнёров DocsVision




НазваниеПособие для партнёров DocsVision
страница8/35
Дата конвертации12.12.2012
Размер3.06 Mb.
ТипРеферат
1   ...   4   5   6   7   8   9   10   11   ...   35

3.3.3Использование элементов управления


После завершения реализации стандартных интерфейсов, следующим шагом в разработке компонента карточки является расположение на контрольном элементе карточки различных элементов, предназначенных для управления поведением карточки; ввода, редактирования и удаления данных; и прочих необходимых функций. В качестве элементов управления могут быть использованы стандартные элементы управления Visual Studio, дополнительные контрольные элементы сторонних производителей, или специализированные элементы управления DocsVision.

Элементы управления DocsVision реализованы в уже знакомой библиотеке DocsVision.Platform.WinForms.dll. Однако для начала работы с ними, следует выполнить дополнительные действия по включению их в набор текущих инструментов Visual Studio.

icon_prim

Примечание

Для карточек, разрабатываемых по технологии WPF, элементы управления DocsVision пока не предусмотрены. Поэтому разработчику такой карточки можно пользоваться только стандартными элементами.

На панели инструментов Visual Studio (Toolbox) имеет смысл организовать новую вкладку для размещения элементов управления DocsVision, чтобы легче находить их среди остальных элементов правления. Для этого нужно выполнить команду “Add tab”, и указать название новой вкладки (Рис. 3-1)



Рисунок 3

После создания вкладки, на нее можно добавить элементы управления при помощи команды “Choose items” (рис. 3-2):



Рисунок 3

В диалоге необходимо указать путь к файлу DocsVision.Platform.WinForms.dll, после чего в списке появятся доступные элементы управления их этой библиотеки (рис. 3-3):



Рисунок 3

После выбора всех элементов управления и закрытия диалога, они отобразятся на панели инструментов и будут доступны для использования (рис. 3-4):



Рисунок 3

Элементы управления из библиотеки DocsVision.Platform.WinForms.dll можно условно разделить на три группы:

  • Источники данных – эти элементы управления сами не отображаются на форме и не взаимодействуют с пользователем; а служат только в качестве источников данных для других элементов управления. К этой группе относятся:

    • SessionSourceсоединение с сервером DocsVision

    • CardDataSource – набор данных карточек

    • RowDataSourceнабор строк секции карточки

    • InfoRowDataSourceданные представления

    • ReportDataSourceданные хранимой процедуры

  • Интерактивные элементы управления – элементы управления, которые размещаются на форме и с которыми напрямую взаимодействует пользователь. К этой группе относятся:

    • BoundChooseBox – универсальный элемент управления для выбора значений ссылочных полей

    • CardChooseBox – специализированный элемент управления для выбора карточек

    • FolderChooseBox – специализированный элемент управления для выбора папок

    • RowChooseBoxэлемент управления для выбора любых объектов

    • BoundTreeView – элемент управления для работы с иерархической секцией

    • WizardControl вспомогательный элемент управления для создания Мастеров

    • NavigationToolStripнавигационная панель инструментов

  • Диалоги – вспомогательные диалоги, которые могут быть вызваны из текущей формы, и открываются в новом окне:

    • SelectDirectoryEntryDialog – диалог выбора пользователя Active Directory

    • SelectOrganisationalUnitDialog – диалог выбора подразделения Active Directory

    • SelectDomainDialog – диалог выбора домена Active Directory

    • SelectIconDialog – диалог выбора иконки из файла на диске

Ниже подробно описано использование каждого из элементов управления.

3.3.3.1Источники данных


Основная идея разработки визуальных форм карточек DocsVision заключается в максимальном использовании стандартных элементов управления Visual Studio (TextBox, ComboBox, ListView и т.д.) – вместо того, чтобы предлагать собственные элементы управления, которые разработчику понадобится дополнительно изучать... Этот подход имеет свои преимущества:

  • Стандартные элементы управления хорошо документированы (MSDN)

  • У разработчиков обычно есть навыки работы с ними

  • Совместимость элементов управления гарантируется Microsoft

Однако недостатком подобного подхода является тот факт, что стандартные элементы управления ничего “не знают” о DocsVision. Соответственно, при их использовании разработчику придется каждый раз писать один и тот же код по загрузке данных из DocsVision в элемент управления; и обратному сохранению данных из элемента управления в DocsVision.

Данную проблему предлагается решать при помощи Data Binding – технологии Microsoft для динамического связывания элемента управления с источником данных (базой данных, внешней системой, провайдером и т.д.). Она дает следующие ключевые преимущества:

  • Настройка в design-time (позволяет создать полнофункциональный элемент управления для обработки данных без написания какого-либо кода)

  • Автоматизация рутинных операций по загрузке данных в элемент управления и сохранению изменений (разработчик избавлен от необходимости дублировать этот код для каждого элемента)

  • Поддерживается подавляющим большинством стандартных элементов управления Visual Studio, а также элементами сторонних производителей

Для того, чтобы сделать подобное связываение возможным, требуется наличие специального объекта – источника данных. Библиотека элементов управления DocsVision предусматривает четыре таких объекта для разных типов данных в системе; а также один вспомогательный объект – SessionSource.

3.3.3.2Объект SessionSource


Объект SessionSource является вспомогательным для других источников данных, и обеспечивает им соединение с сервером DocsVision. Его наличие является обязательным при использовании механизма связывания (Data Binding).

Для начала использования объекта SessionSource, его нужно поместить с панели инструментов на форму карточки. При этом, откроется форма настройки, позволяющая удобно сконфигурировать параметры соединения с сервером (рис. 3-5):



Рис. 3

На форме можно указать следующие параметры:

Address – адрес сервера DocsVision (SOAP или PIPE)

Database – имя базы данных (можно не указывать, в этом случае будет использована база данных по умолчанию)

Connect with clear text authentification – признак использования базовой аутентификации вместо встроенной

User Name – имя пользователя для базовой аутентификации

Password – пароль для базовой аутентификации

Use the card session at runtime – на этом признаке стоит остановиться подробнее. Если он НЕ установлен – то будет создана новая сессия с указанным в настройках сервером и базой данных. Если же он установлен – то параметры соединения с сервером будут проигнорированы; а сессия будет использована та, что передана в объект карточки (CardControl.Session). Таким образом, можно установить следующее простое правило:

  • При разработке карточек, нужно чтобы этот признак был установлен

  • При разработке внешних приложений и утилит, нужно чтобы этот признак был снят

Нажатие на кнопку “Test connection” позволяет проверить правильность введенных данных (будет произведена попытка создания новой сессии с указанным сервером). Если все данные указаны верно – будет выдано сообщение (Рис. 3-6):



3

При нажатии на кнопку Advanced, откроется окно, позволяющее задать дополнительные настройки сессии (их также можно задать позже в окне свойств объекта SessionSource) (Рис. 3-7)



3

Свойства объекта SessionSource соответствуют типовым параметрам соединения (приложение 7.1)



3.3.3.3Источник данных CardDataSource


Объект CardDataSource является уже непосредственным источником данных для элементов управления. Он позволяет работать с коллекцией данных карточек (CardDataCollection).

При первичном размещении этого источника данных на форме карточке, откроется специальный Мастер, которые позволит сконфигурировать источник данных за несколько простых шагов.

Первый шаг Мастера настройки (рис. 3-8) позволяет указать сессию, с которой будет работать источник данных CardDataSource:



3

В выпадающем списке представлены все имеющиеся в проекте объекты-сессии (SessionSource), из которых нужно выбрать тот, который будет использован для получения данных. При выборе конкретного объекта сессии, в поле “Connection string” отображаются детальные сведения о выбранном соединении. Кнопка “New session source” позволяет создать новый объект сессии, если он еще не добавлен в проект.

После выбора соединения и перехода на следующий шаг, предлагается указать тип карточек, с которыми будет работать данный источник данных (рис 3-9). В дереве приведены все типы карточек, зарегистрированные в текущей базе данных, сгруппированные согласно своим библиотекам. Источник данных CardDataSource может работать только с одним конкретным типом единовременно.



3

Для выбранного типа карточек, источник данных CardDataSource может получить либо ВСЕ имеющиеся в базе данных экземпляры карточек такого типа (по аналогии с системной веткой “Карточки” в Навигаторе); либо ограничить количество возвращаемых карточек по фильтру (поисковому запросу).

icon_attention

Внимание

Источник данных CardDataSource при получении данных карточек закачивает ВСЕ данные для КАЖДОЙ найденной карточки на клиента! При большом количестве карточек, это может привести к существенным задержкам и нагрузке на канал. Поэтому рекомендуется максимально ограничивать количество получаемых карточек при помощи ограничений поискового запроса.

По умолчанию, Мастер настройки источника данных CardDataSource предполагает, что получаются все карточки указанного типа. Поэтому сразу после выбора конкретного типа карточек становится доступной кнопка Finish, завершающая работу Мастера.

Для того чтобы конкретизировать список возвращаемых карточек при помощи поискового запроса, нужно установить признак “Add the search query string”. В этом случае, становится доступным следующий шаг Мастера (рис. 3-10), который позволяет указать поисковый запрос для отбора карточек:



3

Можно выбрать уже готовый запрос из числа сохраненных, так и ввести непосредственно текст запроса в виде XML – для этого необходимо установить курсор на специальную ветку (Custom), тогда в правой части станет доступным элемент управления для редактирования запроса (подробнее см. Использование поиска).

icon_prim

Примечание

При выборе сохраненного поискового запроса, источник данных копирует и сохраняет его непосредственный текст, а не ссылку! Поэтому последующие изменения этого сохраненного запроса в базе данных уже не отразятся на источнике данных – его придется переконфигурировать явно.

После указания запроса и нажатия кнопки Finish, конфигурирование источника данных завершается. Впоследствии все установленные при помощи Мастера параметры можно изменить – в окне свойств (Properties) в Visual Studio, или в run-time в виде свойств объекта CardDataSource.

Доступен следующий набор свойств:

  • CardTypeId (Guid) – идентификатор типа карточек

  • SessionSource – объект сессии (соединение) для источника данных

  • QueryString (string) – строка поискового запроса

После создания и настройки источника данных, можно приступать к привязке готового источника к элементу управления. Рассмотрим пример использования объекта CardDataSource в качестве источника данных для стандартного элемента управления ComboBox.

Прежде всего, необходимо поместить элемент управления на форму карточки, и задать значения основных атрибутов (название, расположение, и т.д.). После этого, можно приступить к связыванию элемента управления с источником данных (Рис. 3-11):



3

Для этого требуется задать значения следующих свойств:

  • Data Source - источник данных для элемента управления (выбираем созданный и настроенный CardDataSource)

  • Dispay Member – поле источника данных, значение которого будет использоваться для отображения в элементе управления. Поскольку в данном случае используется источник данных карточек DocsVision (CardDataSource), то в качестве полей данных возвращается набор стандартных системных атрибутов карточек (описание, дата создания, дата изменения, и т.д.)

  • Value member – поле источника данных, которое будет определять значение выбранного элемента. В случае CardDataSource, уместо в качестве такого поля использовать идентификатор карточки (ID)

  • Selected Value – выбранное по умолчанию значение в списке

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

3.3.3.4Источник данных RowDataSource


Источник данных RowDataSource предназначен для работы с набором строк секции карточки (RowDataCollection). При этом, он позволяет не только просматривать – то и изменять, добавлять и удалять строки в секции.

Как и в случае описанного выше источника CardDataSource, первичную конфигурацию источника данных можно выполнить при помощи Мастера.

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

На втором шаге (рис. 3-12) Мастер предлагает указать секцию, строки из которой будет получать источник данных. Допускается работа с секциями любых типов (плоская, табличная, древовидная). По умолчанию Мастер предполагает, что будут использоваться все строки указанной секции. Если же необходимо отфильтровать набор строк – то необходимо установить признак “Add the search query string”. Тогда следующий шаг Мастера позволит указать поисковый запрос для отбора строк секции (подробнее см. Использование поиска). Дополнительный признак “Get all section rows” на этой же странице указывает на необходимость получения всех строк иерархической секции, без учета уровня иерархии (пример: получить все подразделения и организации из справочника сотрудников).

icon_prim

Примечание

При использовании этого признака, результирующий набор строк в источнике данных НЕ будет доступен для добавления и удаления строк!



3

На следующем шаге (рис. 3-13) предлагается выбрать конкретный экземпляр карточки, из которой будут получаться строки (в случае если выбрана секция справочника, которые всегда существуют в системе в единственном экземпляре – в таком выборе нет необходимости, и можно пропустить этот шаг). Для выбора конкретной карточки можно воспользоваться кнопкой “Select card”. Признак “Use the card data from runtime” сигнализирует о том, что для получения данных будет использоваться динамический объект, доступный через свойство CardData в контексте данной формы. В случае разработки компонента карточки, это будут данные самой этой карточки.



3

Наконец, последний шаг предназначен для указания запроса фильтрации данных (он становится доступен при установке признака “Add the search query string”). Как и в случае CardDataSource, на этом шаге можно выбрать сохраненный поисковый запрос; или указать текст запроса напрямую.

После этого работа Мастера завершается, и источник данных готов к использованию.

Все параметры, установленные для источника данных при помощи Мастера, можно впоследствии изменить через свойства объекта RowDataSource:

  • CardInstanceID – идентификатор экземпляра карточки, из которой будут получаться строки

  • CardTypeID – идентификатор типа карточки, из которой будут получаться строки

  • SectionTypeID – идентификатор типа секции карточки, из которой будут получаться строки

  • SearchQuery – текст поискового запроса для фильтрации строк

  • ParentRowID – идентификатор родительской строки (для подчиненной секции)

  • ParentTreeRowID – идентификатор родительской строки в иерархической секции

  • SessionSource – объект сессии

Пример использования источника данных RowDataSource: разместим на форме карточки таблицу со списком всех сотрудников из справочника сотрудников. Для этого необходимо настроить источник данных на соответствующую секцию; а также установить признак «Get all section rows», чтобы получить все строки секции независимо от уровня в иерархи.

В качестве элемента управления для работы со строками целесообразно использовать стандартный табличный элемент управления DataGridView – который позволяет не только просматривать строки, но и редактировать их. После указания элементу управления источника данных, он автоматически получает заголовки столбцов как имена соответствующих полей секции (рис. 3-14):



3

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

3.3.3.5Источник данных InfoRowDataSource


Источник данных InfoRowDataSource предназначен для работы с данными представлений. В отличие от предыдущего источника данных, он позволяет только просматривать данные – и не предоставляет возможности их редактирования.

Конфигурирование этого источника данных, как и во всех остальных случаях, осуществляется в режиме Мастера. На первом шаге предлагается выбрать объект сессии для установки соединения. На втором шаге необходимо указать представление из числа сохраненных описаний представлений на данном сервере, или создать новое (custom) (рис. 3-15):



Рисунок 3

Поскольку представление описывает всего лишь способ отображения данных, а не сами данные – то необходимо указать еще источник данных для представления. Это можно сделать на следующем шаге Мастера (Рисунок 3 ). Возможны следующие варианты:

  • Card Type – в представлении будут отображены все карточки указанного типа (необходимо выбрать конкретный тип карточки в дереве типов)

  • Folder – в представлении будут отображены данные карточек, лежащих в конкретной папке (необходимо указать папку в дереве папок)

  • Recycle Bin – отображает содержимое корзины (все удаленные карточки)

  • Search – представление применяется к результатам выполнения поискового запроса (необходимо выбрать сохраненный поисковый запрос, или ввести его текст)

Здесь же можно указать дополнительные признаки, влияющие на формирование представления:

  • Show arсhived – выводить в представлении архивные карточки

  • Show deleted – выводить также удаленные карточки

  • Show hidden – выводить скрытые и системные типы карточек

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



Рисунок 3

После определения данных представления, работа Мастера заканчивается, и источник данных готов к использованию. Все параметры также доступны для последующего изменения в виде свойств объекта InfoRowDataSource:

ItemId – идентификатор выбранной папки, при использовании папки в качестве источника данных; либо идентификатор типа карточек.

SearchQuery – текст поискового запроса, если НЕ используется сохраненный (при использовании поиска в качестве источника данных)

SearchQueryID – идентификатор сохраненного поискового запроса для выборки карточек (при использовании поиска в качестве источника данных)

ViewID – идентфикатор сохраненного описания представления

ViewQuery – XML-описание представления, если НЕ используется сохраненное

ViewSourceType – тип данных в представлении (Card Type, Folder, Recycle Bin, Search)

3.3.3.6Источник данных ReportDataSource


Последний источник данных ReportDataSource предназначен для работы с данными хранимых процедур.

Как и в остальных случаях, первичное конфигурирование источника данных выполняется при помощи Мастера. После выбора активного соединения на первом шаге, Мастер предлагает указать хранимую процедуру из числа зарегистрированных в базе данных (отображаются хранимые процедуры сразу из всех загруженных в БД библиотек карточек!) (Рисунок 3 )



Рисунок 3

По умолчанию в базе данных присутствуют только системные хранимые процедуры из решения “Управление процессами”, названия которых приведены на рисунке.

После выбора процедуры, Мастер предлагает указать значения всех ее параметров (Рисунок 3 ). У каждой хранимой процедуры собственный уникальный набор параметров, определенный на этапе ее разработки. Часть из них может быть обязательной, часть – нет. Для облегчения процесса заполнения параметров, Мастер подсказывает тип каждого из них в строке статуса.



Рисунок 3

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

Все параметры также доступны для последующего изменения в виде свойств объекта ReportDataSource:

ReportID – идентификатор хранимой процедуры

Parameters – коллекция значений параметров процедуры

3.3.3.7Элементы управления DocsVision


Как показывает практика, далеко не все задачи можно решить при помощи технологии связывания данных Data Binding. Например, невозможно корректно отобразить иерархические данные в виде дерева – потому что стандартный элемент управления TreeView просто не поддерживает Data Binding. Кроме того, область применения источников данных ограничена задачами просмотра и редактирования упорядоченных наборов данных (строк, карточек) – тогда как типичные практики предусматривают и другие способы взаимодействия с пользователем (например, выбор каких-либо объектов при помощи специализированного браузера).

Для решения некоторых из этих задач, DocsVision предлагает несколько вспомогательных элементов управления собственной разработки. В их числе:

    • BoundChooseBox – универсальный элемент управления для выбора значений ссылочных полей

    • CardChooseBox – специализированный элемент управления для выбора карточек

    • FolderChooseBox – специализированный элемент управления для выбора папок

    • RowChooseBoxэлемент управления для выбора любых объектов

    • BoundTreeView – элемент управления для работы с иерархической секцией

    • NavigationToolStripнавигационная панель инструментов

    • WizardControl вспомогательный элемент управления для создания Мастеров


3.3.3.8Элемент управления BoundChooseBox


Элемент управления BoundChooseBox предназначен для выбора значений ссылочных полей при помощи унифицированного интерфейса (Рисунок 3 ).

В стандартном виде, элемент управления ChooseBox представляет из себя поле для отображения результатов выбора, и связанную с ним кнопку “…”, инициирующую новый выбор:



Рисунок 3

BoundChooseBox использует технологию Data Binding (что отражено в его названии) для автоматической привязки к одному из полей карточки ссылочного типа (RefID или RefCardID). При этом он автоматически определяет тип ссылки, и в зависимости от этого отображает соответствующий интерфейс для выбора значения:

  • RefCardID – если поле является ссылкой на карточку, то для выбора значения BoundChooseBox отображает интерфейс Навигатора, в котором разрешено выбирать карточки;

  • RefID – для типизированной ссылки на строку другой карточки (или справочника), на выбор открывается пользовательский интерфейс этой карточки (например, если поле является ссылкой на строку секции справочника сотрудников – то на выбор будет открыт справочник сотрудников). Особым случаем является ссылка на строку секции карточки папок – в этом случае элемент управления откроет на выбор Навигатор, в котором разрешено выбирать папки.

icon_prim

Примечание

Если поле RefID карточки является нетипизированным (не указаны значения типа и секции связанной карточки) – то BoundChooseBox не сможет работать с таким полем! В этом случае рекомендуетя использовать элемент управления CustomChooseBox.

При работе в режиме связывания, элемент управления BoundChooseBox автоматически выполняет чтение данных из поля карточки и первичную инициализацию; а также автоматически сохраняет выбранное значение в поле карточки в процессе использования. Таким образом, разработчику нужно выполнить только предварительную настройку элемента управления в Design Time, и нет необходимости писать код обработчиков событий.

Кроме этого, элемент управления BoundChooseBox имеет дополнительные сервисные функции:

      • Поддержка быстрого поиска и выбора объектов по нажатию горячих клавиш “Ctrl+K”

      • Возможность ассоциации дополнительного контекстного меню для поля результатов выбора (Рисунок 3 )



Рисунок 3

      • Возможность ассоциации дополнительного контекстного меню для кнопки выбора (Рисунок 3 )



Рисунок 3

Прежде чем приступить к использованию элемента управления BoundChooseBox, необходимо подготовить источник данных для него. В качестве источника данных может выступать объект RowDataSource, предназначенный для работы со строками секции карточки. Однако здесь необходимо учесть один ньанс: источник данных RowDataSource может возвращать сразу несколько строк (например, для секции коллекционного типа); а элемент управления BoundChooseBox может отображать только значение конкретного поля одной конкретной строки. Чтобы разрешить это противоречие, вводится еще один промежуточный объект – BindingSource, который предназначен как раз для того, чтобы выбрать одну конкретную строку из набора, возвращаемого RowDataSource. Таким образом, общую картину связывания данных в данном случае можно представить следующим образом (Рисунок 3 ):


Рисунок 3
RowDataSource

BindingSource

BoundChooseBoxe
Объект BindingSource входит в число стандартных элементов управления Microsoft, и доступен на панели инструментов (Toolbox) в группе “Data”. Использовать его достаточно просто, он содержит всего одно значимое свойство – DataSource, где нужно разместить ссылку на уже подготовленный источник данных RowDataSource.

После создания и настройки источников данных (RowDataSource и BindingSource) можно приступать к настройке собственно элемента управления BoundChooseBox.

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

Дополнительно можно указать свойство FormatString – определяющее, как именно BoundChooseBox будет отрображать выбранное значение. Формировать отобржаемое значение можно при помощи комбинации строковых констант и значений любых полей той строки, из которой производится выбор. Имена полей оформляются в строке отображения в фигурных скобках; а строковые константы – напрямую. Таким образом, пример строки отображения для вывода данных о сотруднике (строка секции Emploees из справочника сотрудникорв – RefStaff) может выглядеть так:

Фамилия:{LastName}_Имя:{FirstName}_Отчество:{MiddleName}

Свойства CommandMenuStrip и ContextMenuStrip позволяют сформировать контекстные меню для кнопки выбора и отображаемого значения соответственно. Для реализации самих контекстных меню используется стандартный элемент управления Microsoft ContextMenuStrip. Его необходимо предварительно добавить на форму карточки и настроить его свойства (добавить пункты меню), а также создать обработчики для событий выбора пунктов меню. Готовый и настроенный элемент управления можно указать в качестве значения свойства CommandMenuStrip или ContextMenuStrip.

icon_prim

Примечание

В случае использования меню команд выбора CommandMenuStrip, стандартный значок кнопки выбора «…» будет заменен на иконку первого из пунктов контекстного меню.

Другие свойства элемента управления BoundChooseBox:

  • Caption – заголовок окна выбора

  • HideNotAvailable – признак не показывать скрытые элемиенты для выбора

  • SearchDelimiter – разделительный символ для быстрого поиска (элемент управления позволяет выполнять быстрый поиск по всем полям, указанным в строке отображения, в порядке их следования; а для разделения этих полей при вводе используется этот символ). По умолчанию это пробел.

  • SearchSubstring – для бытрого поиска (по Ctrl+K) признак, искать ли вхождение подстроки только сначала или любом месте. По умолчанию значение равно false, то есть поиск ведется только по первым символам.

  • Textотображаемое значение элемента управления

  • Value – выбранное значение (идентификатор)

Методы объекта BoundChooseBox:

  • System.Guid ChooseValue() – инициирует процесс выбора значения

  • QuickSearch() – инициирует быстрый поиск по введенному тексту


3.3.3.9Элемент управления CardChooseBox


Элемент управления CardChooseBox является специализированной версией ChooseBox, предназначенной только для выбора карточек. Этот элемент управления не поддерживает технологию Data Binding, поэтому для его использования потребуется вручную написать код для инициализации существующими данными, и для сохранения результата выбора. Вместе с тем, данный элемент управления предоставляет гораздо большую гибкость по сравнению с BoundChooseBox, за счет того что позволяет разработчику управлять особенностями своей работы, в том числе – указывать поисковый запрос для фильтрации карточек, доступных на выбор. Это позволит, например, ограничить область выбора конкретным типом карточек.

Для указания фильтра используется свойство CardsFilter, которое доступно только программно (в run-time). В качестве значения свойства необходимо установить ссылку на поредварительно созданный объект SearchQuery (подробнее об использовании поиска в соответствующей главе).

Остальные свойства элемента управления CardChooseBox соответствуют аналогичным свойствам BoundChooseBox.

Для чтения выбранного значения из элемента управления можно использовать свойства Text (отображаемое значение) и Value (идентификатор выбранного значения); а также событие OnValueChanged(object sender, System.EventArgs e) – которое инициируется после завершения нового выбора.

Пример инициализации элемента управления CardChooseBox ограничивающий возможность выбора только карточками файла:

const string FILE_CARD_TYPE = "{2BBD0A41-265E-4FF8-82D6-C6342F34B1AF}";
SearchQuery query = session.CreateSearchQuery();

query.AttributiveSearch.CardTypeQueries.AddNew(new Guid(FILE_CARD_TYPE));
cardChooseBox1.CardsFilter = query;

3.3.3.10Элемент управления FolderChooseBox


Как и CardChooseBox, элемент управления FolderChooseBox является специлизированной версий ChooseBox, предназначенной для выбора папок. Он имеет cпецифическую возможность ограничивать тип папок, которые разрешается выбирать – для этого предназначено свойство

DocsVision.Platform.ObjectManager.SystemCards.FolderTypes AllowedFolderTypes

Значение свойства является битовой маской, которая может быть сочетанием следующих значений:

FolderTypes.All – все типы одновременно;

FolderTypes.None – тип не определен;

FolderTypes.Regular – обычная папка;

FolderTypes.Root – корневая папка;

FolderTypes.Virtual – виртуальная папка;

FolderTypes.Delegate – папка-делегат;

FolderTypes.SystemHidden – системная папка;

FolderChooseBox также не поддерживает Data Binding, поэтому код по загрузке/сохранению данных из этого элемента управления необходимо будет написать самосотоятельно.

3.3.3.11Элемент управления RowChooseBox


Последний вариант элемента управления для выбора значений, RowChooseBox, является специализированным средством для выбора строк из карточек (справочников). От BoundChooseBox его отличает отсутствие поддержки Data Binding, но бОльшая гибкость в настройке и использовании за счет дополнительных свойств:

  • System.Guid CardTypeId – идентификатор типа карточки, из которой нужно выбирать строки

  • System.Guid SectionTypeId – идентификатор типа секции, из которой нужно выбирать строки

  • System.Guid CardInstanceIdидентификатор конкретного экземпляра карточки, из которой нужно выбирать строки (используется в случае если карточка НЕ является справочником)

Значения этих свойств нужно указать в design-time, или программно при инициализации элемента управления; а также добавить обработчики для чтения/записи значений из элемента управления.

3.3.3.12Элемент управления BoundTreeView


Элемент управления BoundTreeView предназначен для отображения данных иерархической секции. Как следует из его названия, этот элемент поддерживает технологию Data Binding – то есть позволяет настроить его без необходимости написания какого-либо кода. Это же объясняет и сам факт его появления – он вызван тем, что стандартный элемент управления TreeView не поддерживает технологию Data Binding. Внешний вид элемента управления BoundTreeView (Рисунок 3 ):



Рисунок 3

По способу использования, элемент управления BoundTreeView похож на BoundChooseBox – он привязывается к источнику данных секции (RowDataSource) с использованием вспомогательного объекта BindingSource:

RowDataSource

BindingSource

BoundTreeView
Ссылка на BindingSource записывается в одноименное свойство объекта BoundTreeView.

Кроме этого, необходимо заполнить следующие свойства элемента управления:

  • DataMemberимя поля секции, к которому будет привязываться элемент управления. Значение этого поля будет формировать значение (Value) каждого узла в дереве.

  • RootNodeText – имя корневого узла (если это свойство не указать, то имя корневого узла будет пустым)

  • FormatString – отображаемое значение имен узлов. Формировать отобржаемое значение можно при помощи комбинации строковых констант и значений любых полей той строки, с которой связан элемент управления. Имена полей оформляются в строке отображения в фигурных скобках; а строковые константы – напрямую.


3.3.3.13Элемент управления WizardConrol


Элемент управления WizardControl позволяет облегчить процесс создания стандартных Мастеров (последовательность форм с возможнотью навигации вперед/назад). Внешний вид элемента управления (Рисунок 3 ):



Рисунок 3

WizardControl имеет ряд свойств, определяющих его внешний вид и поведение:

int ButtonHeight – высота стандартных кнопок (Back, Next, Cancel, Finish)

int ButtonWidth - ширина стандартных кнопок (Back, Next, Cancel, Finish)

int HorizontalSpacing – расстояние между кнопками по горизонтали

int VerticalSpacing – расстояние между кнопками по вертикали

string BackButtonText – текст кнопки “Back”

string CancelButtonText – текст кнопки “Cancel”

string FinishButtonText – текст кнопки “Finish”

string HelpButtonText – текст кнопки “Help”

System.Drawing.Size DefaultSize – начальный размер элемента управления

System.Windows.Forms.FlatStyle FlatStyleстиль отрисовки элемента управления

bool HelpButtonVisible – признак, отображать ли кнопку помощи (Help)

Собственно шабор шагов Мастера задается при помощи коллекции WizardPages – которую можно редактировать при помощи специального визуального редактора (Рисунок 3 ):



Рисунок 3

Редактор позволяет добавить произвольное количество страниц (шагов Мастера); а также менять порядок их следования. Каждая страница имеет единственное значимое свойство – Text, которое позволяет определить заголовок страницы.

После определения всех страниц, они появляются в Мастере; и можно добавлять интерактивные элементы управления непосредственно на них. Переход между страницами при этом осуществляется при помощи стандартных навигационных кнопок Мастера.

Для завершения разработки Мастера, остается добавить обработчики основных событий:

  • OnWizardFinished(System.EventArgs e) – событие инициируется при нажатии на кнопку Finish, и позволяет реализовать необходимые действия по завершению его работы (сохранить результаты работы, выполнить какие-то действия, и т.д.)

  • OnWizardCanceled(System.EventArgs e) событие инициируется при нажатии на кнопку Cancel, и позволяет реализовать необходимые действия по аварийному прерыванию его работы (закрыть форму на которой расположен Мастер)

  • OnSelectedIndexChanging(DocsVision.Platform.WinForms.Controls.WizardControl.SelectedIndexChangingEventArgs e) – событие инициируется ДО смены вкладки (при перемещении вперед или назад), и позволяет в случае необходимости воспрепятствовать этому переходу (это может быть полезно для реализации проверки ввода всех необходимых параметров, прежде чем разрешить переход к следующему шагу)

  • OnSelectedIndexChanged(System.EventArgs e) – это событие возникает ПОСЛЕ перехода на новый шаг (вперед или назад), и позволяет выполнить какие-то действия по инциализации элементов управления на новом шаге


1   ...   4   5   6   7   8   9   10   11   ...   35

Похожие:

Пособие для партнёров DocsVision iconУстановка патчей *. msp DocsVision Установить патч можно только на клиентах DocsVision (но не на сервере) Установка патчей библиотек DocsVision
Скопируйте пакет в папку «Директория с установленным DocsVision\Platform 3\Server\Site\Setup». В данной директории можно создать...
Пособие для партнёров DocsVision iconDocsVision 6 sr1: Руководство по установке и настройке
Особенности конфигурации серверного программного обеспечения для установки DocsVision 5
Пособие для партнёров DocsVision iconВы  держите  в  руках  брошюру  для  партнеров  1с,  которая поможет вам повысить продажи. Речь идет не о  продажах вообще, а о возможности более эффективно  предлагать  клиентам  серверные  продукты  Microsoft, 
Приложение Полезные ресурсы для партнеров  26 вы  держите  в  руках  брошюру  для  партнеров  1с, 
Пособие для партнёров DocsVision iconРекомендации по созданию условий для эффективного функционирования стратегических партнерств с участием учреждений профобразования Роль вуза в подготовке кадров для стратегических партнеров и участников кластера
В части подготовки кадров для стратегических партнеров и участников кластера можно выделить две глобальные цели
Пособие для партнёров DocsVision iconНастоящий документ описывает конфигурирование системы DocsVision 5 и дальнейшее ее администрирование, а именно

Пособие для партнёров DocsVision iconУчебное пособие по курсу «Организация эвм, комплексов и сетей» часть I
Пособие предназначено для самостоятельной работы студента над курсом “Организация эвм, комплексов и сетей” по первой части курса...
Пособие для партнёров DocsVision iconПеречень предприятий Южного Федерального округа, которые выпускают продукцию, возможно интересную для иностранных партнеров
Южного Федерального округа, которые выпускают продукцию, возможно интересную для иностранных партнеров
Пособие для партнёров DocsVision iconИнструкция по внедрению  «1С: Университет»  версия 0 12  (для партнеров фирмы «1С»)
Общие сведения    4 
Пособие для партнёров DocsVision iconПособие для воспитателей Кишинев, 2010 czu 373. 2
...
Пособие для партнёров DocsVision iconСпециалист по технологическому развитию партнеров 
Интеллектуальные объединенные коммуникации для бизнеса (Microsoft Exchange и Lync) 
Разместите кнопку на своём сайте:
kak.znate.ru


База данных защищена авторским правом ©kak.znate.ru 2012
обратиться к администрации
KakZnate
Главная страница