2014-02-14 55 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);