Frage

Ein Neuling Frage, die ich keine Antwort auf.

finden konnte,

habe ich einen Bericht eine Tabelle hält mehrere Elemente enthält, die eine Spalte „Zeit“ haben. Ich würde die Einzelteile durch Zeit zu einer Gruppe wie so, dass alle Elemente des gleichen Monats werden in Gruppen zusammengefasst werden.

Um dies zu tun, ich habe den Monat / Jahr aus dem „Time“ String zu extrahieren (Format ist „17.22 19/07/09“) und verwenden, die für die Gruppierung. Ich weiß, wie all dies in Java zu tun und ich BIRT bietet verschiedene Möglichkeiten denken, dies zu tun, aber ich konnte es nicht schaffen einen einfachen Weg zu finden, dies zu tun.

Wenn es ein gutes Tutorial auf diese ist würde ich liebe es, zu überprüfen.

Danke !!

War es hilfreich?

Lösung

Wir haben es geschafft wie folgt. In unserer SQL-Abfrage für den Datensatz, wählen wir beide (zum Beispiel) "char(my_date,iso)" und "left(char(date,iso),7)" (für 2009-01-05 und 2009-01 respectively), so etwas wie:

select
    left(char(my_date,iso),7) as isoyyyymm,
    char(my_date,iso) as isodate,
    otherfield as value
from tbl
order by my_date

Wenn Sie dann Ihre Tabelle im Bericht erstellen, Spalte 1 soll die Gruppierungsspalte sein, basierend auf isoyyyymm und leer aus für diese Spalte in der Tabelle:

  • die Überschrift
  • die Gruppe Datenleitung; und
  • die Detaildatenleitung.

So werden Sie am Ende, in dem Designer:

+--------------------------------+-----------+-----------------+
| <Header row>                   | Date      | Value           |
+--------------------------------+-----------+-----------------+
| <Group header row (isoyyyymm)> |           |                 |
+--------------------------------+-----------+-----------------+
| <Detail row>                   | [isodate] | [value]         |
+--------------------------------+-----------+-----------------+
| <Group footer row (isoyyyymm)> |           | Total.sum(      |
|                                |           |   row["value"], |
|                                |           |   null,         |
|                                |           |  "Grp1")        |
+--------------------------------+-----------+-----------------+

Der Bericht Tabelle wird noch Gruppe auf dem Monat, aber die angezeigten Detaillinien werden alle die volle Datum enthalten:

Date         Value
----------   -----

2009-01-01       7
2009-01-08       2
2009-01-15       1
2009-01-22       4
             -----
                14

2009-02-05       2
2009-02-12       0
2009-02-19       0
2009-02-26       1
             -----
                 5

Sie können Gruppe auf Intervalle, wenn Sie es auf diese Weise tun wollen, aber wir haben für die einfachste Lösung für solche Situationen entschieden, wo wir einfache Strings verwenden können. Selbstverständlich, wenn Ihr Intervall eine Woche (oder etwas anderes nicht zugänglich einfache String-Analyse) ist, müssen Sie das Intervall verwenden, um in BIRT gebaut Gruppierung.

Die beste Anleitung für das (meiner Meinung nach), ist auf Seite 187 (in Kapitel 12) von BIRT, A Field Guide in die Berichterstellung . Das, und Integration und Erweiterung BIRT Must-Haves für jeden ernsthaften BIRT Benutzer sind .

Dies ist das erste absolut lebenswichtig für jeden Report-Designer. Die zweite Abdeckung viel fortgeschrittenere Themen wie Embedded Java und Javascript, Report-Objektmodell und die zugrunde liegende Architektur von BIRT. Dies ist erforderlich, wenn Sie Ihre Berichte wirklich spektakulär.

Andere Tipps

Ist die Berichtsparameter hier Bit, die Datetime-Parsing-Hilfe enthalten Sie?

http://www.eclipse.org/birt/phoenix /deploy/viewerUsage.php#parameters

Ich habe eine Probe Bericht über den BIRT Exchange-DevShare, die genau dieses Ding tut. Sie liefern sie einen regulären Ausdruck (als einfach oder komplex, wie Sie benötigen), und es wird das Spiel der RegEx Gruppen erstellen verwenden.

http://www.birt-exchange.org/devshare/designing-birt-reports/746-create-a-dynamic-group-by-extracting-a-substring/#description

Good Luck!

Dies kann mit der Gruppeneinstellung in der Tabelle selbst durchgeführt werden. Wie Gruppen zu erstellen, ist in http://www.eclipse.org /birt/phoenix/tutorial/basic/basic06.php (btw., die Suche nach 'birt Tabellengruppe' in Google dies als ersten Treffer gices). In diesem Fall wird man es so tun können:

  • Rechtsklick auf den Zeilenkopf für die Zustand Gruppenkopf und ein Kontextmenü wird angezeigt.
  • Wählen Sie im Kontextmenü wählen Sie Einfügen Gruppe → Unten. Der Konzern Dialog Details erscheint.
  • Wählen Sie die Spalte „Zeit“ in der Gruppe Auf Feld und gibt Zeit im Namen Feld.
  • Wählen Sie ‚Monat‘ im Intervall Combobox
  • Klicken Sie auf OK.

Dies erzeugt eine gruppierte Tabelle ohne SQL oder JS geigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top