上部分 我们将格式大概都画好了
下面 我们将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();
}
