1. 做报表没做几次,第一次做的都忘记了,还好今天做一下就把报表弄成功了。报表中“参数字段”是可以变的,就是说需要自己赋值或者是要计算的。而在苏据库字段里面的是固定的值。不需要计算(注:有的字段查询出来但不一定要用,这样也行的)
1.1报表详细说明:第一步先添加一个窗体,把crystalReportViewer拖到窗体中。如果需要表头的话就家一个textbox控件,为了分开都用groupbox框起来
图片如下:
1.2:之后就要添加一个"数据集"xx.xsd需要在这里面新建一张表这张表中的东西是自己需要的字段(说明:有些参数需要经过计算的到或者需要经过变换得到的数据都是“参数字段”,而那些不需要变换直接可以用的就是在“数据库字段”)。需要变换的数据则要在form窗体上写写代码进行计算或者转换。加载的时候调用Init()方法,在Init方法中写具体代码。
1 #region 窗体加载 2 private void ReportForm_HuShiPaiBan_Load(object sender, EventArgs e) 3 { 4 Init(); 5 6 } 7 #endregion 8 9 10 ParameterFields paramFields = new ParameterFields();11 #region 加载报表数据12 private void Init()13 {14 //提取需要的数据15 dt_HuShiShangBanXinXi = BLL_PaiBan.Report.PaiBan_Select();16 //获取报表对应的参数17 ParameterField HangTouText = new ParameterField();18 ParameterField QiZhiShiJianText = new ParameterField();19 ParameterField ZhongZhiShiJianText = new ParameterField();
在最后需呀加上此代码,赋数据源。
1 Report.HuShiShangBanXinXi myHuShiShangBanXinXi = new HuShiShangBanXinXi();2 myHuShiShangBanXinXi.SetDataSource(dt_HuShiShangBanXinXi);3 this.crystalReportViewer1.ReportSource = myHuShiShangBanXinXi;4 crystalReportViewer1.Refresh();
附上几张图片:在第三张图片中,一般来说selection2、selection3中是放数据的(有事也不一定,按情况而定)定值需要在“素数据库字段中拖拉”而变量则是在参数字段中拖拉(参数字段需要自己新建)。第三幅图中行头下面的两个日期就是“参数”,周一周二下面的就是数据库字段。
2.如果查询的结果要返回值,但返回值的结果为-1,就要改一下方法(调用数据库的方法)
int HuShiID = int.Parse(DBLibrary.SQLHelper.ExecuteScalar("JiChuXinXi_HuShiXinXi_Insert", CommandType.StoredProcedure, myDictionary, "YuanGongID").ToString().Trim()); //如果这里老是返回-1则需要改一下ExecuteScalar方法。。。。。。 return HuShiID;
3.模糊查询:这里的模糊查询还得理解理解。。。。
1 //if (tsCbo_ChaXunTiaoJian.Text != "" && tsptxt_KeyWord.Text != "") 2 //{ 3 // string[] condition = new string[tsCbo_ChaXunTiaoJian.Items.Count]; 4 // tsCbo_ChaXunTiaoJian.Items.CopyTo(condition, 0); 5 // string[] keyWord = new string[] { "HuShiMingCheng", "HuShiBianHao" }; 6 // Common.public_method.FuzzySearch(condition, keyWord, tsptxt_KeyWord.Text.ToString().Trim(), tsCbo_ChaXunTiaoJian.Text.ToString().Trim(), this.DGV_DangQianPaiBan, dt_DangQianPaiBan); 7 //} 8 9 DataTable dt = dt_DangQianPaiBan;10 DataView dv = new DataView();11 dv = dt.DefaultView;12 if (this.tsCbo_ChaXunTiaoJian.Text == "护士编号")13 {14 dv.RowFilter = "HuShiMingCheng like" + "'%" + this.tsptxt_KeyWord.Text.Trim() + "%'";15 }16 17 else if (this.tsCbo_ChaXunTiaoJian.Text == "护士名称")18 {19 dv.RowFilter = "HuShiBianHao like" + "'%" + this.tsptxt_KeyWord.Text.Trim() + "%'";20 }21 this.DGV_DangQianPaiBan.DataSource = dv;22 tsptxt_KeyWord.Clear();23 24 25 }