2016-04-21 48 views
0

我想每頁記錄數限制爲20,在我PrintDocumen的打印頁面事件:的WinForms打印多頁文檔

​​

我打電話方法SetInvoiceData(e.Graphics, e)具有下面的代碼通過的BindingSource bsOrderDetail循環:

foreach (DataRowView row in bsOrderDetail) 
      { 
       CurrentRecord++; 

       string FieldValue = row[1].ToString(); 
       g.DrawString(FieldValue, InvSubTitleFont, BlackBrush, xProductID, CurrentY); 
       FieldValue = row[2].ToString(); 
       if (FieldValue.Length > 20) 
        FieldValue = FieldValue.Remove(20, FieldValue.Length - 20); 
       g.DrawString(FieldValue, InvSubTitleFont, BlackBrush, xProductName, CurrentY); 

       FieldValue = row[3].ToString(); 
       g.DrawString(FieldValue, InvSubTitleFont, BlackBrush, xQuantity, CurrentY); 
       FieldValue = row[4].ToString(); 
       g.DrawString(FieldValue, InvSubTitleFont, BlackBrush, xUOM, CurrentY); 
       FieldValue = row[5].ToString(); 
       g.DrawString(FieldValue, InvSubTitleFont, BlackBrush, xUnitPrice, CurrentY); 

       CurrentY = CurrentY + 24; 

       if (CurrentRecord > RecordsPerPage) 
       { 
        CurrentRecord = 1; 
        e.HasMorePages = true; 
       } 
       else 
       { 
        e.HasMorePages = false; 
       } 
      } 

但是,新頁面從不創建,它將記錄繪製到當前頁面的末尾,忽略頁面的底部邊距並停止。當我通過調試器運行它時,我可以看到它調用e.HasMorePages = true;語句,但正如我所說的那樣,沒有新的頁面被添加到文檔中。請指教。

+0

您是否看過[this](http://www.codeproject.com/Tips/733680/Printing-and-Previewing-multiple-pages-in-Csharp)示例? –

+0

剛剛用過這個例子。作品。謝謝。 – superconsultant

回答

1

查看this頁面查看工作示例。