![]() |
![]() |
![]() |
|
Компоновщик настроек и построитель запроса | ☑ | ||
---|---|---|---|---|
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 колонки "Использование", "Поле", "Вид сравнения" и "Значение". Главная проблема заключалась в том, что виды сравнения построителя запроса имеют тип "ВидСравнения", а виды сравнения компоновщика настроек имеют тип "ВидСравненияКомпоновщикаНастроек". Путём написания своей функции сопоставления видов сравнения я передал все отборы, но при этом не все сравнения удаётся сопоставить. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |