續(xù)補(bǔ)打功能說明_第1頁
續(xù)補(bǔ)打功能說明_第2頁
續(xù)補(bǔ)打功能說明_第3頁
續(xù)補(bǔ)打功能說明_第4頁
續(xù)補(bǔ)打功能說明_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、續(xù)補(bǔ)打功能說明文檔1、 在初始的打印代碼(圖一)處加入【續(xù)補(bǔ)打功能】的代碼。注:續(xù)補(bǔ)打的代碼在危重患者護(hù)理記錄單的打印代碼里面也有。(圖一)2、設(shè)置report tree(圖二)。(圖二)3、 設(shè)置好之后,在打印代碼末處里會自動寫入語句, private void _StartReport(object sender, EventArgs e) 在括號內(nèi)加入語句,符號為分號:this.InitPrintSetting();即:4、保存。實(shí)現(xiàn)打印、續(xù)打、補(bǔ)打。*續(xù)補(bǔ)打的代碼:(解決:高級打印表格式表單存在的問題,即設(shè)置的日期時間之前沒有數(shù)據(jù),在高級打印的時候第一頁會放一條明細(xì)數(shù)據(jù),然后其他的明細(xì)

2、數(shù)據(jù)都在設(shè)置的頁數(shù)打印) #region 續(xù)補(bǔ)打功能 private DataRow _printSetting; /打印設(shè)置數(shù)據(jù); private int _printMode; /打印模式:1完全打印、2續(xù)打、3選擇打印; private string _columnNameDYBZ; /打印標(biāo)志列名稱; private string _columnNameLRRQ; /錄入日期列名稱; private string _pageNumber; /要打印的頁; private List<int> _printPages; /獲取要打印的頁; private DataTable _

3、printAdvanceSetting; /打印高級設(shè)置信息 private int? _startPageNumber; /打印高級設(shè)置中當(dāng)前執(zhí)行的新行開始頁碼; private DataSourceBase _dataSource; /要進(jìn)行分頁處理的數(shù)據(jù)源; private DataTable _dataTable; /要進(jìn)行分頁處理的數(shù)據(jù)源DataTable形式的; private int _pageColumnIndex=1; /頁面數(shù)據(jù)當(dāng)前列,一般情況下頁面都是一列的 private List<PageBase> _isValidatedPage; /是否用要進(jìn)行續(xù)打處

4、理的頁 private int _currentPageNo=0; /當(dāng)前頁序號(不受頁碼重置影響,記錄真實(shí)的頁碼) /數(shù)據(jù)區(qū)域打印前處理 private void DataBandBeforePrint(object sender,EventArgs e) if(this._printMode=2) DataBand dataBand=sender as DataBand; foreach(var item in dataBand.AllObjects) ReportComponentBase element=item as ReportComponentBase; if(element=n

5、ull)continue; var dybz=rowthis._columnNameDYBZ; element.FlagPreviewVisible=dybz=Convert.DBNull?true:!(bool)dybz; if(element.FlagPreviewVisible) var pageNo=this._currentPageNo; /數(shù)據(jù)區(qū)域打印后處理 private void DataBandAfterPrint(object sender,EventArgs e) DataBand dataBand=sender as DataBand; /判斷空閑區(qū)域是否能放下一行,如

