Hallo Christoph,
wir haben mal Folgendes als Beispiel zusammengestellt:
Für jede Seite wird eine ContentsPrinted
-Variable mit der Liste der Firmennamen gefüllt, die auf dieser Seite gedruckt werden sollen:
Der Code dazu sieht so aus:
List<string> _passedFields = new List<string>();
string _lastCompany = null;
int? _expectedNumberOfRecords = null;
int _actualNumberOfRecords = 0;
using (LL)
{
LL.Variables.Add("ContentsPrinted", "");
LL.AutoDefineField += (s, ea) =>
{
if (!ea.IsDesignMode)
{
if (!_expectedNumberOfRecords.HasValue)
{
_expectedNumberOfRecords = ((s as ListLabel).DataSource as IDataProvider).GetTable(ea.AssociatedTableRow.TableName).Count;
}
if (ea.Name == "Customers.CompanyName")
{
_actualNumberOfRecords++;
if (_lastCompany != null)
{
_passedFields.Add(_lastCompany);
}
string content = ((ea.Value == System.DBNull.Value) ? "(null)" : (string)ea.Value);
_lastCompany = content;
if (_actualNumberOfRecords == _expectedNumberOfRecords)
{
_passedFields.Add(content);
}
}
}
};
LL.DrawObject += (s, ea) =>
{
if (ea.IsBeforePaint == false && ea.ObjectType == LlObjectType.Table)
{
if (ea.ObjFinished.HasValue && ea.ObjFinished.Value)
_passedFields.Add(_lastCompany);
(s as ListLabel).Variables.Add("ContentsPrinted", String.Join(",", _passedFields));
_passedFields.Clear();
}
};
LL.Print();
}
Die Variable kann natürlich auch an ein Barcode-Objekt übergeben werden.
Es geht sicher noch besser , aber ich hoffe dass hilft dir erstmal weiter.