刚开始的时候在网上也查了一些资料,资料很多,但是都不是我要的。于是自己开发吧。于是就琢磨出了这个:
首先从添加引用中添加这项:CrystalDecisions.CrystalReports.Engine。然后将水晶报表控件拖到窗体上。然后再添加一个:
这就是一个报表的模板,然后选择空白报表,然后在这里面设定数据项。
在报表模板中我是通过让其了连接到视图来显示数据的。当然首先的设定数据源:
选择数据库专家。
然后再这:
然后直接将左边栏中字段拖到模版中。这样在现实的时候会显示视图中的数据。当然了,在使用的时候还要登陆,稍后再说。
在模板中还可以使用时间函数,可以直接显示当前的时间,并且在其中可以插入文本对象,这个对象可以当做参数来使用,也就是可以从代码中加以控制。
下面看一下我的代码,很好明白:
在窗体中要首先定义一个模板
Dim myRpt as new CrystalReport1
Dim paraStartDate,paraEndDate,paraUser As TextObject
'设定对象为模板中的参数
'下面用到的就是模板中的文本对象,名字就是双引号中的内容。
paraStartDate = myRpt.ReportDefinition.ReportObjects("txtStartDate")
paraEndDate = myRpt.ReportDefinition.ReportObjects("txtEndDate")
paraUser = myRpt.ReportDefinition.ReportObjects("txtCurrentUser")
'赋值
paraStartDate.Text = FormatDateTime(DTPStart.Value,DateFormat.ShortDate)
paraEndDate.Text = FormatDateTime(DTPEnd.Value,DateFormat.ShortDate)
paraUser.Text = CurrentUser
myRpt.Refresh()
rptVew.ReportSource = myRpt
当然了,在窗体的加载事件中要写入登陆语句:
myRpt.SetDatabaselogon("sa","123")
这样就可以了。