|
21.12.2011, 14:22 | #1 |
Участник
|
2 датасорса и одна временная таблица на форме.
Добрый день. AX2009,Axapta3.0
Сегодня познакомился еще с одним сюрпризом от временных таблиц. Если на форме создать 2 датасорса, привязанных к одной и той же временной таблице. Создать на этой форме 2 грида. Один будет привязан к первому датасорсу, второй ко второму. Ну и снизу кнопочку, которая добавит в эту временную таблицу пару записей и сделает executeQuery() обоих датасорсов. В первом гриде мы увидим записи, во втором нет. Как только табличку сделать не временной работают оба грида. Зато с использованием setTmp() на нормальной таблице опять таже хрень. Мне интересно это что?????? Фича такая? Бага? Или "просто так нельзя делать"? Или "не для этого временные таблицы существуют"?
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 21.12.2011 в 14:28. |
|
21.12.2011, 14:34 | #2 |
MCITP
|
Цитата:
Сообщение от Pustik
Добрый день. AX2009,Axapta3.0
Сегодня познакомился еще с одним сюрпризом от временных таблиц. Если на форме создать 2 датасорса, привязанных к одной и той же временной таблице. Создать на этой форме 2 грида. Один будет привязан к первому датасорсу, второй ко второму. Ну и снизу кнопочку, которая добавит в эту временную таблицу пару записей и сделает executeQuery() обоих датасорсов. В первом гриде мы увидим записи, во втором нет. Как только табличку сделать не временной работают оба грида. Зато с использованием setTmp() на нормальной таблице опять таже хрень. Мне интересно это что?????? Фича такая? Бага? Или "просто так нельзя делать"? Или "не для этого временные таблицы существуют"? Или всё-таки проектик вложите? По сути - есть сомнения...
__________________
Zhirenkov Vitaly |
|
21.12.2011, 14:43 | #3 |
Участник
|
Вот проект
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
21.12.2011, 14:41 | #4 |
Участник
|
|
|
21.12.2011, 15:11 | #5 |
Участник
|
Цитата:
X++: _TestTmpTable.Field1 = '111'; _TestTmpTable.Field2 = '111'; _TestTmpTable.insert(); _TestTmpTable.Field1 = '222'; _TestTmpTable.Field2 = '222'; _TestTmpTable.insert(); TestTmpTable.setTmp(); TestTmpTable.setTmpData(_TestTmpTable); TestTmpTable_ds.executeQuery(); // первый датасорс TestTmpTable1_ds.executeQuery(); // второй датасорс
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
21.12.2011, 15:17 | #6 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Pustik (3). |
21.12.2011, 15:24 | #7 |
Участник
|
Опередили , торможу .
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
21.12.2011, 15:19 | #8 |
Участник
|
блин, вот так будет работать
X++: TestTmpTable.setTmpData(_TestTmpTable); TestTmpTable1.setTmpData(_TestTmpTable); Значит созданные 2 датасорса и привязанные к одной временной таблице, это тоже 2 разных экземпляра, так же как и объявленные две переменные на одну и тоже таблицу.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 21.12.2011 в 15:21. |
|
21.12.2011, 15:27 | #9 |
Участник
|
В общем случае имя датасурса (имя переменной) может не совпадать с именем таблицы (именем типа данных). SetTmpData работает не с абстрактной таблицей-типом, а с конкретными экземплярами-переменными.
|
|
21.12.2011, 15:42 | #10 |
Участник
|
У меня была задача в двух гридах отобразить один и тот же пакет данных, только с разными критериями. Весь пакет данных собирается во временную табличку. Я изначально подумал, что указав одну и ту же таблицу в разных датасорсах я ее легко решу, и она у меня заработает так же, как это работает и на обычных таблицах. Без setTmpData не обойтись. А ведь делал такое когда-то . Давно с временными не работал. Все больше на память и кэш налегаем.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
21.12.2011, 14:49 | #11 |
Участник
|
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Group by и временная таблица | 31 | |||
dataSetLookup(), временная таблица и Query | 3 | |||
Временная таблица | 21 | |||
select sum(amount) from временная таблица | 6 | |||
next и временная таблица | 3 |
|