www.pudn.com > Cnewprint.rar > Top.cs


using System; 
using System.Drawing; 
 
namespace GoldPrinter 
{ 
	///  
	/// Top,提供一个一行三列的对象,第一列居左,第三列居右,中间一旬居中。默认每页重复打印 
	///  
	/// 程序提供:周方勇;Email:flygoldfish@sina.com。 
	/// 请 关 注:WebMIS.Net快速开发工具,不写一行程序开发B/S架构下MIS、OA、CRM、人事管理、档案管理等数据库网页系统。简单、实用、稳定、可靠。 
	/// 下    载: 
	///			 上海奥联:WWW.AlinkSoft.COM 
	///			 用友华表:WWW.CellSoft.CC 
	///★★★★★您可以免费使用此程序,但是请您保留此说明,以维护知识产权★★★★★ 
	///  
	public class Top:Printer 
	{ 
		//核心为网格对象,不对最终用户公开 
		protected DrawGrid mdrawGrid; 
		protected string _text; 
		protected object _dataSource; 
 
		public Top() 
		{ 
			this.IsDrawAllPage = true; 
 
			_text = ""; 
			mdrawGrid = new DrawGrid(); 
             
			//mdrawGrid.AlignMent = AlignFlag.Left; 
			mdrawGrid.ColsAlignString = "LCR"; 
			mdrawGrid.Border = GridBorderFlag.None; 
			mdrawGrid.Line = GridLineFlag.None; 
			mdrawGrid.Merge = GridMergeFlag.None; 
			 
			this.Font = new Font("宋体",11);			 
 
			mdrawGrid.RowHeight = this.Font.Height; 
 
			mdrawGrid.Initialize(1,3); 
 
		}		 
 
		public string Text 
		{ 
			get 
			{ 
				return this._text; 
			} 
			set 
			{ 
				this._text = value; 
				SetText(this._text); 
			} 
		} 
 
 
		///  
		/// 获取或设置数据源,可以是以'|'分隔的字符串或一维数组 
		///  
		public object DataSource 
		{ 
			get 
			{ 
				return this._dataSource; 
			} 
			set 
			{	 
				if (value != null) 
				{ 
					if (value.GetType().ToString() == "System.String") 
					{ 
						this.Text = (string)value; 
					} 
					else if(value.GetType().ToString() == "System.String[]") 
					{ 
						string mstr = ""; 
						string[] marr = (string[])value; 
						if (marr.Length > 0) 
						{ 
							for(int i = 0 ; i < marr.Length ; i++) 
							{ 
								mstr += "|" + marr[i]; 
							} 
							mstr = mstr.Substring(1); 
							this.Text = mstr; 
						} 
						else 
						{ 
							this.Text = ""; 
						} 
					} 
				} 
				else 
				{ 
					this._dataSource = null; 
				} 
			} 
		} 
		///  
		/// 获取对象的高 
		///  
		public override float Height 
		{ 
			get 
			{ 
				return mdrawGrid.Rows * mdrawGrid.RowHeight; 
			} 
		} 
 
 
		///  
		/// 用分隔符(默认'|')分隔的串设置文本值 
		///  
		///  
		public virtual void SetText(string text) 
		{ 
			this._text = text; 
			SetText(text,'|'); 
		} 
 
		///  
		/// 用指定分隔符分隔的串设置文本值 
		///  
		///  
		///  
		public virtual void SetText(string text,char split) 
		{ 
			this._text = text; 
 
			string mstr = text; 
			char msplit = split; 
 
			string[] arrStr = mstr.Split(msplit); 
			if (arrStr.Length > 0) 
			{ 
				mdrawGrid.SetText(0,0,arrStr[0]); 
			} 
			if (arrStr.Length > 1) 
			{ 
				mdrawGrid.SetText(0,1,arrStr[1]); 
			} 
			if (arrStr.Length > 2) 
			{ 
				mdrawGrid.SetText(0,2,arrStr[2]); 
			} 
 
		} 
 
 
		///  
		/// 在绘图表面绘制对象绘制文本 
		///  
		public override void Draw() 
		{ 
			base.Draw(); 
 
			//在指定的区域内绘制文本			 
			mdrawGrid.Rectangle = new Rectangle((int)this.RectangleF.X + (int)this.MoveX,(int)this.RectangleF.Y  + (int)this.MoveY,(int)this.RectangleF.Width,(int)this.RectangleF.Height);			 
			mdrawGrid.Graphics = this.Graphics; 
			mdrawGrid.Draw(); 
		} 
 
	}//End Class 
}//End NameSpace