通过使用两个参数Crystal Report + vb.net显示报告 [英] Show report by using two parameter crystal report + vb.net
问题描述
我在SQL SERVER 2000中有一个表,该表有五个字段[日期收入金额费用金额].现在,用户要输入第一个日期&表格中的最后日期显示记录好吗?通过一个参数显示记录对我来说很容易&我通过以下代码做到了.我的意思是我做了一个参数&有一个表格和一个文本框&一键式一个报表查看器.让我向您展示我用于按钮事件的代码,我以前用一个参数来显示报告.
代码:
Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class Form6 Inherits System.Windows.Forms.Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ''Dim cryRpt As New ReportDocument ''cryRpt.Load(Application.StartupPath & "\CrystalReport5.rpt") ''CrystalReportViewer1.ReportSource = cryRpt ''CrystalReportViewer1.Refresh() Dim cryRpt As New ReportDocument cryRpt.Load(Application.StartupPath & "\CrystalReport5.rpt") Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldDefinition As ParameterFieldDefinition Dim crParameterValues As New ParameterValues Dim crParameterDiscreteValue As New ParameterDiscreteValue crParameterDiscreteValue.Value = TextBox1.Text crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields crParameterFieldDefinition = crParameterFieldDefinitions.Item("id") crParameterValues = crParameterFieldDefinition.CurrentValues crParameterValues.Clear() crParameterValues.Add(crParameterDiscreteValue) crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) CrystalReportViewer1.ReportSource = cryRpt CrystalReportViewer1.Refresh() cryRpt.RecordSelectionFormula = "{Button1}= " & TextBox1.Text & "" End Sub
但是现在我创建了两个参数来显示报告.
参数:{asst.dt}> = {?fdt}和{asst.dt}< = {?ldt}
fdt(第一个日期和ldt(最后一个日期)
我有一个带有两个文本框的表格一键式一个报表查看器.当用户将在第一个文本框&中输入第一个日期时最后一个文本框中的最后日期&点击显示"按钮,它将显示两个日期之间的记录,包括首个日期&最后一次约会.结果,我为按钮事件输入了正确的代码,对不对?我正在使用以前的代码
代码:
Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class Form6 Inherits System.Windows.Forms.Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ''Dim cryRpt As New ReportDocument ''cryRpt.Load(Application.StartupPath & "\CrystalReport1.rpt") ''CrystalReportViewer1.ReportSource = cryRpt ''CrystalReportViewer1.Refresh() Dim cryRpt As New ReportDocument cryRpt.Load(Application.StartupPath & "\CrystalReport5.rpt") Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldDefinition As ParameterFieldDefinition Dim crParameterValues As New ParameterValues Dim crParameterDiscreteValue As New ParameterDiscreteValue crParameterDiscreteValue.Value = TextBox1.Text crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields crParameterFieldDefinition = crParameterFieldDefinitions.Item("id") crParameterValues = crParameterFieldDefinition.CurrentValues crParameterValues.Clear() crParameterValues.Add(crParameterDiscreteValue) crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) CrystalReportViewer1.ReportSource = cryRpt CrystalReportViewer1.Refresh() cryRpt.RecordSelectionFormula = "{Button1}= " & TextBox1.Text & "" End Sub
但它不起作用.因为它适用于一个参数.现在,您能告诉我在按钮事件代码中应该更改或添加哪些内容以执行我想做的事情吗?清楚吗?例如,用户将在第一个文本框&中输入1-1-2010. 30-1-2010在最后一个文本框中,当他单击显示"按钮时,它将显示2010年1月1日之间的记录. 30-1-2010,包括1-1-2010& 30-1-2010.希望您现在能理解.请帮我解决这个问题.我希望您能向我正确地解释它,因为我只是一个初学者.
您已经问了好几天了-为什么您不花一些时间呢?使用Google找出答案之间的时间?
鉴于此代码的布局多么糟糕,我想您只是在自学,没有人在使用此代码,因此我建议您获得一些体面的信息来源,最好是一本书,并仔细研究它们. >
I have a table there in SQL SERVER 2000 which has five fields[date income amount expense amount]. Now user wants to input first date & last date there in form to show records ok? To show record by one paraemeter was easy for me & I did it by following code. I mean I made one parameter & got one form with one text box & one button & one report viewer. Let me show you my code for button event what I used to show report by one parameter.
Code :
Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class Form6 Inherits System.Windows.Forms.Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ''Dim cryRpt As New ReportDocument ''cryRpt.Load(Application.StartupPath & "\CrystalReport5.rpt") ''CrystalReportViewer1.ReportSource = cryRpt ''CrystalReportViewer1.Refresh() Dim cryRpt As New ReportDocument cryRpt.Load(Application.StartupPath & "\CrystalReport5.rpt") Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldDefinition As ParameterFieldDefinition Dim crParameterValues As New ParameterValues Dim crParameterDiscreteValue As New ParameterDiscreteValue crParameterDiscreteValue.Value = TextBox1.Text crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields crParameterFieldDefinition = crParameterFieldDefinitions.Item("id") crParameterValues = crParameterFieldDefinition.CurrentValues crParameterValues.Clear() crParameterValues.Add(crParameterDiscreteValue) crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) CrystalReportViewer1.ReportSource = cryRpt CrystalReportViewer1.Refresh() cryRpt.RecordSelectionFormula = "{Button1}= " & TextBox1.Text & "" End Sub
But now I have created two parameter to show report.
Parameter : {asst.dt} >= {?fdt} and {asst.dt} <= {?ldt}
fdt(first date & ldt(last date)
I have a form with two text boxes & one button & one report viewer. When user will input first date there in the first text box & last date there in last text box & click on show button it will show records between two dates including first date & last date. As a result I have wrtie code for button event right? I am using my previous code which is
Code :
Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class Form6 Inherits System.Windows.Forms.Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ''Dim cryRpt As New ReportDocument ''cryRpt.Load(Application.StartupPath & "\CrystalReport1.rpt") ''CrystalReportViewer1.ReportSource = cryRpt ''CrystalReportViewer1.Refresh() Dim cryRpt As New ReportDocument cryRpt.Load(Application.StartupPath & "\CrystalReport5.rpt") Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldDefinition As ParameterFieldDefinition Dim crParameterValues As New ParameterValues Dim crParameterDiscreteValue As New ParameterDiscreteValue crParameterDiscreteValue.Value = TextBox1.Text crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields crParameterFieldDefinition = crParameterFieldDefinitions.Item("id") crParameterValues = crParameterFieldDefinition.CurrentValues crParameterValues.Clear() crParameterValues.Add(crParameterDiscreteValue) crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) CrystalReportViewer1.ReportSource = cryRpt CrystalReportViewer1.Refresh() cryRpt.RecordSelectionFormula = "{Button1}= " & TextBox1.Text & "" End Sub
but it doesnt work. Because it works for one parameter. Now would you please tell me what should I change or add there in my button event code to do what I am trying to do? Is it clear? For example user will input 1-1-2010 there in first text box & 30-1-2010 there in last text box when he will click on show button it will show record between 1-1-2010 & 30-1-2010 including 1-1-2010 & 30-1-2010. I hope you can understand it now. Please help me to solve this problem. I hope you will explain it to me properly because I am just a beginner.解决方案You have been asking this for days - why didn''t you spend some of the time inbetween using google to find out what the answers are ?
Given how poorly laid out this code is, I assume you''re just teaching yourself and no-one is using this code, so I would recomend getting some decent sources of information, preferably a book, and working through them.
这篇关于通过使用两个参数Crystal Report + vb.net显示报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!