Показать сообщение отдельно
Старый 10.09.2021, 01:28   #8  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
правильный вопрос: "как обработать все строки, которые может увидеть пользователь на форме, с учётом наложенных на форму фильтров"
Тут кроется какой-то подвох ))
Напрашивается решение - обратиться к датасорсу, к которому привязаны строки и посмотреть у него _ds.queryRun().query() (ну если в явном виде не перебирать все строки текущего датасорса)
Т.е. подразумевается, что есть форма (условно - SalesTable), в ней есть строки (SalesLine), которые подчинены главному датасорсу по Delayed. Я хочу обработать все строки (SalesLine) с учетом пользовательского фильтра. Я делаю кнопку на форме, к ней привязываю тот датасорс, строки которого я хочу обработать, а дальше в коде обращаюсь к _ds.queryRun().query()

Но это все хорошо, если мой датасорс является либо корневым, либо подчиненным по Delayed / Active / Passive - в общем не join
Если же мой датасорс подчинен кому-то по *Join, то получается, что надо обращаться к его родителю (его датасорсу) и уже там искать _ds.queryRun().query()

Т.е. грубо говоря, если на форме SalesTable под строками я подразумеваю не SalesLine, а InventDim, то мне нужно от датасорса InventDim "подняться" до SalesLine и взять его queryRun.query()
__________________
Возможно сделать все. Вопрос времени