24.03.2014, 11:27 | #1 |
Enjoy!
|
[AX2012] Наследование таблиц.
Приветствую.
Немного про наследование таблиц и использование на формах. Например, если Вы создаете DS на базе таблицы, являющейся базовым типом, производные типы автоматически будут развернуты в подузле Derived Data Sources. Этот узел нередактируемый и порождается внутренним фреймворком форм. Производные источники данных сами по себе не имеют свойств или методов, так как все их характеристики унаследованы от базового источника данных. Существует ли способ обращения к Derived DS (DDS) моего источника данных напрямую? Как правильно с этим делом работать? Заранее спасибо. UPD: Существует ли возможность получить DDS моего источника напрямую из FormDataSource? (Например в классе, извлечь из существующего FormDataSource нужный DDS и т. д.). Последний раз редактировалось iCloud; 24.03.2014 в 12:07. Причина: Поправка |
|
24.03.2014, 15:03 | #2 |
Участник
|
тут важно какой релиз Аксапты.
в первых релизах сделали так, что наследуемые таблицы хранились физически отдельными таблицами на SQL в ax2012 R2, R3 сделали так, что наследуемые таблицы логически разные с точки зрения Аксапты, но физически находятся внутри одной таблицы на SQL-сервере |
|
|
За это сообщение автора поблагодарили: iCloud (1). |
24.03.2014, 15:11 | #3 |
Enjoy!
|
Цитата:
Сообщение от mazzy
тут важно какой релиз Аксапты.
в первых релизах сделали так, что наследуемые таблицы хранились физически отдельными таблицами на SQL в ax2012 R2, R3 сделали так, что наследуемые таблицы логически разные с точки зрения Аксапты, но физически находятся внутри одной таблицы на SQL-сервере |
|
25.03.2014, 08:14 | #4 |
Участник
|
Посмотрите
\Forms\EcoResAttribute Например \Forms\EcoResAttribute\Methods\defaultValueSetInvisible X++: if (defaultValueIntEdit.visible() && !(ecoResValue_Default is EcoResIntValue)) { defaultValueIntEdit.visible(false); } EcoResIntValue - таблица на основе EcoResValue. Если надо метод вызвать на EcoResIntValue: X++: EcoResIntValue ecoResIntValue;
if(ecoResValue_Default is EcoResIntValue)
{
ecoResIntValue = ecoResValue_Default as EcoResIntValue;
ecoResIntValue.MyMethod();
}
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: iCloud (3). |
26.03.2014, 15:28 | #5 |
Enjoy!
|
Вот еще до кучи, подсказал Kainix:
X++: transrecord = formDataSource.cursor().getTableInInstanceHierarchy(tableNum(TableName)); //public Common getTableInInstanceHierarchy(TableId tableId) dds_ds = transrecord.dataSource(); |
|
|
За это сообщение автора поблагодарили: Logger (1). |
Теги |
ax2012, ax2012r2, ax2012r3, derived, ds |
|
|