亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? misprinter.cs

?? C#實現簡單報表打印 進銷存真正源代碼
?? CS
?? 第 1 頁 / 共 2 頁
字號:
using System;
using System.Drawing;
using System.Drawing.Printing;

namespace GoldPrinter
{
	/// <summary>
	///	本程序為通用打印程序,單據、會計憑證、發票清單、報表、任意復雜表格、合并表格如工礦企業合同都可以由系統提供的幾個默
	///	認打印對象組合打印。
	///	DataGrid、DataTable、MSHFlexGrid等二維形式全部可以打印。
	///	部分對象如PrinterMargins、Sewing、GridLineFlag、GridMergeFlag等提供圖例,以促進理解。
	///	后期版本將提供XML描述、SQL數據源的打印,并用管理器管理任意多個網格、文本對象、圖象等,用戶可以隨意定義。
	/// 
	/// 程序提供:周方勇;Email:flygoldfish@sina.com。
	/// 請 關 注:WebMIS.Net快速開發工具,不寫一行程序開發B/S架構下MIS、OA、CRM、人事管理、檔案管理等數據庫網頁系統。簡單、實用、穩定、可靠。
	/// 下    載:
	///			 上海奧聯:WWW.AlinkSoft.COM
	///			 用友華表:WWW.CellSoft.CC
	///★★★★★您可以免費使用此程序,但是請您保留此說明,以維護知識產權★★★★★
	/// </summary>
	public class MisPrinter:IDisposable
	{
		public Color BackColor = Color.White;//背景顏色

		//繪圖表面
		private Graphics mGraphics;	
		//打印文檔
		private PrintDocument mPrintDocument;
		//下一對象的起點坐標及寬
		private float X,Y,Width;

		//翻頁用
		private int mCurrentPageIndex;		//當前頁
		private int mCurrentRowIndex;		//主數據網格的當前行
		private int mCurrentRowIndexForFooter;	//Footer當前行

		//字段
		private int _rowsPerPage;			//每頁行數,小于等于0自適應,默認

		private bool _isSewingLine;			//是否打印裝訂線(默認無)
		private bool _isPrinterMargins;		//是否打印有效區域矩陣(默認無)
		private bool _isSubTotalPerPage;	//是否每頁都要顯示主數據網格當前頁小計(默認否)
		private string _subTotalCol;		//每頁小計要指定的列
		
		private Sewing _sewing;				//裝訂,對象的線長小于0則自動設置
		private GridBorderFlag _gridBorder;	//網格邊框

		#region 字段屬性
		/// <summary>
		/// 每頁行數,小于等于0自適應,默認
		/// </summary>
		public int RowsPerPage
		{
			get
			{
				return _rowsPerPage;
			}
			set
			{
				int mint = value;
				if (mint < 0)
				{
					mint = -1; 
				}
				_rowsPerPage = mint;
			}
		}

		/// <summary>
		/// 是否打印裝訂線,對象的線長小于0則自動設置
		/// </summary>
		public bool IsSewingLine
		{
			get
			{
				return _isSewingLine;
			}
			set
			{
				_isSewingLine = value;
			}
		}

		/// <summary>
		/// 是否打印有效區域矩陣
		/// </summary>
		public bool IsPrinterMargins
		{
			get
			{
				return _isPrinterMargins;
			}
			set
			{
				_isPrinterMargins = value;
			}
		}

		/// <summary>
		/// 是否每頁都要顯示當前頁小計(默認否)
		/// </summary>
		public bool IsSubTotalPerPage
		{
			get
			{
				return _isSubTotalPerPage;
			}
			set
			{
				_isSubTotalPerPage = value;
			}
		}

		/// <summary>
		/// 用分號分隔的要每頁小計列
		/// </summary>
		public string SubTotalCol
		{
			get
			{
				return _subTotalCol;
			}
			set
			{
				_subTotalCol = value;
			}
		}

		/// <summary>
		/// 裝訂對象,對象的線長小于0則自動設置
		/// </summary>
		public Sewing Sewing
		{
			get
			{
				return this._sewing;
			}
			set
			{
				if (value != null)
				{
					this._sewing = value;
				}
				else
				{
					this._sewing.Margin = 0;		//寬度為0則不打印
				}
			}
		}

