Sofern Sie aber weitere Felder bzw. Variablen benötigen oder Einfluss auf die übergebenen Felder/Variablen nehmen möchten, bieten die Databinding-Komponenten für .NET und Delphi/C++Builder (FireDAC und BDE (Legacy)) diverse Events in denen dies möglich ist.
Wichtiger Hinweis für die VCL-Komponente:
Bei der Verwendung der Events im datengebundenen Modus muss darauf geachtet werden, dass immer das Sender-Objekt als List & Label Referenz-Objekt für weitere Aufrufe verwendet wird.
(1) Felder beeinflussen
Verwenden Sie zum Bearbeiten von Feldern der Datenquelle das Ereignis "AutoDefineField". Für jedes automatisch mittels Datenbindung angelegte Feld wird dieses Ereignis aufgerufen. Über die Eigenschaften Name und Value der Ereignisargumente können Sie den Namen sowie den Inhalt jedes einzelnen Feldes individuell vor der Übergabe an die Druckengine manipulieren. Sie können auch die Übergabe einzelner Felder verhindern, z.B.
.NET:
void LL_AutoDefineField(object sender, AutoDefineElementEventArgs e)
{
if (e.Name == "internal")
e.Suppress = true;
}
Delphi FireDAC:
procedure TForm1.ListLabelAutoDefineField(Sender: TObject;
IsDesignMode: Boolean; var FieldName, FieldContent: string;
var FieldType: Integer; var IsHandled: Boolean);
begin
if Fieldname = 'Customers.CompanyName' then
isHandled := true;
end;
Delphi BDE (Legacy):
procedure TForm1.DBL19_1AutoDefineField(Sender: TObject;
IsDesignMode: Boolean;
var FieldName, FieldContent: string; var FieldType: Integer;
var IsHandled: Boolean);
begin
if FieldName = 'Customers.CompanyName' then
IsHandled:=true;
end;
(2) Zusätzliche Felder anmelden
Innerhalb des “AutoDefineNewLine” Events können Sie in der Fields-Collection mit der Methode “Add” Felder hinzufügen:
.NET
private void LL_AutoDefineNewLine(object sender, AutoDefineNewLineEventArgs e)
{
LL.Fields.Add("MyNewField", "Ein neues Feld");
}
Delphi FireDAC:
procedure TForm1.ListLabelAutoDefineNewLine(Sender: TObject;
IsDesignMode: Boolean);
begin
(Sender As TListLabel28).Core.LlDefineFieldExt('MyNewField','Ein neues Feld');
end;
Delphi BDE (Legacy):
procedure TForm1.DBL19_1AutoDefineNewLine(Sender: TObject;
IsDesignMode: Boolean);
begin
(Sender as TDBL19_).LlDefineField('MyNewField','Ein neues Feld');
end;
(3) Variablen beeinflussen
Das Bearbeiten von Variablen aus der Datenquelle ist analog zu den Feldern mittels des Ereignisses “AutoDefineVariable” möglich.
(4) Zusätzliche Variablen anmelden
Um zusätzliche Variablen zu definieren, sollten Sie das Event “AutoDefineNewPage” verwenden. Auch hier können Sie über die Variables-Collection gehen.
.NET
private void LL_AutoDefineNewPage(object sender, AutoDefineNewPageEventArgs e)
{
LL.Variables.Add("MyNewVar", "Eine neue Variable");
}
Delphi FireDAC:
procedure TForm1.ListLabelAutoDefineNewPage(Sender: TObject;
IsDesignMode: Boolean);
begin
(Sender As TListLabel28).Core.LlDefineVariableExt('MyNewVar','Eine neue Variable');
end;
Delphi BDE (Legacy):
procedure TForm1.DBL19_1AutoDefineNewPage(Sender: TObject;
IsDesignMode: Boolean);
begin
(Sender as TDBL19_).LlDefineVariable('MyNewVar','Eine neue Variable');
end;
Beachten Sie hierbei auch die Eigenschaft “AutoMasterMode”. Mit dieser wird die Art der Datenübergabe für die Methoden “Print” und “Design” im datengebundenen Modus festgelegt. Die Werte wirken sich wie folgt aus:
AsVariables:
Die Masterdaten werden als Variablen, die Detaildaten als Felder angemeldet.
AsFields:
Master- und Detaildaten werden parallel als Felder angemeldet.