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


 
RSS
combit Dev BlogRSS
combit Entwicklerblog
Hier teilen wir Informationen über die Entwicklung unserer Softwareprodukte. Außerdem: Allgemeines über die Softwareindustrie.
Archiv
November 2018 (2)
Oktober 2018 (4)
September 2018 (4)
August 2018 (2)
Juli 2018 (2)
Juni 2018 (2)
Mai 2018 (1)
April 2018 (1)
März 2018 (1)
Februar 2018 (2)
Januar 2018 (1)
Dezember 2017 (1)
November 2017 (2)
Oktober 2017 (3)
September 2017 (3)
August 2017 (2)
Juli 2017 (2)
Juni 2017 (1)
Mai 2017 (2)
April 2017 (1)
März 2017 (1)
Ältere Blogposts
Einträge aus dem Zeitraum von März 2014 bis Februar 2017 finden Sie in unserem englischsprachigen Blog.
+49 (0) 7531 90 60 10