Designer um eigene Funktion erweitern
In diesem Thema
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.
using (ListLabel LL = new ListLabel())
{
// Datenquelle definieren/zuweisen
LL.DataSource = CreateDataSet();
// Funktion initialisieren
DesignerFunction RegQuery = new DesignerFunction();
RegQuery.FunctionName = "RegQuery";
RegQuery.GroupName = "Registry";
RegQuery.MinimalParameters = 1;
RegQuery.MaximumParameters = 1;
RegQuery.ResultType = LlParamType.String;
RegQuery.EvaluateFunction += new EvaluateFunctionHandler(RegQuery_EvaluateFunction);
// Funktion hinzufügen
LL.DesignerFunctions.Add(RegQuery);
// Call the designer
LL.Design();
}
// ...
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();
}
Using LL As New ListLabel()
' Datenquelle definieren/zuweisen
LL.DataSource = CreateDataSet()
' Funktion initialisieren
Dim RegQuery As New DesignerFunction()
RegQuery.FunctionName = "RegQuery"
RegQuery.GroupName = "Registry"
RegQuery.MinimalParameters = 1
RegQuery.MaximumParameters = 1
RegQuery.ResultType = LlParamType.[String]
RegQuery.EvaluateFunction += New EvaluateFunctionHandler(RegQuery_EvaluateFunction)
' Funktion hinzufügen
LL.DesignerFunctions.Add(RegQuery)
' Call the designer
LL.Design()
End Using
' ...
Sub RegQuery_EvaluateFunction(sender As Object, e As EvaluateFunctionEventArgs) Handles RegQuery.EvaluateFunction
' Registrierungsschlüssel auslesen
Dim key As RegistryKey
RegistryKey = Registry.CurrentUser.OpenSubKey("Software\combit\")
e.ResultValue = key.GetValue(e.Parameter1.ToString()).ToString()
End Sub