|
![]() |
#1 |
Banned
|
Основной принцип который у меня в голове это
в executeQuery менять/добавлять/удалять свой range для queryRun().Query() (то есть динамическое Query на данный момент а не изначальное статическое Query). Понятно что не весь код в executeQuery(), а вызов метода на уровне element скорее всего. Насколько помню это прекрасно сочетается с вручную наложенными фильтрами. Все остальное уже не так важно. Временная таблица хорошая идея, иногда так делал. Но не как стандарт, а когда упрощает решение. К примеру когда список значений range явно безумен. Последний раз редактировалось ax_mct; 23.03.2019 в 20:44. |
|
![]() |
#2 |
Участник
|
Тут может быть проблема что queryRun().Query() будет пустой при первом вызове, т.е. если нужно ставить какие-то значения при открытии, это не будет работать.
|
|
![]() |
#3 |
Участник
|
Цитата:
кроме того, на проектах любят делать кнопки, которые устанавливают query принудительно. Цитата:
другими словами, инжектить содержимое формы Ctrl+F3 в пользовательскую форму? Цитата:
Сообщение от trud
![]() 2. В classDeclaration формы добавляется Range или в твоем случае ссылка на QBDS. На init формы или датасорса инициализация этого Range(с признаком locked)
3. В executeQuery основной таблицы простановка в этот Range значения из полей временной таблицы(ну или в твоем случае дизейблинг датасорса) 4. На modified всех полей временной таблицы стоит executeQuery основной таблицы но имеем стандартные недостатки - фильтры могут содержать значения, не совпадающие с текущим запросом. т.е. фильтры показывают одно, а Ctrl+F3 - другое. Цитата:
добавлено: а что насчет добавления/убирания таблиц в query? см. пример в исходном сообщении я к чему: у меня ощущение, что жутко не хватает класса, который реализовал бы функционал окна Ctrl+F3. может быть есть такой класс? может кто-то уже делал? Последний раз редактировалось mazzy; 24.03.2019 в 10:48. |
|
![]() |
#4 |
Banned
|
Цитата:
в Init() и изменять просто Query, а не this.QueryRun().Query(). element.updateQuery(this.QueryRun() ? this.QueryRun().Query() : this.Query()) Не прямо так конечно но типа этого. По крайней мере мне всегда этого хватало. И с точки зрения как правильно мне кажется что правильней то и нет. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|