![]() |
#1 |
Участник
|
Две темповые таблицы
Коллеги, добрый вечер! Ситуация следующая - есть две реальных таблицы jourHead и jourLine связанные между собой relation по двум полям.
И есть одна форма на который два грида jourHead и jourLine. Дата сорс построенный на основе темповых таблиц - jourHead.setTmp() и jourLine.setTmp(). При отображении формы в первом гриде данные с темповой таблицы, а вот строки грид по relation - данные подтягивает с regular table; X++: formDataSourceCommon.setTmp();
formDataSourceCommon.checkRecord(false);
formDataSourceCommon.setTmpData(common);
formDataSource.executeQuery(); ![]() Заранее благодарю. |
|
![]() |
#2 |
Дмитрий Ерин
|
Попробуйте что-то в этом духе на датасорсе строк:
X++: formDataSource.query().dataSourceNo(1).clearDynalinks(); |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
Никогда не встречал такого поведения. Какая у вас версия системы?
Сможете минимальный тестовый пример создать и проект здесь выложить? |
|
![]() |
#8 |
Участник
|
Цитата:
Есть класс, в нем метод заполнения: X++: inventItemLocation.setTmp(); inventItemLocation.checkRecord(false); //BP Deviation documented inventItemLocationCountingStatus.setTmp(); inventItemLocationCountingStatus.checkRecord(false); ...inventItemLocation.doinsert(); ...inventItemLocationCountingStatus.doInsert() X++: InventItemLocation.setTmp();
InventItemLocation.checkRecord(false);
InventItemLocation.setTmpData(callerEngine.parmInventItemLocation()); X++: InventItemLocationCountingStatus.setTmp();
InventItemLocationCountingStatus.checkRecord(false);
InventItemLocationCountingStatus.setTmpData(callerEngine.parmInventItemLocationCountingStatus()); InMemory temporary tables must be the outer tables when they are joined to a TempDB table or permanent table. |
|
![]() |
#9 |
Участник
|
|
|
![]() |
#10 |
Участник
|
после super();
|
|
![]() |
#11 |
Участник
|
Судя по ошибке система думает что вы пытаетесь соединить постоянную таблицу со временной. Интересно в какой именно момент система проверяет это? Потому что в этот момент вторую (подчиненную) таблицу система считает уже временной, а первую (ведущую) - ещё постоянной. Возможно имеет значение то, в такой последовательности вызываются методы init() датасорсов? Попробуйте вынести код, делающий таблицы временными, в init формы после super().
|
|
|
![]() |
||||
Тема | Ответов | |||
Помогите показать в одном гриде две таблицы | 12 | |||
Две таблицы в одном datasource | 10 | |||
две таблицы в двух разных вирт компаниях | 1 | |||
Один DataSource на две таблицы | 14 | |||
Две таблицы - один grid!? | 3 |
|