13.10.2006, 13:57 | #1 |
Участник
|
Как вызвать изменение Query в DS1 не вызывая метод executeQuery?
В форме источники данных DS1 и DS2 связаны типом связи FormLinkType:elayed.
В RunTime формы выполняем для DS2.linkType(FormLinkType::ExistJoin). Как вызвать изменение Query в DS1 не вызывая метод executeQuery? |
|
13.10.2006, 14:55 | #2 |
Участник
|
А как вы себе это представляете?
В первом случае у вас на сервер идут отдельные селекты по двум разним таблицам Во втором что-то типа этого X++: select * from table1 where exists(select 'x' from table2 where table1.[linkfield] = table2.[linkfield]) Не забывайте, что в FormDataSource хранится результат выборки. PS Не совсем понятно, зачем их вообще связывать в рантайме. Добавьте к первому датасоурсу еще одну таблицу с нужной вам связью
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 13.10.2006 в 14:57. |
|
13.10.2006, 15:17 | #3 |
Участник
|
Полезной информации, к сожалению, не получил...
|
|
13.10.2006, 15:26 | #4 |
Участник
|
Вы опишите, что хотите получить в итоге, может не все условия показали, тогда получите полезную информацию
А ответ на ваш вопрос - нельзя это сделать
__________________
Axapta v.3.0 sp5 kr2 |
|
13.10.2006, 15:29 | #5 |
Участник
|
К сожалению, в данном случае, предложения об альтернативных реализациях будут мало полезны...
Последний раз редактировалось Morpheus; 13.10.2006 в 15:42. |
|
17.10.2006, 10:26 | #6 |
Участник
|
По моему ваш метод изменения линка DS1 и DS2 работать не будет... Задача эта достаточно распространенная при разработке разных фильтров, поэтому посоветую:
- оставляем DS1 (Main) и DS2 (Child) как есть с delayed - в методе Init DS1 добавляем связанную таблицу Child, like dsChild = ds1.addDatasource(tablenum(Child)), сохраняем dsChild на уровне формы - затем меняем JoinType в dsChild в зависимости от условий фильтра - ds1.executeQuery обязательно - там можно и линками управлять Внимание, подобные связки работают нормально когда связанных таблиц не более 3, затем начинаются серьезные глюки в кернеле |
|