我正在使用一个简单的发票报告与数据绑定的WPF FixedDocument。当在软件内部查看时,它的效果非常完美。
但我想一键打印一系列发票。下面的代码非常好用(快速而肮脏,只是为了测试而直接在视图模型中逐个加载发票)当我选择xps writer时,但在打印到真正的打印机时无法正确打印。我看不到任何绑定到报表的数据。所有图形元素都在那里,但是没有数据。(当我使用相同的按钮打印到XPS writer打印机时,所有数据都存在,并且正确...)
有什么想法吗?
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);
}
}
}
}发布于 2009-03-02 07:26:28
https://stackoverflow.com/questions/601496
复制相似问题