6、果不能放下就要開始新頁,考慮到當(dāng)一頁中有多列的情況,該情況下要多列都填充滿后才換頁; if(count>0&&this._pageColumnIndex<count) dataBand.StartNewPage=false; this._pageColumnIndex+; else if(count<2) dataBand.StartNewPage=true; this._pageColumnIndex=1; else dataBand.StartNewPage=false; /處理高級打印設(shè)置中設(shè)置的換行 if(lrrq!=null&&lrr

7、q.Length=16) lrrq=string.Format("0-1-2 3",lrrq.Substring(0,4),lrrq.Substring(4,2),lrrq.Substring(6,2),lrrq.Substring(8,8); DateTime lrrq_d; if(DateTime.TryParse(lrrq,out lrrq_d) /反序從時間大到小,獲取第一個匹配的 dataBand.StartNewPage=true; this._startPageNumber=row"SZYM" as int?; break; /其他區(qū)域處理

8、 private void OtherBandPrint(object sender,EventArgs e) if(sender is PageHeaderBand) this._currentPageNo+; /當(dāng)前頁碼遞增 int? iNewPage; /add by guo20140813高級打印設(shè)置會多打一頁空白頁 /插入空白頁 var page1=(sender as BandBase).Page as ReportPage; for(int i=pageNo;i<this._startPageNumber;i+) var page=new ReportPage(); pag

9、e.Landscape=page1.Landscape; page.PaperHeight=page1.PaperHeight; page.PaperWidth=page1.PaperWidth; page.LeftMargin= page1. LeftMargin; page.RightMargin= page1. RightMargin; page.TopMargin= page1. TopMargin; page.BottomMargin= page1. BottomMargin; page.MirrorMargins= page1. MirrorMargins; page.PrintO

10、nPreviousPage=true; this._currentPageNo+; /當(dāng)前頁碼遞增 iNewPage=this._startPageNumber; /add by guo20140813高級打印設(shè)置會多打一頁空白頁 this._startPageNumber=null; else iNewPage=0; /add by guo20140813高級打印設(shè)置會多打一頁空白頁 switch(this._printMode) case 1: var pageNo=this._currentPageNo; break; case 2: Base band=sender as Base;

11、if(band=null)return; var no=this._currentPageNo; return; DataBand dataBand=item as DataBand; foreach(var o in item.AllObjects) ReportComponentBase element=o as ReportComponentBase; if(element=null)continue; if(row=null)continue; var dybz=rowthis._columnNameDYBZ; element.FlagPreviewVisible=dybz=Conve

12、rt.DBNull?true:!(bool)dybz; break; default: break; /報表標(biāo)題區(qū)處理 private void ReportTitlePrint(object sender,EventArgs e) var lrrq=firstRowthis._columnNameLRRQ as string; if(lrrq!=null&&lrrq.Length=16) lrrq=string.Format("0-1-2 3",lrrq.Substring(0,4),lrrq.Substring(4,2),lrrq.Substring(6

13、,2),lrrq.Substring(8,8); DateTime lrrq_d; if(DateTime.TryParse(lrrq,out lrrq_d) /反序從時間大到小,獲取第一個匹配的 this._startPageNumber=row"SZYM" as int?; break; this.OtherBandPrint(sender,e); /生成報表完成后的處理 private void FinishReport(object sender, EventArgs e) if(this._printMode=3) else int item=this._prin

14、tPagesi; if(sb.Length>0) sb.Append(','); sb.Append(this._printPagesi); /初始化打印設(shè)置信息 private void InitPrintSetting() /獲取打印設(shè)置數(shù)據(jù) var table=item.Data as DataTable; if(table!=null) switch(namesnames.Length-1) case "打印設(shè)置": break; case "打印高級設(shè)置": this._printAdvanceSetting=table;

15、 break; default: break; if(this._printSetting=null)return; /當(dāng)打印設(shè)置信息不存在將直接返回,不做任何處理; this._printMode=Convert.ToInt32(this._printSetting"PrintMode"); /打印模式; this._columnNameDYBZ=this._printSetting"ColumnNameDYBZ" as string; /打印標(biāo)志列名稱; this._columnNameLRRQ=this._printSetting"Col

16、umnNameLRRQ" as string; /錄入日期列名稱; this._pageNumber=this._printSetting"PageNumbers" as string; /要打印的頁; /對選擇打印中傳入的頁碼進(jìn)行處理; this._printPages=new List<int>(); if(this._printMode=3) /只有在補(bǔ)打的情況下才需要考慮傳進(jìn)來的頁碼; if(item.Contains("-") var temp=item.Split('-'); int startValue

17、; int endValue; if(int.TryParse(item,out startValue)&&int.TryParse(item,out endValue) for(int i=startValue;i<=endValue;i+) else int value; if(int.TryParse(item,out value) /獲取指定名稱的數(shù)據(jù)源 var tableName=this._printSetting"TableName" as string; var table=item.Data as DataTable; if(tabl

18、e!=null&&namesnames.Length-1=tableName) this._dataTable=table; break; if(item.Name=tableName) this._dataSource=item; break; /事件綁定 this._isValidatedPage=new List<PageBase>(); foreach(PageBase page in Report.Pages) foreach(var element in page.ChildObjects) if(element is ReportTitleBand) (element as ReportTitleBand).BeforePrint+=new EventHandler(this.ReportTitlePrint); if(element is PageHeaderBand) (element as PageHeaderBand).BeforePrint+=new EventHandler

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論