		/// <summary>
		/// 網格邊框
		/// </summary>
		public GridBorderFlag GridBorder
		{
			get
			{
				return this._gridBorder;
			}
			set
			{
				this._gridBorder = value;
			}
		}

		#endregion

		//********************打印對象********************	
		private Title _title;				//主標題
		private Caption _caption;			//副標題
		private Top _top;					//簡單的一行三列打印樣式,第一列居左,第三列居右,中間列居中
		private Header _header;				//正文網格主體之上的幾行幾列的標注說明
		
		private MultiHeader _multiHeader;	//正文網格主體標題頭可能需要多層合并表頭說明
		private Body _body;					//*正文網格主體,必須,打印以此為基準
		protected Footer _footer;			//正文網格主體之下的幾行幾列的標注說明
		private Bottom _bottom;				//簡單的一行三列打印樣式,第一列居左,第三列居右,中間列居中

		#region 打印對象字段屬性

		#region Title、Caption
		/// <summary>
		/// 獲取或設置打印主標題,可以是文本,也可以是定義更多特性的Title對象
		/// </summary>
		public object Title
		{
			get
			{
				return this._title;
			}
			set
			{	
				if (value != null)
				{
					if (value.GetType().ToString() == "System.String")
					{
						if (this._title == null)
						{
							this._title = new Title();
						}
						this._title.Text = (string)value;
					}
					else if(value.GetType().ToString() == "GoldPrinter.Title")
					{
						this._title = (GoldPrinter.Title)value;
					}
				}
			}
		}

		/// <summary>
		/// 獲取或設置打印副標題,可以是文本,也可以是定義更多特性的Caption對象
		/// </summary>
		public object Caption
		{
			get
			{
				return this._caption;
			}
			set
			{	
				if (value != null)
				{
					if (value.GetType().ToString() == "System.String")
					{
						if (this._caption == null)
						{
							this._caption = new Caption();
						}
						this._caption.Text = (string)value;
					}
					else if(value.GetType().ToString() == "GoldPrinter.Caption")
					{
						this._caption = (GoldPrinter.Caption)value;
					}
				}
			}
		}
		#endregion

		#region 或取或設置網格頭、底,可以是以'|'分隔的字符串或或一維數組或具有更多特性的Top/Bottom對象
		/// <summary>
		/// 或取或設置網格頭,可以是以'|'分隔的字符串或或一維數組或具有更多特性的Top對象
		/// </summary>
		public object Top
		{
			get
			{
				return this._top;
			}
			set
			{	
				if (value != null)
				{
					if (value.GetType().ToString() == "System.String" || value.GetType().ToString() == "System.String[]")
					{
						if (this._top == null)
						{
							this._top = new Top();
						}
						this._top.DataSource = value;
					}
					else if(value.GetType().ToString() == "GoldPrinter.Top")
					{
						this._top = (GoldPrinter.Top)value;
					}
				}
			}
		}

		/// <summary>
		/// 或取或設置網格底,可以是以'|'分隔的字符串或或一維數組或具有更多特性的Bottom對象
		/// </summary>
		public object Bottom
		{
			get
			{
				return this._bottom;
			}
			set
			{	
				if (value != null)
				{
					if (value.GetType().ToString() == "System.String" || value.GetType().ToString() == "System.String[]")
					{
						if (this._bottom == null)
						{
							this._bottom = new Bottom();
						}
						this._bottom.DataSource = (string)value;
					}
					else if(value.GetType().ToString() == "GoldPrinter.Bottom")
					{
						this._bottom = (GoldPrinter.Bottom)value;
					}
				}
			}
		}
		#endregion


		public object Header
		{
			get
			{
				return _header;
			}
			set
			{
				this._header = (GoldPrinter.Header)value;
				
			}
		}

		public object MultiHeader
		{
			get
			{
				return _multiHeader;
			}
			set
			{
				this._multiHeader = (GoldPrinter.MultiHeader)value;
			}
		}

		public object Body
		{
			get
			{
				return _body;
			}
			set
			{
				_body = (GoldPrinter.Body)value;
			}
		}

		public object Footer
		{
			get
			{
				return this._footer;
			}
			set
			{
				this._footer = (GoldPrinter.Footer)value;
			}
		}

		#endregion


