|
![]() |
#1 |
Участник
|
Не надо менять LinkType - это не работает. Если нужен отключаемый фильтр по дополнительному datasource'у, управляйте "включенностью" соотв. datasource'а в запросе с помощью свойства enabled:
X++: QueryBuildDataSource qbds; ; // ... qbds = InventTable_QR.query().dataSource(tablenum(ItemsCompat)); qbds.enabled(FilterCheckBox.value()); InventTable_DS.research(); |
|
|
За это сообщение автора поблагодарили: NataLee (1), Logger (1), Helm (1), Vlad_ (1). |
![]() |
#2 |
Участник
|
Как вариант для решения можно попытаться пойти по следующему пути:
Убрать из формы ItemsCompat. При открытии формы сохранить Query на InventTable который будет стандартным. При нажатии на checkbox вызвать например класс, в который отправится первоначальный Query. В классе сделаете к dataSource InventTable - adddatasource ItemsCompat и join тот который надо. Измененный Query вернуть в форму, потом InventTable_ds.query( Query ) и ExecuteQuery. Должно сработать. Что бы вернуть обратно, просто сделать InventTable_ds.query( Query ), где Query тот сохраненный при открытии. Однако может появится проблема, если возникнет необходимость отображать поля из таблицы ItemsCompat. Ее можно решить с помощью display методов. а это влечет за собой свои проблемы. |
|
|
За это сообщение автора поблагодарили: NataLee (1). |
![]() |
#3 |
Роман Долгополов (RDOL)
|
вариант плох хотя бы тем, что сбрасывает пользовательские фильтры и сортировки
gl00mie посоветовал абсолютно работоспособный и проверенный годами вариант без побочных эффектов - добавить еще один DS по ItemsCompat (можно сразу в дизайн, можно программно) по exists join и управлять его включением |
|
|
За это сообщение автора поблагодарили: NataLee (1). |
![]() |
#4 |
Участник
|
![]()
Да, всё помогло. Спасибо большое, gl00mie!
Не знал про Enabled, позорище( |
|
![]() |
#5 |
Участник
|
Цитата:
вариант плох хотя бы тем, что сбрасывает пользовательские фильтры и сортировки
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|