2009-03-02 12 views
0

Ich verwende ein WPF FixedDocument mit Datenbindung für einen einfachen Rechnung Bericht. Funktioniert perfekt, wenn es in der Software selbst betrachtet wird.Drucken FixedDocument programmgesteuert

Aber ich möchte eine Reihe von Rechnungen mit einem Klick drucken. Der folgende Code funktioniert perfekt (schnell 'n dreckig, lädt nur eine Rechnung einzeln zu Testzwecken direkt in das Ansichtsmodell), wenn ich den XPS-Writer auswähle, wird bu beim Drucken auf einem echten Drucker nicht korrekt gedruckt. Ich kann nichts von den Daten sehen, die an den Bericht gebunden sind. Alle grafischen Elemente wie Linien sind da, aber keine Daten. (Wenn ich drucke, mit der gleichen Taste, de xps Writer Drucker, sind alle Daten vorhanden, und korrigieren ...)

Irgendwelche Ideen?

private void ExecutePrintCommand(object sender, ExecutedRoutedEventArgs args) 
    { 
     var invs = args.Parameter as IList<object>; 
     using (CompuDataContext db = new CompuDataContext()) 
     { 
      DataLoadOptions dl = new DataLoadOptions(); 
      dl.LoadWith<Invoice>(f => f.Invoicelines); 
      db.LoadOptions = dl; 

      ReportViewer viewer = new ReportViewer(); 
      PrintDialog dlg = new PrintDialog(); 
      if (dlg.ShowDialog() == true) 
      { 
       PrintQueue q = dlg.PrintQueue; 
       foreach (var o in invs) 
       { 

        InvoiceListDisplay inv = o as InvoiceListDisplay; 
        Invoice invoice = db.Invoices.Single(f => f.Id == inv.Id); 

        viewer.DataContext = new InvoicePrintViewModel(invoice); 

        XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(q); 
        xpsdw.Write(viewer.Document); 
       } 
      } 
     } 
    } 

Antwort

1

mmkay, so fand ich die Antwort mich hier :)

This helped me (jemand eine Idee, was die 'Vernunft' hinter ist Bug?)

PS: In einem Flowdocument, erleben i das gleiche Problem und konnte es dort nicht lösen. Irgendwelche Ideen?