		//還可以將此程序稍微修改,用一個集體管理,動態加載打印對象,形成任意多個網格的組合體,打印任意復雜的網格

		public MisPrinter()
		{
			mCurrentPageIndex = 1;
			_rowsPerPage = 0;
			mCurrentRowIndex = 0;
			mCurrentRowIndexForFooter = 0;
			_isSewingLine = false;
			_isPrinterMargins = false;
			_isSubTotalPerPage = false;
			_subTotalCol = "";

			_sewing = new Sewing(0,SewingDirectionFlag.Left);
			mPrintDocument = new PrintDocument();
			_body = new Body();			//主要對象,所以實例化
			_gridBorder = GridBorderFlag.Double;

		}

		#region IDisposable 成員

		public virtual void Dispose()
		{
			//...
		}

		#endregion

		/// <summary>
		/// 頁面設置對話框,如果需要,國慶期間繼續開放,敬請關注
		/// </summary>
		public void PageSetup()
		{
			PrinterPageSetting	printerPageSetting;	
			printerPageSetting = new PrinterPageSetting(mPrintDocument);
			printerPageSetting.PrintPage += new PrintPageDelegate(this.PrintPageEventHandler);

			printerPageSetting.ShowPageSetupDialog();
		}

		/// <summary>
		/// 打印,如果需要,國慶期間繼續開放,敬請關注
		/// </summary>
		public void Print()
		{
			PrinterPageSetting	printerPageSetting;
			printerPageSetting = new PrinterPageSetting(mPrintDocument);
			printerPageSetting.PrintPage += new PrintPageDelegate(this.PrintPageEventHandler);

			printerPageSetting.ShowPrintSetupDialog();			
		}

