Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Zen Reports. Вывод итогов. / 3 сообщений из 3, страница 1 из 1
02.04.2008, 06:52
    #35228693
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zen Reports. Вывод итогов.
Предположим есть запрос:

Код: plaintext
1.
sql="SELECT Pole1, Pole2 FROM table"

Формируем суммы по этим полям:

Код: plaintext
1.
<aggregate name="Name1" field="Pole1" type="SUM"/>
<aggregate name="Name2" field="Pole2" type="SUM"/>

Готовим поле для вывода:
Код: plaintext
<attribute name="fPole1" field="Pole1" />

Выводим поле-итог:

Код: plaintext
1.
2.
<item field="@fPole1">
<summary field="Name1" />
</item>

Далее необходимо в Итогах по столбцу Pole1 поместить следующее:
Итог Name1 / Итог Name 2 (через косую черту) не отображая при этом Pole2

Вопрос: каким образом это можно реализовать?


-----------------------------------------------
А мы тут плюшками балуемся...

Аленочка тм
...
Рейтинг: 0 / 0
02.04.2008, 10:22
    #35229009
AlexKB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zen Reports. Вывод итогов.
По поводу работы с ZenPeports могу посоветовать следующее:

1. в методе %OnBeforeReport() формируете запрос к хранилищу данных (выемка данных по условиям);
2. результат обрабатываете на COS, при этом ISERTOM обработанные данные выкладываете во временную таблицу (подготовка и переработка данных для упрощения работы SQL запроса встроенного в репорт);
3. в самом репорте запрос делаете максимально простым, и чтобы он опирался на временную таблицу (тут остаются только вопросы дизайна);

Таким способом нам приходится решать много хитрых вопросов при построении отчетов.
Скажем транспонирование результирующей таблицы - скорость формирования отчета по сравнению со стандартным SQL-способом удалось повысить раз в 30 (примерно).

Хотя в Вашем конкретном случае это может и не понадобиться, но на всякий случай, возьмите себе на вооружение.
...
Рейтинг: 0 / 0
02.04.2008, 13:51
    #35229817
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zen Reports. Вывод итогов.
я использовал следующую конструкцию
<aggregate name="cityag" type="CUSTOM" class="Class.Aggregate.CountCAT" field="TAG"/>
<group name="STAT1REP">
<element name="pTN" field="TN"/>
</group>

XData ReportDisplay
<group name="TCITY" pagebreak="true" >
<header>
<table orient="row" width="6in" class='city'>
<item field="cityag"><caption value="Итого:"/></item>
</table>
</header>

<table orient="col" group="STAT1REP" class="table4" altcolor="#DFDFFF" >
<item special="number" width=".35in" style="color: darkblue;">
<caption value="№ п/п" />
</item>
<item field="pTN" width="3.0in" style="text-align:left;">
<caption value="Название" style="text-align:center;"/>
</item>
<</table>
<!-- add display definition of the report here. -->
</group>

дополнительно необходимо создать класс:
Class Class.Aggregate.CountCAT Extends %ZEN.Report.CustomAggregate
{
Property Values As array Of %String;

/// метод проверяет каждое значение на предмет его уникальности
/// и создает массив в котором элементы массива - это число найденных "уникальностей"
/// а "ключ" - это сама "уникальность"
Method ProcessValue(pValue As %String) As %Status
{
set count = ..Values.GetAt(pValue)
If count'=0 {
Do ..Values.SetAt((count+1),pValue)
}
Else { Do ..Values.SetAt(1,pValue)
}
Quit $$$OK
}

/// выводит результат, предварительно его преобразовав к тому виду который необходим
Method GetResult() As %String
{
if ..Values.Count()>0 {
Set key = "", res = "", a = ""
While (..Values.GetNext(.key)'="") {
set res = res_$s(res'="":", ",1:"")_key_" - "_..Values.GetAt(.key)
}
}
Quit res
}
}

P.S. результат: "ключ1" - 5, "ключ2" - 3, "ключ3" - 7
и вывод результата вывожу в отдельной итоговой таблице, которая отвечает за группу

Удачи
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Zen Reports. Вывод итогов. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]