FORM HANDLER
Работа с ПО, которое реализуют стратегию PLM, связано с созданием/заполнением определенных форм. Например: для поиска нужной информации, используются некоторые фильтра (пользователь выставляет параметры поиска, а затем нажимает "search"). Для реализации этой и многих других процедур, существуют определенные инструменты.
Form Handler - метод создания форм в системе YuniquePLM. Также, с помощью Form Handler можно получать SQL запросы.
Form Handler - класс библиотеки Yunique.Core.UI., по которому строятся все формы в системе. Благодаря этому методу разработчик может быстро создавать конфигурируемые веб-формы по XML схеме.
Создание объекта класса Form Handler:
Using objXmlHandler As New Yunique.Core.UI.FormHandler *создается объект класса Handler
       objXmlHandler.PreferredLanguage = UserProperties.PrefLang *задается язык формы
       objXmlHandler.PageReadOnly = False *должна ли форма быть read only
       objXmlHandler.XmlFolder = strXMLPath *указывается папка, из которой берутся XML файлы
       objXmlHandler.XmlFile = GridSearchSchemaFile *название XML файла
       objXmlHandler.DatabaseConnection = conConnection *выставленное открытое соединение
После этого, с Handler-ом можно работать различными методами (get search controls, get edit controls): черпая информацию об объектах формы из XML схемы.
*Схема-XML файл, с главным тегом "table"; дочерние теги "column" (поля в форме, в теги "colomn" могут быть теги "validator" и "lookup table")).
В теге "table" есть различные атрибуты (ApiSQL, GridReadSQL, FormSQL), после которых следуют запросы. Эти запросы указывают место, откуда Handler извлекает нужную информацию. Так как речь идет о формах, то обратить внимание стоит на FormSQL.

Рассмотрим поле "Description". В схеме задается имя поля в базе данных: Name="Description", а также задается имя, которое должно быть видно на форме: alias="Description". Кроме этого, есть атрибуты "type" и "datatype". В нашем случае: Type= "textbox" (тип ввода); datatype ="string" (тип данных). К основным атрибутам также относятся: "visible", "enabled", "column"и "order".

Некоторые особенности имеют поля с атрибутом Type= "dropdownlist". В этих же полях присутствует атрибут "lookupquery", который содержит запрос, извлекающий некоторые данные для списка. Обязательно указываются атрибуты: "textfield" и "valuefield" - те поля, которые выбирает запрос из источника данных в качестве значений и текста выпадающего списка. В выпадающих списках datatype = "query". Также, в теге "column" с выпадающим списком, содержится тег "LookupTable"- здесь указывается специальный XML-файл, который указывает какие данные извлекать из БД.
Создание форм с помощью Handler:
objXmlHandler.AddPredefinedControlValue("DivisionID", _DivisionID)
objXmlHandler.AddPredefinedControlValue("SeasonYearID", _SeasonYearID)
Dim colFields As New StringCollection colFields.Add("pkiPOMLibraryID|" & "00000000-0000-0000-0000-000000000000")
objXmlHandler.ToSelectFields = colFields
Dim objControlHolder(3) As PlaceHolder
objControlHolder(0) = New PlaceHolder
objControlHolder(1) = New PlaceHolder
objControlHolder(2) = New PlaceHolder
While objXmlHandler.GetSearchControls(Me.Request) intControlColumn = objXmlHandler.ControlColumn - 1 CreateStyleSearchControls(objXmlHandler, objControlHolder(intControlColumn))
End WhileplhSearchControl.Controls.Add(New LiteralControl("
End Using