Uwe Habermann Uwe@VandU.eu Venelina Jordanova Venelina@VandU.eu Und das geht natürlich auch:...

Post on 05-Apr-2015

108 views 1 download

transcript

Uwe HabermannUwe@VandU.eu

Venelina JordanovaVenelina@VandU.eu

Und das geht natürlich auch: Berichte

Silverlight Printing API

* Ähnlich Reportbehavior 90 in VFP

* Ganze Seite wird als Bild gedruckt

* Auflösung grundsätzlich 600 dpi

* Seitenbeschreibung in XAML

Silverlight Printing API

* Button aus Toolbox

* Click Ereignishandler hinzufügen

Silverlight Printing API

* Klasse PrintDocument

using System.Windows.Printing;PrintDocument DruckObjekt = new PrintDocument();

DruckObjekt.Print( "mein Druckauftrag");

Silverlight Printing API

DruckObjekt.PrintPage += new System.EventHandler<PrintPageEventArgs>( DruckObjekt_PrintPage);

void DruckObjekt_PrintPage(object sender, PrintPageEventArgs e){ e.PageVisual = this.LayoutRoot;}

Silverlight Printing API

* Druckvorgang muss durch eine Benutzeraktion initiiert werden

* Druckerauswahl wird immer angezeigt* Also immer wie … TO PRINTER PROMPT

* Migration von VFP Berichten möglich

Silverswitch Berichte

* ProductsTemplate.xaml

* Migriert:

* ProductTemplate.xaml

* DataGrid Berichte

FRX mit VFP COM Server

* Druckaufbereitung auf der Server Seite

* FRX Ausführung in VFP COM Server

* Erstellung von PDF Datei* Mit Reportlistener* PDF mit Freeware DLL Libhpdf.dll erstellen

FRX mit VFP COM Server

* PDF Ausgabe auf der Client Seite

* Ausgabe im Textmodus wie Reportbehavior 80 oder als Bild wie Reportbehavior 90 möglich

FRX mit VFP COM Server

* VFP COM Server muss Exe Datei sein

* DLL geht nicht!

FRX mit VFP COM Server

* Registrierung auf Zielrechner* ComPdfCreator.exe /regserver

* Un-Registrierung auf Zielrechner* ComPdfCreator.exe /unregserver

FRX mit VFP COM Server

* Bericht sollte autonom sein* Tabellen in Datenumgebung* Private Datensitzung

FRX mit VFP COM Server

* Funktion liefert PDF Dateinamen zurück

FRX mit VFP COM Server

* Aufruf aus ActionButton

Name="vfxCreatePDFActionButton" ProcedureName= "cexample.createpdf"ProcedureParameter="customers.frx"OperationName= "CreatePDFFromFRX"OperationResultLoaded=

"vfxCreatePDFActionButton_ OperationResultLoaded"

FRX mit VFP COM Server

* URL der Anwendung ermitteln

private void vfxCreatePDFActionButton_OperationResultLoaded (object sender, EventArgs e)

{string applicationUrl = string.Format("{0}/", Application.Current.Host.Source.AbsoluteUri.Replace("/ClientBin/VfxLoader.xap", ""));

FRX mit VFP COM Server

* URL für PDF erstellen

string pdfPageURL = applicationUrl + "UploadedFiles/" +

vfxCreatePDFActionButton.OperationResult.result;

FRX mit VFP COM Server

* PDF in neuem Browser Fenster öffnen

System.Windows.Browser.HtmlPage.Window.Navigate(

new Uri(pdfPageURL, UriKind.RelativeOrAbsolute),"_blank", "toolbar=no, location=no,status=no, menubar=no, resizable=yes");

}

VergleichSilverlight FRX

Grafik X X

Text X

* Silverlight* 600 DPI* Text kann nicht kopiert werden

* FRX* Ausgabe im Textmodus wie Reportbehavior 80

oder als Bild wie Reportbehavior 90 möglich

Fragen?

Vielen Dank undviel Spaß mit Silverlight

wünschenVenelina & Uwe