18.01.2006, 10:54 | #1 |
Участник
|
setTmpData
В датасорсе формы есть временная таблица,
метод инит таблицы вызывается в ините формы, инит таблицы возвращает курсор этой таблицы... Затем пишу TmpTable.setTmpData(TmpTable::Init()) - и в результате - ничего... Не срабатыывает даже с обычной переменной временной таблицы.. Таблица в ините точно заполнилась - проверил. |
|
18.01.2006, 11:02 | #2 |
Участник
|
Где выполняется TmpTable::Init()?
__________________
Axapta v.3.0 sp5 kr2 |
|
18.01.2006, 11:42 | #3 |
Administrator
|
TmpTable - датасорс?
Если да, то сделайте TmpTable_ds.cursor().setTmpData(TmpTable::Init()) На этой идее можно сделать обозреватель временных таблиц (работать будет естественно только из кода)
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 18.01.2006 в 11:46. |
|
18.01.2006, 12:22 | #4 |
Участник
|
Цитата:
Где выполняется TmpTable::Init()?
|
|
18.01.2006, 12:27 | #5 |
Участник
|
Цитата:
Сообщение от sukhanchik
TmpTable - датасорс?
Если да, то сделайте TmpTable_ds.cursor().setTmpData(TmpTable::Init()) На этой идее можно сделать обозреватель временных таблиц (работать будет естественно только из кода) не помогло .. наверно проблему надо искать где то еще |
|
18.01.2006, 13:16 | #6 |
Участник
|
если делаю таблицу реальной все работает... но этот вариант не подходит
|
|
18.01.2006, 13:37 | #7 |
Administrator
|
вообще - по логике - должно все работать в такой последовательности (поправьте, если неверно понял исходные условия)
Имеем: Форму (к примеру MyForm) с датасорсом TmpTable, который ссылается на табличку TmpTable, объявленную как временная. На таблице TmpTable имеется статический метод Init, заполняющий эту таблицу и возвращающий ссылку на заполненную таблицу. Ссылка гарантированно заполняется (т.е. такой код X++: TmpTable t; ; t = TmpTable::Init(); select firstonly count(recId) from t; print t.recId; pause; Тогда в форме MyForm нужно перекрыть метод init формы (MyForm.init()) и после super() написать: X++: TmpTable_ds.cursor().setTmpData(TmpTable::Init()) Вот так не работает?
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 18.01.2006 в 13:40. |
|
18.01.2006, 13:57 | #8 |
Участник
|
вот так не работает(...
може быть я где то нарушил логику , но по моему все именно так |
|
18.01.2006, 14:06 | #9 |
Administrator
|
Посмотрите пример
__________________
Возможно сделать все. Вопрос времени |
|
18.01.2006, 15:01 | #10 |
Участник
|
спасибо за пример ... сделал такой же аналогичный по своей таблице - работает ...
вот только не работает все равно ... может проблема в том что данная таблица связывается с родительской как и остальные но реальные... |
|
18.01.2006, 15:49 | #11 |
Участник
|
Попробуйте после setTmpData(TmpTable::Init()) написать TmpTable_ds.executeQuery();
|
|
18.01.2006, 17:08 | #12 |
Administrator
|
Цитата:
Сообщение от Bars
может проблема в том что данная таблица связывается с родительской как и остальные но реальные...
В таком случае - могу только пожелать получения успешных результатов, ибо тут результат непредсказуемый.
__________________
Возможно сделать все. Вопрос времени |
|
18.01.2006, 17:20 | #13 |
Участник
|
Если временная таблица связывается с реальной, то заполнять ее лучше на active того датасорса, с которым она связана. При этом в качестве параметра Init нужно передать значение того поля на головной таблице, по которому оно связано с временной, и заполняться будут только те записи временной таблицы, которые относятся к этому значению. При этом, разумеется, joinsourse указывать не нужно. После заполнения временной таблицы вызываем executeQuery. Единственная загвоздка в том, что если Вы помещаете метод, заполняющий ее, на сервер, это подразумевает большие операции, так что будет притормаживать...
|
|
19.01.2006, 07:51 | #14 |
Участник
|
Цитата:
Сообщение от Modus
... если Вы помещаете метод, заполняющий ее, на сервер, это подразумевает большие операции, так что будет притормаживать...
|
|