2017-01-27 2 views
0

Я действительно могу использовать вашу помощь, я боролся с этим некоторое время.WPF Flowdocument, SQL Server, Datagrid, Print

Итак, я работаю над приложением WPF, и я хочу распечатать счет-фактуру, например PDF. Печать работает отлично, я создал FlowDocument, который имеет три таблицы, заголовок, второй с деталями, такими как цена и т. Д., А третий - нижний колонтитул. Данные находятся на SQL Server, и у меня есть таблица Closed_Orders, в которой есть данные, которые я хотел бы распечатать. Они отображаются в datagrid (NOT datagridVIEW!). Принтер работает так, как вы выбираете строку в datagrid, и получает данные (DataRowView row = (DataRowView)Closed_Orders.SelectedItem;) и помещает их в одну строку во вторую таблицу flowdocuwment. Каждый закрытый порядок имеет идентификатор, но у меня больше строк с одинаковым идентификатором, иногда только один, но может быть пять или шесть. Я сделал еще одну таблицу печати, где, если вы выберете заказ, он помещает все заказы с одинаковым идентификатором, и они отображаются в другом файле данных.

Моя цель - разместить заказы с одинаковым идентификатором (все строки из таблицы печати) во второй таблице моего документа, если я выберу заказ и нажмите кнопку «Печать». Возможно, я мог бы прокручивать сетку, но я не знаю, как, или как я могу получить данные из каждой строки таблицы данных или таблицы печати, и поместить ее в документ, а также как создать столько строк, сколько таблица как таблица SQL?

ответ

0

Я сделал это, это было легче, чем я думал. Я сохранил числа строк в переменной 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+.... 
Смежные вопросы