2012-03-14 12 views
5

Mam datatable z więcej niż 300 wierszy. Chcę, aby każda strona prezentowała tylko 10 wierszy. Chcę wymusić złamanie xtrareport po 10 wierszach.DEVEXPRESS - xtrareport - page break

Każdy pomysł, jak to zrobić?

Odpowiedz

4

Możesz wymusić podział strony w określonych warunkach. This page ma przykład na dole.

Hi Cary,

Aby wykonać to zadanie można dodać zespół GroupFooter i ustawić GroupFooter.PageBreak do AfterBand. lub umieść kontrolkę XRPageBreak, obsłużyć Detail.BeforePrint i dostosować widzialność XRPageBreak według potrzeb. Aby uzyskać wiersz przetwarzania, należy użyć metody XtraReport.GetCurrentRow(). Proszę wypróbować to rozwiązanie i poinformuj nas o wynikach.

Dzięki,
Andrew

+1

Proste i eleganckie. Dziękuję Ci. – Fares

5

trzeba stworzyć łączących Repport.

  • Pierwszym krokiem jest utworzenie głównego raportu.
  • Następnie utwórz drugie powtórzenie co 10 wierszy.
  • I dodaj to drugie powtórzenie w głównym reglecie.

Oto przykład:

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();    

    }