News combit Dev Blog

Export direkt aus der Vorschau

Veröffentlicht: Mittwoch, 15. August 2018 | 2 Kommentar(e)
 
Bisher war es nicht möglich, aus dem Vorschaufenster in alle unsere Exportformate zu exportieren. Der einfache Grund ist, dass wir intern das EMF-Dateiformat verwenden, während die Exporter völlig andere Informationen benötigen, die nicht aus dem EMF extrahiert werden können. So konnten wir nur Bilddateiformate und - natürlich - PDF, das aus EMF-Vektorinformationen erzeugt wird, unterstützen.

In LL20 haben wir die ersten Schritte für dieses Feature gemacht. Die damals präsentierte Lösung funktionierte jedoch nicht ohne eine aktive Datenbankverbindung und war im Stand-Alone Viewer daher nicht aktiviert. Der Wunsch, den Export in alle Formate aus der Vorschau zu ermöglichen, war also immer noch unüberhörbar vorhanden.

In LL24 haben wir nun eine Lösung für diesen Wunsch. Obwohl es immer noch nicht möglich ist, das EMF in eines der anderen unterstützten Exportformate zu konvertieren, verwenden wir einen Multi-Pass-Ansatz, um die erforderlichen Exportergebnisse in die Vorschau einzubetten.

Codeseitig ist das Einbetten von Exportformaten einfach:

LL.Core.LlSetOptionString(LlOptionString.EmbeddedExportFormats, "PDF;XLS;DOCX;XHTML");

Dies löst dann einen Druckvorgang in fünf Durchgängen (Vorschau und vier Exportformate) aus und bettet die gewünschten Exportformate in die Vorschaudatei ein. Um die Vorschaudatei auf einer vernünftigen Größe zu halten, achten wir darauf, die eingebetteten Formate in der Datei zu komprimieren. Prinzipbedingt bestehen bei diesem Feature einige Einschränkungen: Sie können keine Exportoptionen nach dem Drucken ändern, d.h. der eigenständige Viewer unterstützt diese Optionen nicht. Um diese Funktion unterstützen zu können, benötigt List & Label die Unterstützung des Drill-Down-Ereignisses durch Ihre Anwendung. Dies funktioniert natürlich automatisch für unsere DataBinding-Implementierungen, könnte aber ein wenig Arbeit auf Ihrer Seite erfordern, wenn Sie Ihren eigenen Code verwenden, um die Daten an List & Label zu übergeben.

Für den Endanwender ist der Vorgang ganz einfach: Einfach auf das Exportsymbol im Menüband klicken und eines der eingebetteten Formate auswählen:



Einer der nützlichsten Anwendungsfälle dieses Features ist die Einbettung der Rohdaten für den Bericht als reine Excel-Tabelle für die weitere Nachbearbeitung. Dies ist ein typischer Ansatz um das Beste aus beiden Welten zu vereinen. Dafür wäre der erforderliche Code einfach folgender:
LL.ExportOptions.Add(LlExportOption.ExportOnlyTableData, "1");
LL.Core.LlSetOptionString(LlOptionString.EmbeddedExportFormats, "XLS");

Auf diese Weise erhalten Sie sowohl einen schön formatierten Bericht ...

 ... als auch die zugrundeliegenden Rohdaten:



Die Konvertierungs-API unterstützt diese Funktion ebenfalls. Statt die eingebetteten Excel-Daten wie oben gezeigt interaktiv zu extrahieren, ist dies auch per Code möglich:
PreviewFile pf = new PreviewFile(@"c:\Reports\Preview.ll");

pf.ConvertTo(@"c:\Data\data.xlsx");
pf.Close();

Ihre Endanwender werden diese neue Funktion definitiv lieben. Wir unterstützen derzeit XLS, DOCX, MHTML und XHTML als eingebettete Formate. Wenn Sie weitere Formate benötigen, lassen Sie uns  gerne einen Kommentar dazu da.




Autor: Jochen Bartlau
Entwicklungsleiter List & Label

Jochen Bartlau leitet als Geschäftsführer die Softwareentwicklung bei combit. Microsoft .NET und Agiles Projektmanagement sind zwei seiner Steckenpferde. Der technikbegeisterte Physiker verbringt seine Freizeit am liebsten mit seiner Familie.


  


Kommentare


combit - Jochen Bartlau
Hallo Herr Vietense,

vielen Dank für Ihre Frage. Bei der Erzeugung dauert es - durch die Natur des Features - tatsächlich länger, wobei die Vorschau ja bereits während der Erstellung angezeigt wird. Im Beispiel aus dem Post mit insgesamt 5 Formaten wird die erste Seite der Vorschau wie bisher quasi sofort angezeigt. Bei 20% Fortschritt (dann ist die Vorschau selber abgeschlossen) sind alle Seiten verfügbar. Bis der Druck dann wirklich abgeschlossen ist dauert es aber, typischerweise (bei 5 Formaten wie im Beispiel oben) ca. 5x so lange wie ein einzelner Druck.

Bei der Anzeige der fertigen Vorschaudatei im Viewer gibt es keine nennenswerte Latenz.

Viele Grüße,

Jochen Bartlau
20.08.2018 08:14:11

Lars Vietense
Hallo,

Heißt das aber nicht auch, dass die Vorschau länger benötigt , um den Inhalt darzustellen?

Mit freundlichen Grüßen
18.08.2018 06:10:06


Ergänzen Sie hier Ihren Kommentar
 
 
 
 
 

Lassen Sie sich über neue Kommentare zu diesem Blogbeitrag informieren


 
+49 (0) 7531 90 60 10