Metainformationen zur Seite

Statistik

Am Vault bzw. den Projektordnern können im Eigenschaften-Dialog im Karteireiter „Statistik“ beliebige Auswertungen definiert werden.

Die Statistik Seite bietet die Möglichkeit verschiedene, vordefinierte Auswertungen aufzulisten und auf Wunsch darzustellen.
Zu einer Auswertung können zusätzliche Filter definiert werden.
Zur Darstellung stehen verschiedene Diagrammtypen zur Verfügung (Kuchendiagramm, Donut, Torus, Pyramide, Linien, Spalten, Balken, …)

Statistikbeschreibung

Eine Auswertung wird administrativ mit Hilfe einer XML Beschreibung vorgegeben.
Die Beschreibungsdateien müssen im Verzeichnis config liegen.
Für die verschiedenen Objekttypen wird jeweils eine separate Beschreibungsdatei verwendet.

Objekt Dateiname
Vault statistics_vault.xml
Ordner statistics_container.xml

Wenn für einen bestimmten Ordnertyp (Projektordner) eine besondere Auswertung erfolgen soll kann dies durch anhängen des Ordnertyp-Namens definiert werden:
statistics_container_<ordnertypname>.xml

Syntax

Syntax Statistikbeschreibung.

<?xml version="1.0" encoding="ISO-8859-1"?>
<speedy>
	<statistics>
		<statistic>
			<name>Summe Dokumentypen</name>
			<description>Summer der einzelnen Dokumentypen</description>
			<colorbar>{255,128,0}</colorbar>
			<chartcategory>3</chartcategory>
			<chartype>1</chartype>
			<showdatalabels>1</showdatalabels>
			<showindexlabel>1</showindexlabel>
			<charttitle>Summe Dokumentypen</charttitle>
			<seriesname>Dokumentypen</seriesname>
			<statement><![CDATA[SELECT CONCAT_WS(' : ',dt.dtype_name,dt.dtype_desc), COUNT(*) FROM dm_document d INNER JOIN dm_doctype dt ON d.doc_dtid=dt.dtype_dtid]]></statement>
			<filters>
				<filter>
					<name>Alle</name>
					<description>Zeigt alle Dokumenttypen an</description>
					<clause><![CDATA[WHERE NOT (dt.dtype_flag & 1) GROUP BY dt.dtype_dtid]]></clause>
				</filter>
			</filters>
		</statistic>
	</statistics>
</speedy>


<statistic>
Knoten Beschreibung
name Name
description Beschreibung
colorbar Farbdefinition (RGB) zur Darstellung in der Auswahlliste der Auswertungen:
chartcategory Diagramm Haupttyp. Die Haupttypen unterscheiden die Gruppe „Kuchendiagramme“ bzw. „Linien-und Balkendiagramme“
chartype Diagramm Untertyp.
showdatalabels Diagrammbeschriftung anzeigen.
showindexlabel Diagramm Legende durchnummerieren und Nummern anzeigen.
charttitle Überschrift über dem Diagramm.
seriesname Bezeichnung der Datenserie.
statement SQL Abfrage welche die Daten für das Diagramm sammelt. Der Aufbau der Abfrage hängt vom Diagramm Haupttyp ab.
filters Liste der Filterkriterien (<filter>)
<filter>
Feld Beschreibung
name Name
description Beschreibung
clause SQL Filterkriterium welches an das SQL Statement angehängt wird.
<chartcategory>
Wert Beschreibung
2 Kuchendiagramm
3 Kuchendiagramm 3D
17 Doughnut
18 Doughnut 3D
19 Torus 3D
4 Pyramide
5 Pyramide 3D
1 Linien
23 Linien 3D
8 Spalten
21 Spalten 3D
9 Balken
22 Balken 3D
11 Fläche
24 Fläche 3D
<chartype>
Wert Beschreibung
0 Default
1 Einfach
2 Stacked
3 Stacked 100%
<statement> bei Kuchendiagrammen

Die SQL Abfrage gibt zwei Datenwerte zurück:

  1. Datenname
  2. kumulierter Datenwert
<statement> bei Linien- und Balkendiagrammen zur Darstellung von Serien

Die SQL Abfrage liefert mindestens 4 Datenwerte zurück:

Feld Beschreibung
category Bezeichnung der X-Achse
series Bezeichnung Werte für die Y-Achse
color Farbe der Wert der Y-Achse
value kumulierter Wert der Serie.

Entsprechend den XML-Regeln sollten die SQL-Statements als CDATA-Abschnitt beschrieben werden:

<statement><![CDATA[ ... ]]</statement> 
<clause><![CDATA[ ... ]]></clause>

Damit ist gewährleistet, dass der XML Parser für diesen Texte keine Auswertung macht. Der Text im CDATA-Abschnitt wird 1:1 eingelesen.

In das SQL-Statement können beliebig Platzhalter mit Objektspezifischen Eigenschaften (siehe auch Objekteigenschaften) platziert werden.
So kann z.B. bei Projektordnerstatistiken auf den Ordnernamen (<ctnr_name>) oder die Ordner-ID (<ctnr_cid>) verwiesen werden:

WITH recursive cte (ctnr_cid) AS (
  SELECT ctnr_cid FROM dm_container WHERE ctnr_name='<ctnr_name>'
  UNION ALL
  SELECT p.ctnr_cid FROM dm_container p
  INNER JOIN cte ON p.ctnr_parent = cte.ctnr_cid
)
SELECT CONCAT_WS(' : ',dt.dtype_name,dt.dtype_desc), COUNT(*) FROM dm_document d 
INNER JOIN dm_doctype dt ON d.doc_dtid=dt.dtype_dtid
INNER JOIN dm_d2c dc ON d.doc_did=dc.d2c_did AND dc.d2c_parent=1