|
Компоновщик настроек и построитель запроса |
☑ |
0
Iakovlev
30.04.15
✎
11:02
|
Перевожу отчет с обычной формы на управляемую.
Для формирования отчета используется построитель отчета, который формирует отчет в соответствии с настройками, задающимися в таблице на форме через этот же построитель.
В управляемой форме для настроек я использую схему компоновки данных и компоновщик настроек, но проблема в том, что изначально (на обычной форме) весь отчет по сути формируется программно через работу с результатом построителя отчета(тип "РезультатЗапроса"), а на управляемых формах ипользовать построитель отчета нельзя.
Попробовав делать это через построитель запроса, я столкнулся с такой проблемой, что не получается передать настройки компоновщика в построитель запроса поскольку не совпадают типы данных.
То есть мне нужно либо как-то передать настройки компоновщика настроек в построитель запроса, либо через формирование отчета через схему компновоки данных получить результат запроса. И я не вижу выхода ни из того, ни из другого
|
|
1
DmitrO
30.04.15
✎
11:16
|
вот от этого
"по сути формируется программно через работу с результатом построителя отчета(тип "РезультатЗапроса")"
надо попробовать избавиться
пусть отчет строится механизмами СКД.
|
|
2
Iakovlev
30.04.15
✎
12:09
|
А каким образом мне тогда получить результат запроса?
|
|
3
Iakovlev
30.04.15
✎
12:14
|
"надо попробовать избавиться
пусть отчет строится механизмами СКД."
Это не представляется возможным сделать, потому что во-первых кода очень много, во-вторых методы этого кода предназначены для типа "КоллекцияКолонокРезультатаЗапроса", который находится в результате запроса. Без этого кода впринципе ничего не формируется
|
|
4
DmitrO
30.04.15
✎
13:05
|
(3)я какраз и имел в виду: принципиально перерефакторить код, чтобы он не работал с результатом запроса вообще
|
|
5
DmitrO
30.04.15
✎
13:06
|
да это много, иногда и результат (отчет) получается в несколько другом виде, но у меня пока везде получалось
|
|
6
Iakovlev
30.04.15
✎
13:15
|
То есть других вариантов в принципе нет?
|
|
7
DmitrO
30.04.15
✎
14:01
|
другие варианты это:
- на основе настроек СКД самому программно формировать настройки построителя;
- реализовать самому настройки построителя в упр. форме (на основе универсальных коллекций);
- настраивать СКД, компоновать до текста запроса, но не выполнять, а забирать запрос и выполнять простым запросом тем самым получать РезультатЗапроса (в данном случае нам построитель уже не нужен, но надо будет как-то расставить значения параметров из отбора).
все варианты в принципе реальны, но объем работ мне кажется сопоставим с переаботкой самого отчета; кроме того, при переработке некоторого блока, обычно он всегда получается лучше и оптимальнее.
|
|
8
Iakovlev
07.05.15
✎
08:11
|
Решил проблему.
Удалось найти способ передать настройки из компоновщика настроек в построитель запроса. В таблице настроек отборов отчета было 4 колонки "Использование", "Поле", "Вид сравнения" и "Значение". Главная проблема заключалась в том, что виды сравнения построителя запроса имеют тип "ВидСравнения", а виды сравнения компоновщика настроек имеют тип "ВидСравненияКомпоновщикаНастроек". Путём написания своей функции сопоставления видов сравнения я передал все отборы, но при этом не все сравнения удаётся сопоставить.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший