Table of Contents

Funktion CalculateAggregations

Informationen

  • Kategorien: Kernel | Klassenformeln
  • Version: 12.1.0.1482
  • Veröffentlichungsdatum: Mittwoch, 25. November 2009
  • Entwickler: Götzen
  • Benötigt Datenbankänderung: Nein
  • Betreff: Funktion CalculateAggregations

Beschreibung

Die Funktion CalculateAggregations() in den Klassenformeln, errechnet die Zusammenfassungen bestimmter Attribute z.B. Summe, Durchschnitt, Maximalwert... aus der Ergebnismenge eines übergebenen Filters. Die Zusammenfassungen werden als Aggregatfunktionen direkt an die Datenbank weitergegeben wodurch die Netzwerklast reduziert und Performanceprobleme vermindert werden können.

Beispielcode

ondisplayfunction
{
	if ( IsPageButtonContext() )
	{
		SetFunctionLabel( "Gerätezusammenfassung ermitteln" );
		EnableFunction( 1 );
		ShowFunction( 1 );
	}
}


oncallfunction
{
	var string $filterName;
	var int    $iIndex;
	var string $Attributes[4];
	var string $Functions[4];
	var double $Resultlist[];
	var string $sResult;

	$filterName = GetPath( 3, 6, "System\\Geraet\\Alle_Unter_einem_Gebäude", "flt", 2 );

	$Attributes[0] = "Investment_price";
	$Functions[0] = "SUM";

	$Attributes[1] = "Replacement_cost";
	$Functions[1] = "AVG";

	$Attributes[2] = "Maintenance_limit";
	$Functions[2] = "MAX";

	$Attributes[3] = "ID";
	$Functions[3] = "COUNT";

	if( CalculateAggregations( $filterName, 8 + 16, this, $Attributes, $Functions, $Resultlist ))
	{
		$iIndex = 0;
		while ( $iIndex < 4 )
		{	
			$sResult = $sResult + $Functions[ $iIndex ] + " " + $Attributes[ $iIndex ] + ": " + DoubleToStr( $Resultlist[ $iIndex ], 2, ",", "." ) + "\n";
			$iIndex = $iIndex + 1;
		}

		MessageBox( $sResult );
	}

}