Инициализация dataset в окне

Здравствуйте.
Этот вопрос скорее всего уже поднимался.
Заранее извиняюсь, но я быстро не нашел ответ.
Я не понимаю как инициализируется dataset в окне.
Создал окно:

?xml version="1.0" encoding="UTF-8"?>
Service UID="2BC45C2CA0A64DCC87E9154684A8B3B3" USI="X15\Window Templates\SelectRights\wnd_SelectRights" ServiceTypeCode="Window" Caption="wnd_SelectRights" ScriptUSI="wnd_SelectRightsScript" WindowCaption="Права доступа" LEFT="0" Top="0" Width="433" Name="wnd_SelectRights" Type="Window" IsClient="True">EventsDispatcher>Item ObjectID="btnOk" UID="306CE453948C4E82AEECC61E53831CA5">Item MethodName="OnClick" UID="4D8154B77C0F47699512D37B74D4726D" ScriptMethodName="btnOkOnClick">Item>Item>Item ObjectID="wnd_SelectRights" UID="86B49F92814547DEA54A8B63727BF23C">Item MethodName="OnPrepare" UID="2FCA18A3EE7149648A0F7F8EC242CB91" ScriptMethodName="wnd_SelectRightsOnPrepare">Item>Item>Item ObjectID="dlData" UID="7F2353F194244447B783E2B9D357509F">Item MethodName="OnDatasetBeforeOpen" UID="D1547D8D7BE744F5B67CC57B7CB25B38" ScriptMethodName="dlDataOnDatasetBeforeOpen">Item>Item MethodName="OnDatasetAfterOpen" UID="897493D066B34A3890B6A44FFC4FD9E1" ScriptMethodName="dlDataOnDatasetAfterOpen">Item>Item>Item ObjectID="btnCancel" UID="0C648147757C46A99F8A08B331FD10E0">Item MethodName="OnClick" UID="B4C3CFF0D8384106A6701597FDBEE2B2" ScriptMethodName="btnCancelOnClick">Item>Item>EventsDispatcher>NonVisualComponents>Item Name="dlData" UID="DF4C24C5658B4CE1A30769CDC5726C9A" Type="DatasetLink" ServiceUSI="ds_SelectRights">Item>NonVisualComponents>Item Name="fmGrid" UID="007C1648255A48D3B8B57A0BE96F8B00" Type="Frame" Size="0" IsClient="True" OffsetLeft="5" OffsetRight="5">Item Name="grdData" UID="82895AAF32BC4E0B95C7D795A8A6A700" Type="DataTreeGrid" AlignHorizontal="2" AlignVertical="2" DatasetLinkName="dlData" ActiveViewName="gvData" ReportUSI="fr_DataGrid" CanRefresh="False" CanPrint="False" CanExport="False">Item Name="gvData" UID="E65E13FCAA5B44DF9060EF1A5609BA00" Type="DataGridView">Item Name="AdminName" UID="CBC70A1989634580B41751F5EF91FA51" Type="DataGridColumn" DataFieldName="AdminName" Width="136">Item>Item Name="CanRead" UID="FF0A87329622432BA1DE8D2FFFF49770" Type="DataGridColumn" DataFieldName="CanRead" Width="136">Item>Item Name="CanWrite" UID="F3622DC8037C4F99AB19865DF4C169FD" Type="DataGridColumn" DataFieldName="CanWrite" Width="136">Item>Item>Item>Item>Item Name="fmButtons" UID="5C5BD23B228E456B8C23E172FACB6F99" Type="Frame" Size="33" GroupType="3" Direction="0">Item Name="btnOk" UID="FC92D777E36343A1810122C9DC0BE62C" Type="Button" Caption="OK" IsCaptionVisible="False" AlignHorizontal="1">Item>Item Name="btnCancel" UID="3E8CA1E7A57D466197F24B368518F634" Type="Button" Caption="Отмена" IsCaptionVisible="False" AlignHorizontal="1">Item>Item>Service>

Скрипт:
//-----------------------------------------------------------------------------
// wnd_SelectRightsScript
//-----------------------------------------------------------------------------
var SelectRights = new Object();

FUNCTION InitializeSelectRights(Window, SelectRights, DataLinkObject) {
        InitializeDataset(DataLinkObject, Window, SelectRights);
        RETURN SelectRights.Dataset;
}

FUNCTION InitializeDataset(DataLinkObject, Window, SelectRights) {
        IF (!Assigned(DataLinkObject.Dataset)) {
                CheckAttributes(Window, 'DatasetUSI');
                SelectRights.DatasetUSI = GetAttribute(Window, 'DatasetUSI');
                SelectRights.Dataset =
                        Services.GetNewItemByUSI(SelectRights.DatasetUSI);
                DataLinkObject.Dataset = SelectRights.Dataset;
        } else {
                SelectRights.Dataset = DataLinkObject.Dataset;
                SelectRights.DatasetUSI = SelectRights.Dataset.USI;
        }
}

// ----------------------------------------------------------------------------
// Event handlers
// ----------------------------------------------------------------------------


FUNCTION btnOkOnClick(Control) {

}

FUNCTION wnd_SelectRightsOnPrepare(Window) {
        InitializeSelectRights(Window, SelectRights, dlData);
}

FUNCTION btnCancelOnClick(Control) {
        Control.ParentWindow.Close();
}

FUNCTION dlDataOnDatasetAfterOpen(Dataset) {
        Log.WRITE(1, 'Test');
}

FUNCTION dlDataOnDatasetBeforeOpen(Dataset) {
        Log.WRITE(1, 'Test');
}

В скрипте функции как в BaseGridArea
Но dlDataOnDatasetBeforeOpen не отрабатывают. Значит dlData не открывается. Почему?

Нравится

1 комментарий

Немного перефразирую вопрос.
У меня не получается вставить в окно объект Datagrid, если не задан TemplateWindow - wnd_BaseGridArea. Почему?

А задача следующая. Создать окно, где человек галочками отмечает нужные ему опции, колонки опций две. А строками в окне является список существующих групп пользователей. Список опцию нужно передать в скрипт. Как это правильнее сделать?

Показать все комментарии