		/// <summary>
		/// 打印預覽,如果需要,國慶期間繼續開放,敬請關注
		/// </summary>
		public void Preview()
		{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看视频在线| 亚洲成av人**亚洲成av**| 成人免费毛片片v| 亚洲精品日产精品乱码不卡| 欧美美女喷水视频| 国产在线不卡一区| 亚洲欧美激情一区二区| 精品1区2区3区| 国产91精品一区二区麻豆亚洲| 亚洲精品免费在线观看| 精品久久久久久久久久久院品网 | 精品国产一区二区精华| 成人免费黄色在线| 免费在线观看一区| 国产精品国产三级国产普通话三级 | 欧美日韩一区二区在线观看 | 一区二区三区av电影| 日韩免费观看高清完整版在线观看| 成人av电影在线网| 日本不卡123| 亚洲综合色自拍一区| 久久综合色之久久综合| 欧美日韩国产成人在线91| 国产成人免费视频网站高清观看视频| 亚洲一区二区四区蜜桃| 精品国产凹凸成av人网站| 日本韩国精品在线| 欧美aaaaaa午夜精品| 亚洲精选在线视频| 国产丝袜在线精品| 欧美成人激情免费网| 欧美日韩另类一区| 99精品视频在线观看免费| 国内外精品视频| 日韩av中文在线观看| 一区二区三区精品在线| 亚洲国产成人一区二区三区| 日韩精品专区在线影院重磅| 色婷婷av久久久久久久| 成人app在线观看| 国产精品资源在线观看| 久久精品99国产精品| 日韩二区三区在线观看| 五月综合激情网| 亚洲二区在线观看| 国产日本亚洲高清| 久久精品免视看| 久久精品欧美一区二区三区不卡| 欧美刺激脚交jootjob| 欧美一卡二卡在线观看| 欧美日韩成人一区二区| 欧美三级中文字幕在线观看| 99精品热视频| 91豆麻精品91久久久久久| 福利一区二区在线观看| 国产精品夜夜嗨| 久久国产婷婷国产香蕉| 国产精品一卡二卡| 国产精品亚洲专一区二区三区| 狠狠色丁香久久婷婷综| 久久99深爱久久99精品| 大胆亚洲人体视频| 暴力调教一区二区三区| 91色在线porny| 成人爱爱电影网址| 91免费观看在线| 欧美三级中文字幕| 欧美一区二区三区的| 久久久久97国产精华液好用吗| 国产性色一区二区| 亚洲欧美综合色| 亚洲国产精品人人做人人爽| 天天色天天爱天天射综合| 亚洲国产一二三| 国产在线看一区| 成人性色生活片免费看爆迷你毛片| 成人av影院在线| 色婷婷综合久久久久中文| 欧洲精品一区二区三区在线观看| 欧洲日韩一区二区三区| 9i看片成人免费高清| 91黄色免费看| 欧美男生操女生| 久久精品欧美日韩精品| 久久久久国产免费免费| 一区二区三区毛片| 美女国产一区二区三区| eeuss鲁一区二区三区| 9191久久久久久久久久久| 中文字幕欧美国产| 日韩福利电影在线观看| 99久久国产综合精品色伊| 欧美成人精品福利| 亚洲一区二区视频| 成人国产一区二区三区精品| 日韩欧美美女一区二区三区| 亚洲精品欧美综合四区| 国产精品1区2区3区在线观看| 欧美日韩卡一卡二| 日韩一区欧美小说| 国产一区二区三区久久久 | 91麻豆自制传媒国产之光| 欧美精品一区二区三区四区| 亚洲国产精品久久一线不卡| 波多野结衣中文字幕一区二区三区 | 91丨九色丨黑人外教| 久久久久9999亚洲精品| 日韩1区2区3区| 色婷婷一区二区| 成人欧美一区二区三区小说| 国产乱一区二区| 日韩情涩欧美日韩视频| 婷婷中文字幕一区三区| 欧美在线小视频| 日韩伦理免费电影| 成人激情开心网| 国产欧美日本一区视频| 国产精品一区二区免费不卡| 欧美成人一级视频| 秋霞影院一区二区| 在线电影国产精品| 偷拍日韩校园综合在线| 欧美色图激情小说| 午夜伊人狠狠久久| 欧美性xxxxx极品少妇| 亚洲美女屁股眼交| 色欧美88888久久久久久影院| 亚洲免费观看高清完整版在线 | 国产午夜三级一区二区三| 国内偷窥港台综合视频在线播放| 日韩欧美国产综合| 韩国精品主播一区二区在线观看 | 国产欧美精品在线观看| 国产成人午夜片在线观看高清观看| 欧美成人a∨高清免费观看| 麻豆视频观看网址久久| 日韩视频123| 激情久久久久久久久久久久久久久久| 欧美一区二区免费| 久久 天天综合| 久久精品视频免费| 成人国产免费视频| 亚洲欧美区自拍先锋| 欧洲人成人精品| 免费日本视频一区| 久久久久久久久久久久久夜| 国产精品影视网| 中文字幕人成不卡一区| 色噜噜狠狠色综合欧洲selulu| 亚洲自拍偷拍综合| 91精品久久久久久蜜臀| 激情偷乱视频一区二区三区| 国产三级精品视频| 97成人超碰视| 亚洲高清免费观看高清完整版在线观看 | 天堂影院一区二区| 欧美成人精品高清在线播放| 成人丝袜视频网| 亚洲黄色片在线观看| 日韩一区二区三区高清免费看看| 乱一区二区av| 中文字幕免费在线观看视频一区| 色综合天天性综合| 麻豆精品一区二区三区| 欧美高清在线精品一区| 在线亚洲高清视频| 奇米777欧美一区二区| 欧美国产日韩亚洲一区| 91国内精品野花午夜精品| 日本女人一区二区三区| 欧美国产精品一区二区三区| 欧美亚洲图片小说| 国产一区二区三区观看| 亚洲激情校园春色| 精品国免费一区二区三区| 91在线精品一区二区三区| 日韩极品在线观看| 国产精品高潮呻吟| 欧美一区二区人人喊爽| www.亚洲在线| 免费高清在线一区| 亚洲欧洲在线观看av| 欧美大度的电影原声| 一本色道久久综合亚洲91| 久久成人久久鬼色| 一区二区三区在线免费观看| 久久青草国产手机看片福利盒子| 色爱区综合激月婷婷| 国产乱国产乱300精品| 亚洲最新在线观看| 国产视频一区二区三区在线观看 | 91精品国产欧美一区二区18| 不卡一区二区在线| 久久se精品一区二区| 亚洲小少妇裸体bbw| 国产精品午夜久久| 日韩一区二区三区四区 | 欧美一区二区三区免费在线看| 成人高清免费在线播放| 久久精品国产一区二区三区免费看|