Hinzufügen von Variablen zusätzlich zu einem DataTable.

Guten Tag,

ich probiere aktuell sowohl als DataSource einen DataTable als auch Variablen/Parameter an den Designer zu übergeben (C#, .Net FrameWork 4.8).

...
dt.TableName = "Direkt";
LL.DataSource = dt;

LL.Variables.Add("Zusatz.AGT_Version", version);
LL.Fields.Add("Zusatz.AGT_Version", version);

LL.Design();

Leider kann ich letztendlich die übergebenen Informationen nicht im Designer auffinden.
Ungern würde ich diese Manuell an den DataTable anhängen, wenn es ja eine Option gibt, sie korrekt zu übergeben.
Könnten Sie mir da helfen und aufzeigen, was ich aktuell missverstehe?

Prinzipiell verwendet List & Label ja das Databinding in .NET und man kann hier verschiedene Datenprovider (DataSets, SQL…) verwenden - Datenquelle übergeben.

Zusätzlich Dateninhalte, die nicht im Databinding enthalten sind, können aber auch definiert werden. Das zeigt dann eigentlich das Beispiel hier:
Zusätzliche Inhalte übergeben

int version = 1;

using (ListLabel LL = new ListLabel())
{  
      .....
      dt.TableName = "Direkt";
      
      LL.DataSource = dt;
      
      LL.Variables.Add("AdditionalData.Version", version);
      
      LL.AutoProjectFile = Path;
      LL.LicensingInfo = License;
      LL.Printerless = true;
      
      LL.Design();

}

So hatte ich es probiert, leider taucht die Variable nirgends in meinem Designer auf.
Run-Time gibt es keine Events o.Ä., es soll einfach nur die version als int mitgegeben werden.

Prinzipiell sieht das Snippet soweit gut aus würde ich aus der Ferne sagen, wenn das DataTable sauber und vollständig vorhanden ist. Daher sollte das so auch funktionieren. Die zusätzliche Variable AdditionalData.Version sollte in der Variablen- und Feldliste (im Standard rechts zu finden im Designer) unter Variablen > AdditionalData > Version zu finden sein.

Mal versucht den Vorgang mit Debwin aufzuzeichnen und dort geschaut ob ein Aufruf mit der API LlDefineVariable… mit der neuen Variable enthalten ist?

Sonst würde mich noch einfallen einmal schnell zu versuchen im mitgelieferten Beispiel “Databinding 2” zu versuchen einfach eine Variable auf die gleiche Art wie hier hinzuzufügen ob es dort prinzipiell funktioniert. Oder einfach ein Support-Case bei combit mit deinem gesamten Sample-Code erstellen, damit sich das die Profis einmal genauer noch anschauen könnten.

Hi Jan,

bitte setze den Printerless-Modus so früh wie möglich - idealerweise direkt nach der Erzeugung des LL-Objekts. Der Hintergrund ist, dass die Aktivierung von Printerless LL-intern diverse Sachen zurücksetzt, da dafür ein neuer LL-Job geöffnet wird. Dann sollte es klappen.

Weitere Infos finden sich hier

Grüße vom Bodensee
Chris

1 Like

Alles klar, das wars.

Vielen Dank