Indikatoren

Aus Limbas Wiki

Wechseln zu: Navigation, Suche
Diese Seite enthält Bearbeitungen, die nicht zum Übersetzen freigegeben sind.

<-- zurück zu Admin-Dokumentation / <-- zurück zur Hauptseite


Mit Hilfe von Indikatorregeln lassen einzelne oder mehrere Datensätze einer Tabelle in der Listendarstellung visuell hervorheben. Dazu gibt es die folgenden drei Möglichkeiten, die einzeln oder in Kombination auf einen Datensatz bzw. einer Tabellenzeile angewandt werden können:

  • Hervorhebung eines Datensatzes durch eine abweichende Zeilen-Hintergundfarbe in der Tabellenliste (color)
  • Einblenden eines Hinweis-Textes, wenn der Mauszeiger für kurze Zeit auf einem Datensatz bzw. einer Zeile der Tabellenliste belassen wird (title)
  • Einfügen einer Grafik oder eines Textes vor der Zeile in der Tabellenliste (object)

Indikatoren können für eine Tabelle über die Tabellen-Einstellungen oder für einzelne Gruppen über die Tabellenrechte eingerichtet werden. Dabei überschreibt eine vorhandene Gruppeneinstellung die globale Tabelleneinstellung. Man findet die Indikatorregel jeweils bei der Ampel Indikatoren Abb1.png.

Indikatorregeln müssen in einer PHP-Funktion in der Erweiterungsdatei ./dependent/EXTENSIONS/ext_gtab.inc oder in einer globalen Erweiterungsdatei definiert werden. Falls einer Tabelle zugewiesen, wird die PHP-Funktion für jeden Datensatz einmal durchlaufen.

Indikatorregeln werden auch auf den Kalender übertragen. Somit können Termine mit unterschiedlichen Hintergrundfarben oder eigenen Symbolen ergänzt werden.

PHP-Funktion zur Definition von Indikatorregeln

  • beliebiger Funktionsname
  • folgende Übergabeparameter werden benötigt, um Indikatoren sinnvoll definieren zu können:
  • Tabellen-ID (in der Beispielfunktion: $gtabid)
  • Datensatz-ID der Tabelle (in der Beispielfunktion: $i)
  • Array mit allen Datensätzen der Tabelle (in der Beispielfunktion: $gresult)
  • Return-Wert "false" blendet den Datensatz in der Listendarstellung der Tabelle aus. Bei der Anzahl der gefundenen Datensätze wird dieser trotzdem berücksicht, auch wird er in der Details- sowie Bearbeitungsansicht beim Vor- oder Zurückblättern angezeigt.
  • Zeilen-Hintergrundfarbe verwenden durch Setzen eines RGB-Werts im wie folgt indizierten Datensatz-Array (Variablennamen entsprechend der Beispielfunktion):
$gresult[$gtabid]["indicator"]["color"][$i][1] = $RGB;
  • CSS-Klasse für die Ergebnis-Zeile:
$gresult[$gtabid]["indicator"]["class"][$i] = "my-css-class-to-indicate-something";
  • Hinweis-Text verwenden durch Setzen eines Textes im wie folgt indizierten Datensatz-Array (Variablennamen entsprechend der Beispielfunktion):
$gresult[$gtabid]["indicator"]["title"][$i][1] = $text1;
$gresult[$gtabid]["indicator"]["title"][$i][2] = $text2;
...
Mehrere Texte werden entsprechend der Reihenfolge in der Funktion im Hinweis aneinander gehängt.
  • Grafik oder Text vor der Tabellen-Zeile einfügen durch Setzen eines Textes oder einer Grafik im wie folgt indizierten Datensatz-Array (Variablennamen entsprechend der Beispielfunktion):
$gresult[$gtabid]["indicator"]["object"][$i][2] = $grafik;
$gresult[$gtabid]["indicator"]["object"][$i][6] = $text;
...
Mehrere Texte/Grafiken werden entsprechend der Reihenfolge in der Funktion vor dem eigentlichen Datensatz angezeigt. Um eine übersichtliche Darstellung der Tabelle zu erhalten, muss die Anzahl der Texte/Grafiken für alle Datensätze gleich sein. Ist dies nicht der Fall, kann ein Text mit Leerzeichen hinzugefügt werden. Außerdem muss im wie folgt indizierten globale Array die Anzahl der Texte/Grafiken gesetzt werden:
$filter["indicator"][$gtabid] = $numberOfObjects;


Example: Funktion:
/**
  * use your own function here
  *
  * @param integer $gtabid
  * @param integer $i
  * @param array $gresult
  * @return boolean
  */
 function extIndicatorSample($gtabid,$i,&$gresult){
 	global $filter;
 	
 	$field1 = $gresult[$gtabid][13][$i]; 		# Typ
 	$field2 = $gresult[$gtabid][8][$i]; 		# bezahlt
 	$field3 = $gresult[$gtabid][6][$i];		# Rechnungsdatum
 
 	# 1 first indicator with background color
 	# 2 second indicator with image or Text
 
 	if($filter["indicator_set"][$gtabid]) {
 		$indicator_set = explode("_",$filter["indicator_set"][$gtabid]);
 		$hide = 1;
 	}
 	
 	if($field1 == 'Rechnung'){
 		if(!$field2 AND (local_stamp(1) - get_stamp($field3) > 1814400) AND (local_stamp(1) - get_stamp($field3) < 3024000)){
 			$gresult[$gtabid]["indicator"]["color"][$i][1] = "FFDDDD"; # background color
 			$gresult[$gtabid]["indicator"]["title"][$i][1] = "21 days"; # row title
 			$gresult[$gtabid]["indicator"]["object"][$i][2] = "<IMG SRC=\"pic/ampel/amp_4_2.gif\" OnClick=\"document.form1.filter_indicator.value ='2_1';send_form(1);\" style=\"cursor:pointer;\" BORDER=\"0\" TITLE=\"".$gdesc."\" ALT=\"".$gdesc."\"> "; # image or text
 			if($indicator_set[1] != 2){$hide = 0;}
 		}elseif(!$field2 AND (local_stamp(1) - get_stamp($field3) > 3024000)){
 			$gresult[$gtabid]["indicator"]["color"][$i][1] = "FFAAAA";
 			$gresult[$gtabid]["indicator"]["title"][$i][1] = "35 days";
 			$gresult[$gtabid]["indicator"]["object"][$i][2] = "<IMG SRC=\"pic/ampel/amp_4_3.gif\" OnClick=\"document.form1.filter_indicator.value ='2_2';send_form(1);\" style=\"cursor:pointer;\" BORDER=\"0\" TITLE=\"".$gdesc."\" ALT=\"".$gdesc."\"> ";
 			if($indicator_set[1] != 1){$hide = 0;}
 		}else{
 			$gresult[$gtabid]["indicator"]["object"][$i][2] = " ";
 			$hide = 0;
 		}
 	}
 	
 	$filter["indicator"][$gtabid] = 1; #numbers of indicators without rowcolor
 
 	# if return false dataset will hidden
 	if($hide){return false;}
 	return true;
 }


Initialisiert wird der Indikator über die Gruppen Tabellenrechte. Pro Tabelle kann eine eigene Funktion über das Formularfeld "Indikatorregel" definiert werden.

return extIndicatorSample($gtabid,$i,$gresult);