|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от alicedr
![]() Я добавляю датасорс в дизайнере, а связь на уровне инита главной таблицы:
X++: [FormDataSourceEventHandler(formDataSourceStr(SalesTable, SalesLine), FormDataSourceEventType::Initialized)] public static void SalesLine_OnInitialized(FormDataSource sender, FormDataSourceEventArgs e) { FormDataSource lines_ds = sender; QueryBuildDataSource qbdsLines = lines_ds.query().dataSourceName('SalesLine'); //qbdsLines.clearLinks(); QueryBuildDataSource qbdsProduct = qbdsLines.addDatasource(tableNum(AttributesView), "AttributesView_code"); QbdsProduct.addLink(fieldNum(SalesLine, itemId),fieldNum(AttributesView, itemId)); QbdsProduct.joinMode(JoinMode::InnerJoin); } Перед тем как их перекрывать вы проверили что они вызываются ? Что вообще должен делать write на view, писать в БД ? Разве форма в super() write вызывет write таблицы\представления? Еще не видно modified метода который бы заполнял курсор view при изменении ItemId, есть такой? |
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
? |
|
![]() |
#3 |
Участник
|
Так вот из-за такой лажи люди читают поперек и уходят с мыслью "АХ неоч, ничо низя сделать, го в PHP" и несут ее гордо по всему форуму.
Насколько я помню по АХ 2012 (каюсь в 7ке не проверял) ни write ни validateWrite на view не вызывается и поля на обязательность не проверяются. Раньше было достаточно добавить новый datasource, на init() добавить связь и на modified поля (скажем itemId) добавить код по поиску записи во view по новому ключу и заполнение курсора через data(). Откуда именно валится "Field 'Product' must be filled in. " ? |
|
![]() |
#4 |
Участник
|
Цитата:
Хотя, как уже говорилось, я не проверяла, вызывается ли write на view из write датасорса, но надежда была, что таки вызывается. Это мандатори поля из InventTable, на котором построен view. |
|
![]() |
#5 |
Участник
|
|
|