WPF Flowdocument,SQL Server,Datagrid,Print

时间:2017-01-27 07:19:51

标签: c# sql-server wpf datagrid flowdocument

我真的可以使用你的帮助,我一直在努力解决这个问题。

所以,我正在研究WPF应用程序,我想打印像PDF这样的发票。打印工作完美,我创建了一个FlowDocument,它有三个表格,标题,第二个,详细信息如价格等,第三个是页脚。数据在SQL Server上,我有一个Closed_Orders表,其中包含我想要打印的数据。它们显示在数据网格中(NOT datagridVIEW!)。打印机的工作方式就像在数据网格中选择一行并获取数据(DataRowView row = (DataRowView)Closed_Orders.SelectedItem;)并将其放在flowdocuwment的第二个表中的一行中。每个已关闭的订单都有一个ID,但我有更多的行具有相同的ID,有时只有一个,但可以是五个六或更多。我创建了另一个Print表,如果您选择一个订单,它会将所有具有相同ID的订单放入其他数据网格中。

如果我选择订单并单击“打印”按钮,我的目标是将具有相同ID(打印表中的所有行)的订单放入我的flowdocument的第二个表中。也许我可以遍历网格,但我不知道如何,或者如何从datagrid或Print表的每一行获取数据并将其放入文档中,以及如何创建尽可能多的行像SQL表一样到表?

1 个答案:

答案 0 :(得分:1)

我做到了,它比我想象的容易。我将行数存储在一个int变量中,然后我做了一个while循环,从1到行数,然后我在ROW_NUMBER() OVER(ORDER BY amount) AS num数据库中得到了我需要的值,然后我添加了行:

    int row = i + 2;
    table2.RowGroups.Add(new TableRowGroup());
    table2.RowGroups[0].Rows.Add(new TableRow());
    currentRow = table2.RowGroups[0].Rows[row];
    currentRow.Cells.Add(new TableCell(new Paragraph(new Run((amount+....