早上好,我正在努力解决这个Crystal报告问题,我的报告中有公式:
cstr(monthname(month({kwitansi1.tgl_kwitansi})))+" - " +cstr(year({kwitansi1.tgl_kwitansi}),0)
它正在工作并显示我想要的数据,如下所示:
May-2015 $1000
June-2015 $600
July-2015 $250
August-2015 $1500
我有2个参数,“?month1”和“?Month2”,当我预览它时,表示字段名称未知。
这些参数适用于datetimepicker1和datetimepicker2。 所以基本上我想展示,例如: 如果我点击datetimepicker1然后填写一些随机日期,但月份是2015年5月然后我点击datetimepicker2也填充它随机日期,但月份是2015年8月,然后我点击“打印”按钮,水晶报告应该显示那些我想要的数据。
我在vb.form上使用它将参数传递给Crystal Report。
objrepdoc = New CRLaporanPendapatanPerbulan
objrepdoc.SetParameterValue("month1", Format(FormCetakLaporanPendapatan.datetimepicker1.Value, "MMMM-YYYY"))
objrepdoc.SetParameterValue("month2", Format(FormCetakLaporanPendapatan.datetimepicker2.Value, "MMMM-YYYY"))
objrepdoc.RecordSelectionFormula = "{kwitansi1.tgl_kwitansi} >= #" & Format(FormCetakLaporanPendapatan.datetimepicker1.Value, "MMMM-YYYY") & "# And {kwitansi1.tgl_kwitansi} <= #" & Format(FormCetakLaporanPendapatan.datetimepicker2.Value, "MMMM-YYYY") & "#"
我知道这些代码是错误的,:(因为如果我选择任何一个月,水晶报告会显示已保存在date
(kwitansi1.tgl_kwitansi)字段中的所有数据。我想要的是CR是仅显示VB.Form使用datetimepicker1和datetimepicker2
答案 0 :(得分:0)
由于没有人回答我的问题,我会回答这个问题以供其他有同样问题的人参考。
所以,简单的部分实际上是:
{tableA.date_table} in {?parameter1} to {?parameter2}
在Windows窗体上使用:
Dim objrepdoc As New ReportDocument
`objrepdoc = New CrystalReport1
objrepdoc.SetParameterValue("parameter1", Format(Form1.DTdate1.Value, "yyyy-MM-dd"))
objrepdoc.SetParameterValue("parameter2", Format(Form1.DTdate2.Value, "yyyy-MM-dd"))
objrepdoc.RecordSelectionFormula = "{tableA.date_table} >= #" & Format(Form1.DTdate1.Value, "yyyy-MM-dd") & "# And {tableA.date_table} <= #" & Format(Form1.DTdate2.Value, "yyyy-MM-dd") & "#"`
注意:datetimepicker也可以显示日期,您可以修改它,以便datetimepicker只显示月份和年份。