2012-03-14 33 views
5

私は300以上の行を持つデータテーブルを持っています。 各ページに10行だけを表示したい。 xtrareportを強制的に10行後に分割したいとします。DEVEXPRESS - xtrareport - 改ページ

これはどのように行われますか?

答えて

4

特定の条件で改ページを強制できます。 This pageには下部に例があります。

こんにちはケーリー、

あなたはGroupFooterバンドを追加し、AfterBandにGroupFooter.PageBreakを設定するか、このタスクを達成するために。 、またはXRPageBreakコントロールを配置し、Detail.BeforePrintを処理し、必要に応じてXRPageBreakの可視性を調整します。 処理行を取得するには、XtraReport.GetCurrentRow()メソッドを使用する必要があります。 このソリューションを試してみて、結果をお知らせください。あなたはRepportのマージを作成する必要が

おかげで、
アンドリュー

+1

シンプルでエレガント。ありがとうございました。 – Fares

5

  • 最初の手順は、Repportを作成することです。
  • 次に、10行ごとに2つ目のRepportを作成します。
  • さらに、このRepportをメインRepportに追加します。ここ

例です。

private void printInvoicesButton_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) 
    { 
     int[] selection = this.ordersGridView.GetSelectedRows(); 
     XtraReport reportMerge = new XtraReport(); 
     reportMerge.CreateDocument(); 

     IList<XtraReport> reportList = new List<XtraReport>(); 

     // Create a report. 
     //invoiceReport report = new invoiceReport(); 

     for (int j = 0; j < selection.Length; j++) 
     { 


      XtraReport report = new XtraReport(); 
      string filePath = @"Reports/invoiceReport1.repx"; 
      report.LoadLayout(filePath); 


      InvoiceData invoice = new InvoiceData(); 

      for (int i = 0; i < DataRepository.Orders.Orders.Count; i++) 
      { 
       if (
        ordersGridView.GetRowCellValue(selection[j], "InvoiceCode").Equals(
         DataRepository.Orders.Orders[i].InvoiceCode)) 
       { 
        BindingSource dataSource = new BindingSource(); 

        invoice = InvoiceData.AdaptFrom(DataRepository.Orders.Orders[i], DataRepository.Orders, 
                DataRepository.Products.Products, 
                DataRepository.ProductOptionMaster, 
                DataRepository.ProductOptionDataSet, 
                DataRepository.CustomerShippingAddresses, 
                DataRepository.Customers.UserMaster, 
                DataRepository.AttributesData.Product_Attributes); 

        dataSource.Add(invoice); 

        report.DataSource = dataSource; 
        //report.ShowPreview(); 
        report.CreateDocument(); 

       } 
      } 
      reportList.Add(report); 
     } 

     for(int i=0;i<reportList.Count;i++) 
     { 
      reportMerge.Pages.AddRange(reportList[i].Pages); 
     } 

     // Show the report's preview. 
     reportMerge.ShowPreviewDialog();    

    } 
関連する問題