Україна понад усе! Приєднуйтеся до допомоги!
Вот некоторые примеры динамического создания компонентов в Terrasoft Administrator. Может кому пригодится...
Для того, чтобы создать сервис динамически, Вам необходимо создать скрипт, где прописать следующую функцию:
function CreateServiceInDynamic(ServiceCode, TemplateName, USI) {
var Win = Services.CreateItem(ServiceCode);
Win.TemplateWindowUSI = TemplateName;
Win.USI = USI;
var Code = ExtractUSICodeEx(USI);
Services.SaveItem(Win,1);
var Win2 = Services.GetNewItemByUSI(Code);
Win2.IsDesigning = false;
Win2.Show();
}
var Win = Services.CreateItem(ServiceCode);
Win.TemplateWindowUSI = TemplateName;
Win.USI = USI;
var Code = ExtractUSICodeEx(USI);
Services.SaveItem(Win,1);
var Win2 = Services.GetNewItemByUSI(Code);
Win2.IsDesigning = false;
Win2.Show();
}
function Main() {
var ServiceCode = 'Window';
var TemplateName = 'wnd_BaseDBEdit';
var USI =
'Common\\Workspaces\\Custom\\Structure\\Details\\TestDir\\wnd_Test';
CreateServiceInDynamic(ServiceCode, TemplateName, USI); }
var ServiceCode = 'Window';
var TemplateName = 'wnd_BaseDBEdit';
var USI =
'Common\\Workspaces\\Custom\\Structure\\Details\\TestDir\\wnd_Test';
CreateServiceInDynamic(ServiceCode, TemplateName, USI); }
Для создания сервиса окна Вам необходимо использовать функцию Services.CreateItem и для сохранения данного сервиса Services.SaveItem.
Необходимо указать сервис родительского окна и USI.
Вы можете создать свой контрол, например Lookup, указав для него уникальное имя в рамках данной карточки (окна):
var Component = Window.CreateComponent('LookupControl', 'edtTestLookupControl');
Вы можете создать FrameGroup-и, а далее в них создавать и размещать контролы:
scr_SurveyUtils: function CreateFrame.
var Component = Window.CreateComponent(ComponentType,
FrameName + '_1');
Frame.Add(Component);
Component.AlignHorizontal = alhClient;
var Component = Window.CreateComponent(ComponentType,
FrameName + '_1');
Frame.Add(Component);
Component.AlignHorizontal = alhClient;
Спасибо за пример!
--
www.it-sfera.com.ua
Terrasoft Solution Partner
28 мая 2009 09:52
Тогда уже не CreateServiceInDynamic, а CreateWindowInDynamicи параметр ServiceCode убрать. Потому что если туда передать не 'WIndow', то получим свал.
Вообще если хочется разобраться с созданием окон на лету, можно посмотреть создание окна Интервью.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать