VS制作报表
制作报表这块,VS相对当初的VB就容易多了,VS不需要再用第三方软件制作报表,它本身就可以。
方法
1、在UI新建数据集
2、添加——TableAdapter(T)
3、点击新建连接——同上面第七步,填写自己的信息。——测试——确定——下一步
4、选择SQL语句——下一步
5、写SQL语句
如:
6、测试:点击查询生成器——执行查询——输入值——确定。若有数据,则语句输入成功。
查询成功:
7、确定、下一步、下一步、完成即可。
8、然后新建窗体——添加ReprotViewer控件
9、点击控件的右上角小三角,选择设计新报表
10、数据集属性
11、下一步、然后是根据自己的需要选择合适的格式,若只需要显示各行的值,则将所需要显示的字段加到值得那块。如下图。然后下一步:
12、然后依然是个性化设置,选择自己喜欢的格式即可。
13、修改字段显示
14、修改好后,回到UI界面,在图示地方选择自己建立的报表
代码部分:
代码这块很简单。
当进入代码界面后,会有错,这是因为没有给sql语句传值。
报错代码:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“DataSet1.SettleAccount_Info”中。您可以根据需要移动或删除它。
Me.SettleAccount_InfoTableAdapter.Fill(Me.DataSet1.SettleAccount_Info)'报错行,因为未给当初设定的SQL语句赋@data 的值
Me.ReportViewer1.RefreshReport()
End Sub
调整:
界面是添加的DateTimePicker1获取时间
所以将DateTimePicker1的值赋给@data
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“DataSet1.SettleAccount_Info”中。您可以根据需要移动或删除它。
Me.SettleAccount_InfoTableAdapter.Fill(Me.DataSet1.SettleAccount_Info, DateTimePicker1.Text)'将
Me.ReportViewer1.RefreshReport()
End Sub
日期格式转化
但这样运行后,有的会发现没有查到想要的数据,或者报错。这是因为日期格式的问题。
数据库中日期格式为:yyyy-MM-dd
而DateTimePicker1的text的格式为:****年**月**日
这就需要我们传值的时候将格式转化成一致的:
代码为:
Me.SettleAccount_InfoTableAdapter.Fill(Me.weakDataSet1.SettleAccount_Info, Format(DateTimePicker1.Value, "yyyy-MM-dd"))
这样,顺利完成呐~~~~~
总结:
这样可以实现所要的功能,但几乎没写什么代码,没有用七层去实现。(如果不加数据源,可以用七层传回值)但本着尝试各种方式的理念,报表我就这么做了......