DEV報表基礎教程(二)


    嗯,最近客戶需求變動,單據明細數量要超過一頁。致使如今單據不符合需求(PS:這就是不參考之前成品的後果),還好,我想起來怎麼改了,如今寫出來,省的忘了。c#

 

之前的單據樣式(只能單頁,還要寫代碼補空行。。。。。。)ide

wKiom1SQIbeR7wb5AAKm10khF7w347.jpg

注:紅框裏的ReportHeader和ReportFooter在一張單據只會出現一次,而ReportFooter回緊貼Detail以後this

而後,若是超過每頁的設定高度是,就成這樣了spa

第一頁設計

wKiom1SQIcqh_cO9AAIBlPXivG8809.jpg

第二頁3d

wKiom1SQIcriQ3VgAAIXqQemcM4799.jpg

第三頁orm

wKioL1SQImrhq2hAAAE8zCB-jKM639.jpg





 

徹底不能用啊。。。。。。blog

 

因此改造開始get

注:若是想要自定義紙張大小,記得把報表的PaperKind的值選爲Custom,而後PageHeight和PageWidth就能夠修改了,單位是像素。it

wKiom1SQIhzS58xJAAAzUQIJilw039.jpg

首先,點擊左上角添加DataSourse

wKiom1SQIhLBO0qOAAE1TU3mnNo529.jpg

設計頁面添加指定的報代表細

wKioL1SQIvzBi9jBAAEIiVS8aSg092.jpg


添加Table並綁定你想要的顯示的明細數據(注意要綁定的是主表下的明細表字段)

wKiom1SQIr3hkinUAAJrMKPBkPI178.jpg

在最上方和最下方拉出一個空白區域wKioL1SQItGiVCN3AAIzv3wFfBo553.jpg


注意:最下方的是獨立空白,和Detail沒有任何關係,紅色單箭頭是表示分界線

而後在上方和下方添加lable而後綁定想要顯示的數據

(這樣就不須要用代碼補空行了,表頭和表尾在每頁都是固定位置)

wKiom1SQIm_DySD0AAI4VYYO7JA065.jpg

注意:右上角的XRPageInfo的RunningBand設爲DetailReport

這樣這個頁數就會以該主表記錄下明細所佔的頁數爲分母

wKioL1SQIxzRKiHvAAEygtO-qlU841.jpg

 

 

 

 

 

 

 

在報表的後臺添加以下代碼

 public XtraReport1()
       {
           InitializeComponent();
           //所有清空
           this.dataSetForReport1.Clear();
           //綁定MasterTable
           DataBindMaster();
           //綁定DataBindClidren
           DataBindClidren();
       }
 
       #region DataBindMaster
       private void DataBindMaster()
       {
           //清空MasterTable
           this.dataSetForReport1.MasterTable.Clear();
 
           DataTable dt = new DataTable();
           dt.Columns.Add("ID");
            dt.Columns.Add("Name");
           dt.Columns.Add("Password");
 
           //循環添加數據
           for (int i = 0; i < 5; i++)
           {
                DataRow dr = dt.NewRow();
                dr["ID"] = i;
                dr["Name"] = i.ToString();
                dr["Password"] ="YDNZ14111200810";
                dt.Rows.Add(dr);
           }
 
           //映射數據源
           this.dataSetForReport1.MasterTable.Merge(dt);
       }
       #endregion
 
       #region DataBindClidren
       private void DataBindClidren()
       {
           //清空DataBindClidren
           this.dataSetForReport1.ClidrenTable.Clear();
 
           DataTable dt = new DataTable();
           dt.Columns.Add("ID");
           dt.Columns.Add("ClidrenID");
           dt.Columns.Add("Comment");
 
           //循環添加數據
           for (int i = 0; i < 5; i++)
           {
                for (int j = 0; j < 55; j++)
                {
                    DataRow dr = dt.NewRow();
                    dr["ID"] = i;
                    dr["ClidrenID"] =j.ToString();
                    dr["Comment"] ="Comment " + j.ToString();
                    dt.Rows.Add(dr);
                }
           }
 
           //映射數據源
           this.dataSetForReport1.ClidrenTable.Merge(dt);
 
       }
       #endregion

 

      

而後運行一下


wKioL1SQI5qTvK07AAH9i9Rq2bQ874.jpg

wKiom1SQIvqRLf3lAAEvrPbtPlw210.jpg


總共5條主表記錄,275條明細記錄,

每頁最多顯示13條明細,總共25頁

相關文章
相關標籤/搜索