PDA

Click to See Complete Forum and Search --> : vb convert c#, passing parameter crystal rpts [*Resolved*]


steve_rm
Jan 26th, 2006, 10:34 AM
Hello,

I have a vb code which l am trying to convert to c# and having many problems with it. PFD = rpt.DataDefinition.ParameterFields.Item("@dt"). In c# there is not a parameterFields method called Item. So i am not sure how do l get the name of my parameter that is in the crystal report viewer.

Can anyone help me convert this code to c#.Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine

Dim mDate As DataTime = #01/01/2005#
Dim rpt As New CrystalReport1
Dim PFD As ParameterFieldDefinition
Dim PValues As ParameterValues
Dim Parm As ParameterDiscreteValue

PValues = New ParameterValues

PFD = rpt.DataDefinition.ParameterFields.Item("@dt")
Parm = New ParameterDiscreteValue
Parm.Value = mDate
PValues.Add(Parm)
PFD.ApplyCurrentValues(PValues)

CrystalReportViewer1.ReportSource = rptThanks in advance,

Steve





Edit: Added tags for clarity. - Hack

mendhak
Jan 26th, 2006, 10:45 AM
Instead of .Item("@dt"), you could try just ["@dt"];

(without the .Item, and square brackets)

jmcilhinney
Jan 26th, 2006, 04:30 PM
In VB.NET the Item property is often the default property, which means you can omit the property name, i.e.PFD = rpt.DataDefinition.ParameterFields.Item("@dt")could be writtenPFD = rpt.DataDefinition.ParameterFields("@dt")In C# the equivalent of a default property is an indexer. When using an indexer I believe that you MUST omit the property name, so the C# code becomesPFD = rpt.DataDefinition.ParameterFields["@dt"];

David Anton
Jan 26th, 2006, 08:18 PM
Instant C# produces:

using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;

public void test()
{
DataTime mDate = DateTime.Parse("01/01/2005");
CrystalReport1 rpt = new CrystalReport1();
ParameterFieldDefinition PFD = null;
ParameterValues PValues = null;
ParameterDiscreteValue Parm = null;

PValues = new ParameterValues();

PFD = rpt.DataDefinition.ParameterFields["@dt"];
Parm = new ParameterDiscreteValue();
Parm.Value = mDate;
PValues.Add(Parm);
PFD.ApplyCurrentValues(PValues);

CrystalReportViewer1.ReportSource = rpt;
}

steve_rm
Jan 27th, 2006, 06:00 AM
Thanks for all your help.

PFD = rpt.DataDefinition.ParameterFields["dt"];

Have to take out the @ sign of an error message says field name does not exist.

Thanks,

Steve