Hallo,
die Anforderung stellt sich kurz gesagt so da:
Kunde kann Formular mit max Anzahl Felder + Variablen individualisieren.
Beim Drucken sollen lediglich die verwendeten ‘data slots’ geladen werden(on demand)
Events eignen sich da ja irgendwie besonders gut(need data etc. heisst hier wohl Autodefine…)
so weit so gut.
Laut Beispiel Projekten konnte ich die Ddesign Engine mit den Daten Strukturen(leere Datasets)
zum Laufen bringen, ist ja auch nicht sooo schwer…aber dann
event autodefinevariables wird offenbar nicht bedient
gibt es Alternativen
(ich baute die Variablen Struktur über VariablenCollection.AddFromObject(tres chic))
Haben wir uns hier schon Verlaufen?
das was Sie beschreiben klingt danach, als würde sich ein eigener Datenprovider anbieten. Werfen Sie einmal einen Blick auf das DataProvider Sample, da wird ein eigener CSV-Datenprovider gebaut. Über einen eigenen Enumerator für die Rows können Sie dann beliebig viele (oder wenige) Daten übergeben. Wenn Sie die ICanHandleUsedIdentifiers-Schnittstelle bedienen bekommen Sie auch mit, welche Felder im Design wirklich verwendet wurden.
Der AutoDefineVariable-Event wird nur aufgerufen, wenn es auch tatsächlich Variablen gibt. Um eigene neue hinzuzufügen könnten Sie den AutoDefineNewPage-Event verwenden. Vielleicht ist auch dieser Artikel interessant:
Ansonsten melden Sie sich gerne noch einmal mit genaueren Details .
Moin,
ja vielen Dank für die flotte Hilfe.
Die OnDemand Problematik in Sachen Felder konnte ich mit den ‘Bordmitteln’ lösen:
SetDataBinding um die Feldstruktur zu erstellen
AutoDefineTable liefert irgendwann dann die tatsächlich im Formular verwendeten Tables(fantastisch)
Bei den Variablen funktioiniert das nicht. Diese erzeuge ich über
VariableCollection(LL) [Objekt ist abgeleitet und erzeugt implizit über AddFromObject() variables]
Diese stehen im Designer dann auch zur Verfügung
Das Event AutoDefineVariable wird beim Print aus dem Designer nicht! gefeuert (
Engine Fehler/Falscher Weg Variablen zu erzeugen, bzw. wann sind es so genannte ‘tatsächliche Vaiablen’…
AutoDefineVariable wird nur für die Variablen aufgerufen, die vom DataBinding übergeben werden. Wenn Sie Ihre Variablen “unter der Hand” zusätzlich anmelden läuft das nicht über diesen Event. Hintergrund: im Event können Sie einzelne Variablen unterdrücken, Inhalte verarbeiten etc., das ist für selbst angemeldete Variablen ja in der Regel gar nicht notwendig.
Wenn Sie den Dateinamen des zu druckenden Projektes kennen können Sie über LL.Core.LlGetUsedIdentifiers die verwendeten Variablen abfragen. Wenn Sie den Filedialog anbieten und insofern vor dem Druck nicht wissen, welches Projekt gedruckt wird können Sie einen Handler für das SaveFilename-Event schreiben (wird auch beim Druck ausgelöst) und sich die UsedIdentifiers in diesem Event abholen und ggf. noch zusätzliche Variablen anmelden.