Dateiname für den Export als Formel in der Projektdatei bestimmen

Mit Hilfe der Projektparameter (siehe auch ProjectParameter) lassen sich schnell und einfach Informationen in Projekten abspeichern und auch wieder auslesen. Dies müssen nicht nur fest definierte Inhalte sein, sondern könnten sich auch dynamisch anhand der verwendeten Variablen aus der Datenquelle im Rahmen von flexiblen Formeln ergeben.

Um das nun zu demonstrieren könnte man von der Situation ausgehen, dass sich der Dateiname für den Export mit List & Label anhand von Informationen aus der verwendeten Projektdatei und Datenquelle ergeben soll.

Schritt 1:
Zunächst muss für List & Label ein entsprechender ProjectParameter erstellt werden:

ProjectParameter myProjectParameter = LL.ProjectParameters.NewParameter("ExportFileName");

myProjectParameter.Category = LlProjectParameterCategory.User;
myProjectParameter.Scope = LlProjectParameterScope.Global;
myProjectParameter.Visibility = LlProjectParameterVisibility.Public;
myProjectParameter.ParameterType = LlProjectParameterType.Formula;
myProjectParameter.Value = "";

LL.ProjectParameters.Add(myProjectParameter);

Im Designer steht dann der neue Projektparameter zur Verfügung und kann entsprechend mit einer Formel belegt werden:
grafik

Schritt 2:
Damit nun aber für den späteren Export auch der evaluierte Inhalt des Projektparameters “ExportFileName” verwendet wird, muss dieser zu einem geeigenten Zeitpunkt ermittelt werden und als Export-Option Verwendung finden. Dafür eignet sich der Event DefinePrintOptions.

Event definieren und Druck/Export auslösen:

LL.DefinePrintOptions += LL_DefinePrintOptions;
LL.Print();

Implementierung des Events mit dem aufgelösten Projektparameter:

private void LL_DefinePrintOptions(object sender, EventArgs e)
{
    string val = myParam.EvaluatedValue;
    if (!string.IsNullOrEmpty(val))
    {
        ListLabel currentLL = sender as ListLabel;
        currentLL.ExportOptions.Add(LlExportOption.ExportFile, val);
    }
}

Und so würde das dann für den Anwender aussehen:

Aber natürlich kann dies auch automatisiert mit Hilfe der ExportConfiguration-Klasse umgesetzt werden.

Siehe auch:
Projektdatei als Allzweckspeicher - Projektparameter
Export ohne Benutzerinteraktion mit OCX / VCL und .NET