简体   繁体   English

使用VS2010 Vb.net的动态水晶报表

[英]Dynamic Crystal Report using VS2010 Vb.net

I am trying to generate a report using Crystal studio that takes a public variable from the vb.net application.我正在尝试使用 Crystal Studio 生成报告,该报告从 vb.net 应用程序中获取公共变量。 I think the best way to do it is to just dynamically give the filter to the report at runtime, but I can't figure out how to set it up to take any information at runtime.我认为最好的方法是在运行时动态地将过滤器提供给报告,但我不知道如何设置它以在运行时获取任何信息。 Any advice?有什么建议吗?

string query = "select * from TestReport";

sqlconn.Open();

da = new SqlDataAdapter(query, sqlconn);

SqlCommandBuilder scb = new SqlCommandBuilder(da);

da.Fill(DS.TestReport);//DS is a DataSet object .

myCrystalReport1.SetDataSource(DS);


//-----------------

ParameterField paramfield = new ParameterField();

ParameterFields paramfields = new ParameterFields();

ParameterDiscreteValue discreteval = new ParameterDiscreteValue();


paramfield.Name = "myfirstname";

discreteval.Value = "10"; 


paramfield.CurrentValues.Add(discreteval); 

paramfields.Add(paramfield);

crystalReportViewer1.ParameterFieldInfo = paramfields;

//-----------------

crystalReportViewer1.ReportSource = myCrystalReport1;


crystalReportViewer1.Refresh();

sqlconn.Close();

The best way is to build your report with a parameter which is used in the record selection criteria.最好的方法是使用记录选择标准中使用的参数构建报告。 You can then load the report and populate the parameter like:然后,您可以加载报告并填充参数,如:

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

    Dim cryRpt As New ReportDocument
    cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.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("Customername")
    crParameterValues = crParameterFieldDefinition.CurrentValues

    crParameterValues.Clear()
    crParameterValues.Add(crParameterDiscreteValue)
    crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)

    CrystalReportViewer1.ReportSource = cryRpt
    CrystalReportViewer1.Refresh()
End Sub

Code from: http://vb.net-informations.com/crystal-report/vb.net_crystal_report_parameter_string.htm End Class代码来自: http : //vb.net-informations.com/crystal-report/vb.net_crystal_report_parameter_string.htm结束类

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM