Вопрос
Не отображаются записи MemoryDataset в Datagrid
5 декабря 2016 15:22
Есть простая форма, на ней Datagrid. Datalink ссылается на MemoryDataset. При добавлении записи в MemoryDataset, в Datagrid добавляется запись, но не отображаются данные.
function ButtonOnClick(Control) {
dsInvoice = Services.GetNewItemByUSI('ds_Invoice');
ApplyDatasetFilter(dsInvoice, 'CustomerID', '{16409E87-FC22-464D-B73C-F765C206E70D}', true);
var SelectDataWindow = Services.GetNewItemByUSI('wnd_SelectData');
SetAttribute(SelectDataWindow, 'Dataset', dsInvoice);
SetAttribute(SelectDataWindow, 'DisplayFieldNames', 'InvoiceNumber;InvoiceDate');
SetAttribute(SelectDataWindow, 'SearchFieldNames', 'InvoiceNumber;InvoiceDate');
SetAttribute(SelectDataWindow, 'KeyFieldName', 'ID');
SetAttribute(SelectDataWindow, 'SearchFieldName', 'InvoiceNumber');
SetAttribute(SelectDataWindow, 'NotifyObject', Self);
SetAttribute(SelectDataWindow, 'IsReadOnly', true);
SelectDataWindow.Tag = 'SelectedInvoice';
SelectDataWindow.Prepare();
SelectDataWindow.Show();
}
function wnd_WindowOnNotify(ScriptableService, Sender, Message, Data) {
if (Sender.Tag == 'SelectedInvoice') {
InvoiceID = Sender.GetSearchIDValue;
// DatasetLink.Dataset.DisableEvents();
DatasetLink.Dataset.Edit(); // Если здесь Append, то добавляется две строки, но не видно данные.
DatasetLink.Dataset('ID') = InvoiceID;
DatasetLink.Dataset('Name') = GetDatasetFieldValueByID('ds_Invoice', InvoiceID, 'InvoiceNumber');
DatasetLink.Dataset('Data') = GetDatasetFieldValueByID('ds_Invoice', InvoiceID, 'InvoiceDate');
DatasetLink.Dataset.Post();
//DatasetLink.Dataset.EnableEvents();
}
}
function Main() {
wnd = Services.GetNewItemByUSI('wnd_Window');
wnd.Prepare();
wnd.Show();
}
function wnd_WindowOnPrepare(Window) {
DatasetLink.Dataset.Open();
}
dsInvoice = Services.GetNewItemByUSI('ds_Invoice');
ApplyDatasetFilter(dsInvoice, 'CustomerID', '{16409E87-FC22-464D-B73C-F765C206E70D}', true);
var SelectDataWindow = Services.GetNewItemByUSI('wnd_SelectData');
SetAttribute(SelectDataWindow, 'Dataset', dsInvoice);
SetAttribute(SelectDataWindow, 'DisplayFieldNames', 'InvoiceNumber;InvoiceDate');
SetAttribute(SelectDataWindow, 'SearchFieldNames', 'InvoiceNumber;InvoiceDate');
SetAttribute(SelectDataWindow, 'KeyFieldName', 'ID');
SetAttribute(SelectDataWindow, 'SearchFieldName', 'InvoiceNumber');
SetAttribute(SelectDataWindow, 'NotifyObject', Self);
SetAttribute(SelectDataWindow, 'IsReadOnly', true);
SelectDataWindow.Tag = 'SelectedInvoice';
SelectDataWindow.Prepare();
SelectDataWindow.Show();
}
function wnd_WindowOnNotify(ScriptableService, Sender, Message, Data) {
if (Sender.Tag == 'SelectedInvoice') {
InvoiceID = Sender.GetSearchIDValue;
// DatasetLink.Dataset.DisableEvents();
DatasetLink.Dataset.Edit(); // Если здесь Append, то добавляется две строки, но не видно данные.
DatasetLink.Dataset('ID') = InvoiceID;
DatasetLink.Dataset('Name') = GetDatasetFieldValueByID('ds_Invoice', InvoiceID, 'InvoiceNumber');
DatasetLink.Dataset('Data') = GetDatasetFieldValueByID('ds_Invoice', InvoiceID, 'InvoiceDate');
DatasetLink.Dataset.Post();
//DatasetLink.Dataset.EnableEvents();
}
}
function Main() {
wnd = Services.GetNewItemByUSI('wnd_Window');
wnd.Prepare();
wnd.Show();
}
function wnd_WindowOnPrepare(Window) {
DatasetLink.Dataset.Open();
}
Нравится
1 комментарий
5 декабря 2016 15:41
Попробуйте сделать аналогично другой странице с MemoryDataset-ом, например, как в wnd_TableFieldRightGridArea. Из видимых различий, там используются DisableEvents и EnableEvents. Возможно, ещё что-то надо учесть.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать