上部分 我们将格式大概都画好了
下面 我们将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(); }
时间: 2024-10-15 05:03:45