Как я могу повторно использовать один комплексный набор данных для нескольких таблиц?
В наборе данных есть несколько вычисленных столбцов, о которых необходимо сообщать как в деталях, так и в сводках.Вот очень упрощенный пример набора данных:
is_food sale_association food_type total_sold total_associations percent_total
1 Before Movie Popcorn 50 3 x BirtMath.safeDivide(...)
0 Before Movie Soda 10 2 x BirtMath.safeDivide(...)
1 During Movie Jujubee 10 1 x BirtMath.safeDivide(...)
0 After Movie Soda 15 2 x BirtMath.safeDivide(...)
Из этого одного набора данных я хотел бы создать подробную сводку по всем типам продуктов питания при одновременном сворачивании непродовольственных товаров (используя столбец «is_food»), другой обзорпо всем типам продуктов питания, еще один подробный отчет о продуктах питания со свернутыми непродовольственными товарами по sale_association и т. д. и т. д.рассчитывается (некоторые по строке, другие по всем строкам в данной группе), все из которых могут иметь нулевое значение для знаменателя и поэтому должны быть защищены с помощью safeDivide (который является PITA для выполнения в исходном SQL-запросе, которыйсам выполняет агрегацию - проверка деления на ноль, когда числитель и знаменатель являются суммами, приводит к сложным запросам).
Очевидно, что я могу сделать это, сфокусировав соответствующий запрос SQL (), но похоже,трата времени и усилий на создание 12 или 15 запросов, которые очень похожи, когда мне уже удалосьсоставьте запрос монстра для получения самой подробной таблицы.
То, что не кажется простым, заключается в том, как выполнить свертки в таблице.Мне удалось что-то взломать, спрятав строки, которые впоследствии будут суммированы (например, «is_food == 0» в примере), а затем создав пользовательские привязки данных, которые отображаются в строке нижнего колонтитула.Это не только похоже на взлом, но также мешает естественному упорядочению строк.Опять же, возвращаясь к примеру, если бы я упорядочивал по total_sold и суммировал строки с помощью is_food == 0, естественным порядком должен быть Popcorn, Non-food, Jujubee.
В вики BIRT нет ничего по этому поводуи "BIRT: полевой гид, 3-й E."действительно углубиться в тему.