2017-01-27 1 views
0

저는 여러분의 도움을 정말로 사용할 수 있습니다. 저는 잠시 동안이 문제로 어려움을 겪고 있습니다.WPF Flowdocument, SQL Server, Datagrid, Print

그래서 저는 WPF 응용 프로그램을 작성 중이며 PDF와 같은 인보이스를 인쇄하려고합니다. 인쇄가 완벽하게 작동하고 있습니다. 세 가지 테이블, 머리글, 가격 등의 세부 사항이있는 FlowDocument를 만들고 세 번째는 바닥 글입니다. 데이터는 SQL Server에 있으며 인쇄 할 데이터가있는 Closed_Orders 테이블이 있습니다. 이들은 DataGrid에 표시됩니다 (DataGridVIEW가 아닙니다!). 프린터는 DataGrid에서 행을 선택하고 데이터 (DataRowView row = (DataRowView)Closed_Orders.SelectedItem;)를 가져 와서 flowdocument의 두 번째 테이블에 한 행에 넣는 것처럼 작동합니다. 닫힌 각 주문에는 ID가 있지만 동일한 ID (가끔은 하나)가있는 행이 더 많지만 5 ~ 6 개 이상일 수 있습니다. 주문을 선택하면 동일한 ID를 가진 모든 주문을 넣고 다른 DataGrid에 표시되는 다른 인쇄 테이블을 만들었습니다.

내 목표는 주문을 선택하고 인쇄 버튼을 클릭하면 내 flowdocument의 두 번째 테이블에 동일한 ID (인쇄 테이블의 모든 행)를 주문하는 것입니다. 어쩌면 내가 그리드를 통해 루프 수 있지만, 어떻게 또는 어떻게 데이터 그리드 또는 인쇄 테이블의 각 행에서 데이터를 가져올 수 및 문서에 배치 할 수 및 방법도 많은 행을 만들 수 있습니다. 테이블에 SQL 테이블이 있습니까?

답변

0

나는 그것을했는데, 생각보다 쉬웠다. int 변수에 행 수를 저장 한 다음 while 루프를 만들어 행의 수를 1에서 12로 변경하고 데이터베이스에서 필요한 값을 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+....