Показать сообщение отдельно
Старый 16.06.2017, 18:26   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от 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);
    }
Если датасоурс добавлен в дизайнере зачем его еще раз добавлять в коде через qbdsLines.addDatasource ?
Цитата:
Сообщение от alicedr Посмотреть сообщение
Далее в самом вью я перекрываю метод write и validatewrite:
Перед тем как их перекрывать вы проверили что они вызываются ? Что вообще должен делать write на view, писать в БД ? Разве форма в super() write вызывет write таблицы\представления?

Еще не видно modified метода который бы заполнял курсор view при изменении ItemId, есть такой?