|
![]() |
#1 |
Участник
|
Цитата:
![]() Тогда все логично. В рамках одного клиента количество записей в CustTransOpen должно быть существенно меньше, чем количество записей в CustTrans.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#2 |
Участник
|
В поддержку моей теории попробуйте выполнить следующий джоб.
Видно, что если таблица CustTrans непоследняя, и к ней приджойнить другие таблицы, то Аксапта генерирует неправильный запрос. X++: static void Job782(Args _args) { Query query = new Query(); QueryRun queryRun; QueryBuildDatasource qbdsCustTable; QueryBuildDatasource qbdsCustTrans; QueryBuildDatasource qbdsCustTransOpen; QueryBuildDatasource qbdsLedgerTrans; QueryBuildDatasource qbdsLedgerTable; ; //-->правильно работает query = new Query(); qbdsCustTable = query.addDataSource(tableNum(CustTable)); qbdsCustTransOpen = qbdsCustTable.addDataSource(tableNum(CustTransOpen)); qbdsCustTrans = qbdsCustTransOpen.addDataSource(tableNum(CustTrans)); qbdsLedgerTrans = qbdsCustTrans.addDataSource(tableNum(LedgerTrans)); qbdsLedgerTable = qbdsLedgerTrans.addDataSource(tableNum(LedgerTable)); queryRun = new QueryRun(query); info(queryRun.query().dataSourceNo(1).toString()); //<--правильно работает //-->неправильно работает query = new Query(); qbdsCustTable = query.addDataSource(tableNum(CustTable)); qbdsCustTrans = qbdsCustTable.addDataSource(tableNum(CustTrans)); qbdsCustTransOpen = qbdsCustTrans.addDataSource(tableNum(CustTransOpen)); qbdsLedgerTrans = qbdsCustTrans.addDataSource(tableNum(LedgerTrans)); qbdsLedgerTable = qbdsLedgerTrans.addDataSource(tableNum(LedgerTable)); queryRun = new QueryRun(query); info(queryRun.query().dataSourceNo(1).toString()); //<--неправильно работает } Последний раз редактировалось Ace of Database; 10.03.2016 в 15:04. |
|
|
За это сообщение автора поблагодарили: mazzy (2), Ruff (2). |
![]() |
#3 |
Участник
|
Авторы запроса специально оставили удобную "розетку", через которую можно подключать новые таблицы к запросу.
Запросы в Аксапте - это как поезд, в котором таблицы выполняют роль вагонов. Последним ставят самый красивый вагон, чтобы было приятно к нему прицеплять новые вагоны ![]() А таблица CustTransOpen - это аппендикс, к нему мало что подцепишь, и поэтому ее не оставили в самом конце. Последний раз редактировалось Ace of Database; 10.03.2016 в 15:03. |
|
![]() |
#4 |
Участник
|
А если поставить fetchMode(fetchMode::one2one) ?
Последний раз редактировалось mazzy; 10.03.2016 в 15:18. Причина: исправил смайлик |
|
|
За это сообщение автора поблагодарили: Ace of Database (5). |
![]() |
#5 |
Участник
|
One2One правильно работает.
Но на формах вроде бы нельзя в свойствах датасурса изменить FetchMode. На query можно, на формах - нельзя. |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
|
|