Das folgende Beispiel zeigt, wie eine Funktion hinzugefügt werden kann, die es ermöglicht, den Wert eines Registrierungsschlüssels innerhalb eines Berichts abzufragen. Das Ergebnis der Funktion könnte dann z. B. in Darstellungsbedingungen für Objekte verwendet werden. Natürlich können die Eigenschaften der DesignerFunction-Klasse alternativ auch direkt im Eigenschaften-Fenster der Entwicklungsumgebung angelegt werden.
ListLabel LL = new
ListLabel();
LL.DataSource = CreateDataSet();
// Funktion initialisieren
DesignerFunction RegQuery = new DesignerFunction();
RegQuery.FunctionName = "RegQuery";
RegQuery.GroupName = "Registrierung";
RegQuery.MinimalParameters = 1;
RegQuery.MaximumParameters = 1;
RegQuery.ResultType = LlParamType.String;
RegQuery.EvaluateFunction += new EvaluateFunctionHandler(RegQuery_EvaluateFunction);
// Funktion hinzufügen
LL.DesignerFunctions.Add(RegQuery);
LL.Design();
LL.Dispose();
…
void RegQuery_EvaluateFunction(object sender, EvaluateFunctionEventArgs e)
{
// Registrierungsschlüssel auslesen
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\combit\");
e.ResultValue = key.GetValue(e.Parameter1.ToString()).ToString();
}