上部分 我們將格式大概都畫好了
下面 我們將Datatable的每列綁定到 我們添加的table控件上 。然后打開table控件的事件 雙擊選中 ManualBuild 事件 添加代碼
private void tbYZ_ManualBuild(object sender, EventArgs e) { DataSourceBase data1 = Report.GetDataSource("dtYZ"); // 獲取DataSet中表名為Table1的數據源
data1.Init(); // 初始化
// tbYZ.PrintRow(0); // 控件Table1打印第0行
// tbYZ.PrintColumns(); // 每打印一行,都要調用 PrintColumn或PrintColumns while(data1.HasMoreRows) // 打印重復循環的行 { tbYZ.PrintRow(0); tbYZ.PrintColumns(); data1.Next(); // 讀取下一行 } }
這里是 設置table的數據源 然后循環打印的方法 這里設置完成以后, 我們開始用C#調用FastReport 首先添加引用 FastReport的相關dll 添加一個Form 然后注冊Fastreport 控件 ,將PreviewControl放到Form上 然后在Form的Load事件中傳入 Dataset 和 Parameters。需要注意的是 在傳入dateset中的Datatable的名字一定要和FastReport格式中的 Datatable名字一樣。
private void fm住院處方箋打印對話框_Load(object sender, EventArgs e) { Report freport = new Report(); freport.Preview = this.previewControl1; freport.Load(@"住院處方箋.frx"); this.previewControl1.Report.RegisterData(dsyz); freport.SetParameterValue("日期", DateTime.Now.ToString("yyyy年MM月dd日")); this.previewControl1.Report.SetParameterValue("費別", listInfo[0]); this.previewControl1.Report.SetParameterValue("住院號", listInfo[1]); this.previewControl1.Report.SetParameterValue("科室", listInfo[2]); this.previewControl1.Report.SetParameterValue("姓名", listInfo[3]); this.previewControl1.Report.SetParameterValue("性別", listInfo[4]); this.previewControl1.Report.SetParameterValue("年齡", listInfo[5]); this.previewControl1.Report.SetParameterValue("門診號", listInfo[6]); this.previewControl1.Report.SetParameterValue("住址或電話號碼", listInfo[7]); this.previewControl1.Report.SetParameterValue("臨床診斷", listInfo[8]); this.previewControl1.Report.SetParameterValue("醫師", listInfo[9]); this.previewControl1.Report.SetParameterValue("葯品金額及訖章", listInfo[10]); this.previewControl1.Report.Show(); }