Manuelles Ausfüllen der Tabelle

Navigation:  Bericht im FR-Designer > Kreuztabellen (Cross-tab Objekt) >

Manuelles Ausfüllen der Tabelle

Previous pageReturn to chapter overviewNext page

Wie wir bereits wissen, gibt es 2 Arten der Kreuztabelle: die Objekte "Datenbank Cross-tab Objekt" und "Cross-tab Objekt" Bis jetzt haben wir nur mit dem ersten Objekt gearbeitet. Dieses wird an die Daten der DB-Tabelle geknüpft und wird beim Start des Reports automatisch mit Daten gefüllt. Betrachten wir nun das zweite Objekt "Cross-tab Objekt".

 

Dieses Objekt ist nicht mit Daten der Datenbank verknüpft. Sie müssen diese selber in die Tabelle eintragen. Das Objekt hat einen ähnlichen Editor, hier wählen Sie aber die Anzahl Zeilen, der Spalten und der Zellen:

 

screenshot - 18.05.2009 , 17_15_14

 

Betrachten wir die Arbeit mit dem Objekt "Cross-tab" am Beispiel. Wir legen auf das Blatt des Reportes das Objekt und stellen die Eigenschaften wie in der folgenden Grafik ein: die Anzahl der Ebenen im Zeilenkopf  1, im Spaltenkopf  2, in Zellen  1. Um die Tabelle mit Daten zu füllen, nutzen wir den Bearbeiter des Ereignisses OnBeforePrint des Objektes:

 

PascalScript:

 

procedure Cross1OnBeforePrint(Sender: TfrxComponent);

begin

with Cross1 do

begin

   AddValue(['Ann'], [2001, 2], [1500]);

   AddValue(['Ann'], [2001, 3], [1600]);

   AddValue(['Ann'], [2002, 1], [1700]);

 

   AddValue(['Ben'], [2002, 1], [2000]);

 

   AddValue(['Den'], [2001, 1], [4000]);

   AddValue(['Den'], [2001, 2], [4100]);

end;

end;

 

C++ Script:

 

void Cross1OnBeforePrint(TfrxComponent Sender)

{

 Cross1.AddValue(["Ann"], [2001, 2], [1500]);

 Cross1.AddValue(["Ann"], [2001, 3], [1600]);

 Cross1.AddValue(["Ann"], [2002, 1], [1700]);

 

 Cross1.AddValue(["Ben"], [2002, 1], [2000]);

 

 Cross1.AddValue(["Den"], [2001, 1], [4000]);

 Cross1.AddValue(["Den"], [2001, 2], [4100]);

}

 

Im Bearbeiter ist es notwendig die benötigten Daten mit Hilfe der Methode TfrxCrossView.AddValue einzufügen. Diese Methode besitzt drei Parameter und jedes ist eine Reihe des Types Variant. Der erste Parameter, ist der Wert der Zeile, der zweite der Wert der Spalte und der dritte stellt den Wert der Zellen dar. Beachten Sie, dass die Anzahl der Werte in jeder Reihe der Einstellungen des Objektes entsprechen muss! In unserem Beispiel besitzt das Objekt eine Ebene im Kopf der Zeilen, zwei Ebenen im Kopf der Spalten und eine Ebene in den Zellen. Entsprechend fügen wir in AddValue einen Wert für die Zeilen, zwei Werte für die Spalten und einen Wert für die Zellen hinzu.

 

Starten wir den Report, sehen wir nun folgendes:

_img206

 

Die Methode AddValue kann man genauso verwenden für das Objekt " Datenbank Cross-tab Objekt". Dadurch kann man in die Kreuztabelle Daten eintragen, die nicht in der verknüpften Datenquelle vorhanden sind. Sind die Daten vorhanden, so werden diese hinzuaddiert.