2014-02-14 35 views
0

我想知道如何打印从WPF应用程序中的数据库表接收的数据。如何打印库存系统的销售发票

我已经完成了一个晚餐市场的库存系统,但是我无法在没有完成销售发票打印部分的情况下完成此操作。

你能帮我吗?

+0

范围太广阔了要回答这个问题,尝试自己的东西,回来时,你有你的编码有实际问题 – Miller

+0

您如何看待人们在没有提供任何有关您工作的信息的情况下可以为您提供帮助?请给人更多的信息。先试试自己。 –

+0

对于不同的需求和情况,有很多方法可以使您的问题的整体答案可以是中等规模的书。 – mcy

回答

1

您可以使用PrintDialog来打印DocumentPaginator的实例。您可以从FlowDocument这样得到DocumentPaginator

FlowDocument document = ... 
flowDocumentPaginator = ((IDocumentPaginatorSource)document).DocumentPaginator; 

var dialog = new PrintDialog(); 
dialog.PrintDocument(flowDocumentPaginator, "Your description"); 

所以基本上,所有你所要做的就是创建一个FlowDocument并添加Table将其与数据库中的数据。

下面是一些代码,让你开始与FlowDocument

var document = new FlowDocument(); 
document.PagePadding = new Thickness(20, 60, 20, 20); 
document.ColumnGap = 0; 
var table = new Table(); 
table.CellSpacing = 0; 

var quantityColumn = new TableColumn(); 
quantityColumn.Width = new GridLength(80); 
var priceColumn = new TableColumn(); 
priceColumn .Width = new GridLength(80); 
var textColumn = new TableColumn(); 
textColumn.Width = new GridLength(500); 

table.Columns.Add(quantityColumn); 
table.Columns.Add(priceColumn); 
table.Columns.Add(textColumn); 

var rowGroup = new TableRowGroup(); 
table.RowGroups.Add(rowGroup); 

foreach (var item in yourData) 
{ 
    //Add your data 
    var itemRow = new TableRow(); 

    //Assuming your data item has Quantity, Price and Text 
    itemRow.Cells.Add(new TableCell(new Paragraph(new Run(item.Quantity.ToString())))); 
    itemRow.Cells.Add(new TableCell(new Paragraph(new Run(item.Price.ToString())))); 
    itemRow.Cells.Add(new TableCell(new Paragraph(new Run(item.Text)))); 
    //Etc. 
} 

document.Blocks.Add(table);