日期:2014-05-18  浏览次数:20831 次

C#中使用水晶报表的问题
在水晶报表中添加了两个未绑定的日期字段(应该是公式字段吧),想在程序里把两个datatimepicker的值赋给这两个字段, 然后显示报表。结果在报表中显示的是1998,00,我定义的格式应该是yyyy-MM-dd的格式,怎么会显示那个啊~语句如下:
报表中两个日期字段:StartDate,EndDate
Report1 rpt=new Report1();//Report1是我的报表
rpt.SetDataSource(ds);//ds是SQL语句返回的DataSet
rpt.DataDefinition.FormulaFields["StartDate"].Text=dtStartDate;//dtStartDate是我的datatimepicker的名称
rptViewer.ReportSource=rpt;//rptViewver是CrystalReportViewer

程序里datatimepicker是2008-03-01的格式,但是到了报表显示就成了1998,00,不知道怎么回事?用MessageBox.Show()测试rpt.DataDefinition.FormulaFields["StartDate"].Text正常,怎么显示就不正常了?

------解决方案--------------------
1.先在报表中拖放一个文本框,设置对象名称为txtFindDate

 2.
TextObject text;

// 按名称获取 ReportObject,将其转换为 TextObject,
//并返回此对象。
text = dayReportSum1.ReportDefinition.ReportObjects["txtFindDate"] as TextObject;
if (text != null) text.Text = date1.Date.ToString("yyyy-MM-dd") + " 至 " + date2.Date.ToString("yyyy-MM-dd");