C# FastReport 报表数据参数的传递
方法一:用C#先生成数据然后再显示报表(报表也得是表名为YLRKMESS
1 c#先获取数据
DataSet dtColMess = new DataSet();
String BL_PZH=” RYL2101000004”
System.Data.DataTable dt = DBConn.GetSqlData("select a.*,b.DH,b.G_DDH,b.YLCD,b.CGY,b.d_ckmc,b.BZ as zbz,B.D_JC AS D_JC from R_YLRK A LEFT JOIN Z_YLRKZD B ON A.G_PZH=B.G_PZH WHERE B.G_PZH =' " + this.BL_PZH + "'");
dt.TableName = "YLRKMESS";
dtColMess.Tables.Add(dt);
2:设计好报表,然后加上后面的代码
this.FReport = new FastReport.Report();
this.environmentSettings1 = new FastReport.EnvironmentSettings();
string file = System.Windows.Forms.Application.StartupPath;
file += "\\Reports\\Test.frx";
if (File.Exists(file) == false)
{
//File.Create(sPath);//创建文件
MessageBox.Show("报表文件不存在,请与管理员联系”);
return;
}
#region 增加报表变量
this.FReport.Load(file);
his.environmentSettings1.DesignerSettings.Restrictions.DontCreateData = true;
this.environmentSettings1.DesignerSettings.Restrictions.DontEditData = true;
string textBarcode = "张三";
TextObject pTextPrint = this.FReport.FindObject("TextPrintTime") as TextObject;
(this.FReport.FindObject("TextPrintTime") as TextObject).Text = textBarcode;
pTextPrint.Text = "打印人:"+ textBarcode;
#endregion
//this.FReport.RegisterData(dtyllist, "R_YLRK");
//this.FReport.RegisterData(dtSaveMess, "Z_YLRKZD");
this.FReport.RegisterData(dtColMess);//此法为向报表加数据
this.FReport.GetDataSource("YLRKMESS").Enabled = true;
if (this.chkPrint1.Checked)
{
this.FReport.Show();//预览
this.FReport.Dispose();//释放报表变量
}
else
{
this.FReport.PrintSettings.ShowDialog = false;//不显示对话框
this.FReport.Print();//直接打印
this.FReport.Dispose();//释放报表变量
}
return;
//}
#endregion
//}
//report1.Load("Reports/Test.frx");
//report1.RegisterData(dtyllist, "Data");
//report1.RegisterData(dtSaveMess, "TestDb123");
//report1.PrintSettings.ShowDialog = false;
//report1.Print();
//report1.Preview = previewControl1;//指定预览的窗口
}
方法二:此种方法为向报表传参的方法(此法要在报表中的数据环境中
select a.*,b.DH,b.G_DDH,b.YLCD,b.CGY,b.d_ckmc,b.BZ as zbz,B.D_JC AS D_JC from R_YLRK A LEFT JOIN Z_YLRKZD B ON A.G_PZH=B.G_PZH WHERE B.G_PZH =@BL_PZH)
this.FReport = new FastReport.Report();
this.environmentSettings1 = new FastReport.EnvironmentSettings();
string file = System.Windows.Forms.Application.StartupPath;
file += "\\Reports\\Test.frx";
if (File.Exists(file) == false)
{
//File.Create(sPath);//创建文件
MessageBox.Show("报表文件不存在,请与管理员联系”);
return;
}
#region 增加报表变量
this.FReport.Load(file);
this.FReport.SetParameterValue("BL_PZH", "RYL2101000004");//这是要传入的参数,要放在LOD后面
this.environmentSettings1.DesignerSettings.Restrictions.DontCreateData = true;
this.environmentSettings1.DesignerSettings.Restrictions.DontEditData = true;
string textBarcode = "张三";
TextObject pTextPrint = this.FReport.FindObject("TextPrintTime") as TextObject;
(this.FReport.FindObject("TextPrintTime") as TextObject).Text = textBarcode;
pTextPrint.Text = "打印人:"+ textBarcode;
#endregion
this.FReport.RegisterData("YLRKMESS");
this.FReport.GetDataSource("YLRKMESS").Enabled = true;
if (this.chkPrint1.Checked)
{
this.FReport.Show();
this.FReport.Dispose();
}
else
{
this.FReport.PrintSettings.ShowDialog = false;
this.FReport.Print();
this.FReport.Dispose();
}
return;
//}
#endregion
//}
//report1.Load("Reports/Test.frx");
//report1.RegisterData(dtyllist, "Data");
//report1.RegisterData(dtSaveMess, "TestDb123");
//report1.PrintSettings.ShowDialog = false;
//report1.Print();
//report1.Preview = previewControl1;