Beeinflussung von Feldern / Variablen im datengebundenen Modus

Gilt ab List & Label 10
Beim datengebundenen Modus brauchen Sie sich normalerweise nicht mehr um die Anmeldung von Feldern bzw. Variablen kümmern. Diese werden automatisch der Datenquelle, welche Sie mit der Methode "SetDatabinding()" angeben können, entnommen und an List & Label übergeben.

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.

IDKBTD000649 KBTD000649