|
27.02.2014, 09:00 | #1 |
Участник
|
Использование args().record() в форме с временным DataSource
Добрый день!
Имеется форма, в которой выбирается строка в гриде, который подвязан к таблице Table1. Выбранная строка передается в другую форму через args().record(); Внутри этой самой другой формы имеется датасорс DataSource1, который также подвязан к таблице Table1. Этот датасорс делается временным в коде init-метода формы. DataSource1 выводится в грид. Вопрос: как мне правильно вывести в этот грид переданную запись? Кода пока нету... |
|
27.02.2014, 09:23 | #2 |
Участник
|
Если к примеру, args().record() не использовать, а передавать в форму просто айдишник, а внутри потом запись по нему доставать, то все работает. Запись в датасорс добавляется таким кодом
X++: //Работает когда без record
DataSource1.data(table1Record);
DataSource1.insert();
DataSource1_ds.executeQuery(); |
|
27.02.2014, 10:32 | #3 |
Участник
|
А так не работает?
X++: DataSource1.data( args().record() ); DataSource1.insert(); DataSource1_ds.executeQuery(); X++: if (args() && args().record() && args().record().TableId == DataSource1.TableId) { DataSource1.data( args().record() ); DataSource1.insert(); DataSource1_ds.executeQuery(); } else { } |
|
27.02.2014, 10:42 | #4 |
Участник
|
Может DataSource1.setTmpData() подойдёт? Или следует произвести копирование этой записи в новый источник данных второй формы?
Последний раз редактировалось Cardagant; 27.02.2014 в 10:57. |
|
27.02.2014, 10:50 | #5 |
Участник
|
все перепробовал уже. тут нужно наверно в корне по-другому делать. Либо это вообще невозможно, хотя я сомневаюсь
|
|
27.02.2014, 10:56 | #6 |
Участник
|
Цитата:
Она не передает системные поля... X++: if (args() && args().record() && args().record().TableId == DataSource1.TableId) { buf2buf(args().record(), DataSource1); DataSource1.insert(); DataSource1_ds.executeQuery(); } else |
|
27.02.2014, 11:25 | #7 |
Участник
|
А в args().record() точно передается нужная запись? И RecId и TableId там верные?
|
|
27.02.2014, 11:26 | #8 |
Участник
|
|
|
27.02.2014, 11:56 | #9 |
Участник
|
Странно все это. Точно без record работает?
А так сработает? X++: select table1Record where table1Record.RecId == args().record().RecId; //Работает когда без record DataSource1.data(table1Record); DataSource1.insert(); DataSource1_ds.executeQuery(); |
|
27.02.2014, 12:09 | #10 |
Участник
|
Цитата:
точно без рекорд идет. проверил еще раз. |
|
27.02.2014, 11:58 | #11 |
Участник
|
Vasiliusis, а может все таки просто Grid не привязали к DataSource1 ?
Последний раз редактировалось _AV_; 27.02.2014 в 12:00. |
|
27.02.2014, 12:09 | #12 |
Участник
|
|
|
27.02.2014, 12:13 | #13 |
Участник
|
Товарищи, хочу добавить, что даже если я не использую args().record() в вызываемой форме, но при вызове этой самой формы я его задаю - все равно не срабатывает! видимо при вызове args().record() запускается _что_то_, что ломает всю комедию
|
|
27.02.2014, 12:27 | #14 |
Участник
|
Кстати, а вы dynalinks почистить пробовали?
|
|
|
За это сообщение автора поблагодарили: Мартынов Дмитрий (2), Vasiliusis (1). |
27.02.2014, 12:30 | #15 |
Участник
|
|
|
27.02.2014, 12:35 | #16 |
Участник
|
|
|