Как мы группируемся в BIRT, не тратя строки и все еще печатая элемент группы в первой строке? - PullRequest
6 голосов
/ 19 марта 2010

При группировании в BIRT мы часто хотим, чтобы значение группировки отображалось в первой строке следующим образом:

Group   User                       Reputation
------  ---------------            ----------
Admins  Bill The Weasel                51,018
        Mark Grovel                   118,101
Users   Pax_my_bags_got_to_go          73,554
        Jon Scoot                  **,***,*** <- overflow
        Clueless                       92,928

Обычный способ добиться этого - выложить группу в конструкторе следующим образом:

        +---------+--------+--------------+
Tbl Hdr | Group   | User   |   Reputation |
        +---------+--------+--------------+
Grp Hdr | [Group] |        |              |
        +---------+--------+--------------+
Grp Dtl |         | [User] | [Reputation] |
        +---------+--------+--------------+
Grp Ftr |         |        |              |
        +---------+--------+--------------+
Tbl Ftr |         |        |              |
        +---------+--------+--------------+

, который, к сожалению, выкладывает данные в точно таким образом, с группированным значением в другой строке:

Group   User                       Reputation
------  ---------------            ----------
Admins
        Bill The Weasel                51,018
        Mark Grovel                   118,101
Users
        Pax_my_bags_got_to_go          73,554
        Jon Scoot                  **,***,*** <- overflow
        Clueless                       92,928

Это особенно болезненно для данных, где много групп только с одним пользователем, поскольку мы используем вдвое больше места, чем необходимо. Если мы переместим элемент данных [Group] вниз на строку Grp Dtl, мы напечатаем его для каждой строки в группе.

Каким образом в BIRT мы объединяем две строки Grp Hdr и первую Grp Dtl?

Ответы [ 3 ]

7 голосов
/ 19 марта 2010

Ответом ниже был оригинальный ответ Mystik, но, как ни старайся, я не смог заставить его работать должным образом (хотя я не пробовал второе предложение, поэтому оно вполне может сработать). Это может быть вызвано тем фактом, что я использую задний уровень BIRT (и, к сожалению, мне не разрешено обновлять, к сожалению, это часть отдельного продукта, который имеет свои собственные циклы выпуска).

Решение, которое я в конечном итоге нашел, состояло в том, чтобы оставить значение данных в строке группировки и выбрать ячейку ( не значение данных), а затем установить элемент управления Drop в Properties, General будет Detail вместо значения по умолчанию None.

При отображении отчета значение данных переносится в строку детализации.

И я редактирую этот ответ, а не добавляю свой собственный, так как я не хочу быть представителем: -)


Попробуйте выполнить следующие действия:

  1. Создайте группу так же, как вы.
  2. Затем перетащите элемент данных группы на одну строку вниз (см. Ниже). На этом этапе вы можете удалить строку заголовка группы, если хотите.
  3. Затем щелкните столбец, в котором находится элемент данных группы.
  4. После выбора перейдите в проводник свойств элемента управления и прокрутите его вниз, выбрав «Дополнительно».
  5. В расширенном списке вы увидите свойство «Подавить дубликаты». Сделайте это для столбца с данными группы, и все будет готово.

              Supress
             Duplicates
            +---------+--------+--------------+
    Tbl Hdr | Group   | User   |   Reputation |
            +---------+--------+--------------+
    Grp Hdr |                                 |  <-delete this row AFTER Group Creation
            +---------+--------+--------------+
    Grp Dtl | [Group] | [User] | [Reputation] |
            +---------+--------+--------------+
    Grp Ftr |         |        |              |
            +---------+--------+--------------+
    Tbl Ftr |         |        |              |
            +---------+--------+--------------+
    
1 голос
/ 04 марта 2011

Предыдущее решение работает хорошо, но мы не нашли очевидного способа скрыть внутренние границы в заголовке группы. Вот решение, которое мы обнаружили:

  1. Копировать элементы из строки сведений в пустые ячейки в строке заголовка.
  2. Инициализировать переменную цикла при событии onCreate

    i=0; // in onCreate property of group header row

  3. Изменение условий на вкладке редактора свойств «Видимость». Проверьте "Скрыть элемент" против условия

    i++ == 0

Итак, окончательный макет будет выглядеть так:

   +---------+--------+--------------+
   | Tbl Hdr | Group  |    User      |
   +---------+--------+--------------+
   | [Group] | [User] | [Reputation] |
   +---------+--------+--------------+
   |         | [User] | [Reputation] | <-- that's the line that hide first element  
   +---------+--------+--------------+
   |         |        |              |
   +---------+--------+--------------+
0 голосов
/ 17 сентября 2014

Выберите ячейку, в которую вводятся или помещаются данные группы, и выберите Удалить> Все вместо Нет в Обозревателе свойств.

Или выберите Drop> Detail для ячеек других ячеек group_data и data_field.

...