刚看到以为是excel表格,结果怎么做都达不到想要的效果,“有问题找度娘”看来要变成一个亘古不变的的真理了,开始了网上的探索之路,因此有幸结识了grid++report,当你发现一个新的领域除了收获的喜悦随之而来的是一个又一个的问题,参考网上的资料一步一步建立报表---挺容易的嘛,正准备洋洋得意的时候
后来经过多方实验、查找资料,终于找到了一个解决的方法,先说一下我的理解(不对的请大家指正)上面这三步是和你登陆数据库相联系的,我的数据库是用的windows验证方式,而在这里我选择了用户名称和密码,服务器选择是是(local)这里选择(local),最终我改成了
测试成功了,有师哥师姐也遇到了类似的问题,附上链接大家可以看一下他们的理解;
问题解决了,心情自然很高兴,然而这只是一个开始;因为刚接触,报表懵懵懂懂的算是做好了吧,然后和VB联系,添加部件Grid++Report Engine5.0 Type Libirary
大部分的代码挺简单的,关于这些‘大家们’已经写了很多了,有一个大虾写的特别详细,自从昨天晚上不小心关闭那个网页后就再也找不到了幸亏当时多看了一眼
好了回到主题这里我主要写我的问题还有经验总结;看着这简单明了的账单,这日期是怎么上去的?
网上的资料感觉都多少省了一些东西,为了更好更快地解决问题所以说我们应该要像迅雷一样,学会收集整理:
一、
1、参数集合——插入——参数(建议给参数一个合理的命名)——修改数据类型、选择格式
2、报表头中插入综合文本框——双击——插入域——引用类型为参数——字段——选择刚才的参数
3、保存报表,把报表放到与VB工程同一个目录下,否则会提示错误
4、代码部分
report.ParameterByName("begindate").AsString = Format$(DTPbegin.Value, "yyyy-mm-dd")
report.ParameterByName("enddate").AsString = Format$(DTPend.Value, "yyyy-mm-dd")
report.ParameterByName("datetime").AsString = Format$(Now)
这是我用到了DTP(DTPicker),enddate就是前面所说的参数
二、这样报表的时间就解决了,但是怎么让这个表听话呢?我加了这样一段代码
report.DetailGrid.Recordset.QuerySQL = "select * from checkday_infowhere date >= '" & DTPbegin.Value & "'and date<= '" & DTPend.Value & "'"
看着挺完美的,但是鞋合不合适只有脚知道,我把上面的代码写在from_load里,而DTPicker默认为当前值,所以无论我怎么刷新它都只显示当天的记录,因为刷新里没有日期选择的这个功能
三、账单的底部还有一个操作员,不知大家有没有注意到,这个要这么做呢?其实挺简单的,话不多说代码贴上
report.ParameterByName("operter").AsString = Format$(mrc.Fields(0))
四、还有一个制表时间,应该是当前时间,有一个人这样写到:[#SystemVar(CurrentDateTime):yyyy-MM-dd#]我试了一下年日显示没有问题,但是51月这就需要解释一下了,应该是没有写错的,有很多这样写的,但是……所以我添加了一个参数,在VB中report.ParameterByName("datetime").AsString = Format$(Now)这样写,运行
谢谢观看