|
![]() |
#1 |
Участник
|
Я тоже как-то задавался одним вопросом о FormObjectSet. Вот в этой ветке Вопрос по InventJournalTrans_ds.getNext()
Это не ответ на ваш вопрос, но тоже заставляет задуматься |
|
![]() |
#2 |
Участник
|
Класс FormObjectSet, являющийся наследником класса Object, предоставляет базовый функционал для работы с датасоурсами формы. В свою очередь, класс FormDataSource, который является наследником класса FormObjectSet, обладает более широким спектром методов для работы с датасоурсами формы (см. SystemDocumentation), помимо этого класс FormDataSource используется для определения специфики взаимозвязей таблицы датасоурса формы с другими датасоурсами(таблицами), отображаемыми на форме.
Источник: http://msdn.microsoft.com/en-US/library/aa629025.aspx
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 20.09.2010 в 17:58. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от samolalex
![]() Класс FormObjectSet, являющийся наследником класса Object, предоставляет базовый функционал для работы с датасоурсами формы. В свою очередь, класс FormDataSource, который является наследником класса FormObjectSet, обладает более широким спектром методов для работы с датасоурсами формы (см. SystemDocumentation), помимо этого класс FormDataSource используется для определения специфики взаимозвязей таблицы датасоурса формы с другими датасоурсами(таблицами), отображаемыми на форме.
Источник: http://msdn.microsoft.com/en-US/library/aa629025.aspx |
|
![]() |
#4 |
Участник
|
Как я понимаю, применение методов objectSet()и dataSource() позволяет инициализировать объекты соответствующих классов FormObjectSet и FormDataSource согласно стандартам, определенным в Axapta (Best Practices). Конечно, можно инициализировать экземпляр класса FormDataSource при помощи метода objectSet, но это уже будет не столь корректно. Пример из книги Стина Андресена:
X++: formDataSource = lookupFormRun.objectSet(); Метод dataSource: X++: ... FormRun formRun; FormDataSource formDataSource; ; ... // Create the run-time form. formRun = new FormRun(Args); formRun.run(); formRun.detach(); // Return an object for the first data source, // and then display a query form. formdatasource = formRun.dataSource(1); formdatasource.prompt(); ... Таким образом, метод prompt() доступен только для объекта класса Formdatasource: Цитата:
This method has no functionality in the FormObjectSet class. It is overridden by the FormDataSource.prompt method, which activates the standard form used to limit a query range: SysQueryForm.
Метод objectSet: X++: ...
FormRun formRun;
FormObjectSet formObjectSet;
;
...
// Create a run-time form.
formRun = classfactory.formRunClass(args);
formRun.run();
formRun.detach();
formObjectSet = formRun.objectSet(1);
...
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 21.09.2010 в 10:26. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
|
|