Nick
Nick

Reputation: 353

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. 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?

Upvotes: 0

Views: 11841

Answers (2)

Ramzan Sikandar
Ramzan Sikandar

Reputation: 1

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();

Upvotes: 0

Lee Tickett
Lee Tickett

Reputation: 6037

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

Upvotes: 0

Related Questions