Einzelne PDF's aus Rechnungslauf erstellen

Folgend sehen Sie die Voraussetzungen damit man dieses Event sinnvoll nutzen kann.
1)
Die Muttertabelle (sagen wir mal die Tabelle Orders), muss als DataMember gesetzt sein hier über

LL.SetDataBinding(_commandSetDataProvider, “Orders”);

Die Daten der Muttertabelle müssen als Variablen gesetzt werden->

LL.AutoMasterMode = LlAutoMasterMode.AsVariables;

Durchlauf

-Der Export wird gestartet (über ExportConfiguration) ->LlExportTarget muss “Preview sein”
-Event QueryFileNameForExportJob wird gefeuert und der Name für das gesplittete File wird gesetzt.
-Nach dem Export, Konvertieren der Vorschaudateien ins PDF Format. (den Pfad zu den Vorschaudateien definieren Sie in der ExportConfiguration Klasse), z.B.

ExportConfiguration expConfig = new ExportConfiguration(LlExportTarget.Preview, @“c:\temp\pdfSplit\test.ll”, “invoices.lst”);
expConfig.ShowResult = false;
expConfig.ExportOptions.Add(LlExportOption.ExportQuiet, “1”);

Wenn Sie sich fragen, wieso man hier nicht gleich ins PDF Exportiert, dieser Event und das splitten der Dateien, funktioniert nur für das Preview Format, daher das spätere manuelle Konvertieren.

Kleiner Tipp, wenn Sie irgend ein Feld aus der Tabelle für den Dateinamen verwenden möchten, dann müssten Sie sich diesen im Event AutoDefineVariable immer wegspeichern, z.B. (Quick&Dirty)

Zwei Variablen in Ihrer Form/Klasse erstellen:

int counterFileName = 0;
string OrderID; //wir nehmen mal die Bestellungs Nr.

Im AutoDefineVariable folgendes:

private void LL_AutoDefineVariable(object sender, AutoDefineElementEventArgs e)
{
//auslesen der aktuellen Order ID und als Dateinamen verwenden, nur beim Druck.
if (!e.IsDesignMode)
if (e.Name == “Orders.OrderID”)
OrderID = e.Value.ToString();
}

Im LL_QueryFileNameForExportJob Event folgendes:

void LL_QueryFileNameForExportJob(object sender, QueryFileNameForExportJobEventArgs e)
{
++counterFileName;
//Anstatt der 11041 den Wert aus dem ersten Datensatz auslesen und eintragen.
//für die erste Datei muss man sich den ersten Datensatz auf dem man steht selber holen, /
//da hier im Event das File schon da ist und die OrderID nicht mehr eingefügt werden kann.
string newFileName = string.Format(“file{0}.pdf”, counterFileName ==1 ? “11041” :
OrderID);
string dir = System.IO.Path.GetDirectoryName(e.FileName);
e.FileName = System.IO.Path.Combine(dir, newFileName);
}