Skip to Content
0
Former Member
Feb 03, 2009 at 02:26 PM

Web Service Parameter error

35 Views

Please help me, I'm too much lost because I can not pass ParameterFields to the CrystallReportViewer, It always give me the error

"Object reference not set to an instance of an object."

Only simple report and only one ParameterFields . Nothing else:

The code I pass parameter is copied from the MSDN help as the following:

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

crystalReportViewer1.ReportSource =

"http://localhost/ec/reports/CrystalReport1Service.asmx";

try

{

SetParameterFieldInfo("x1", "xxxx");

}

catch (Exception)

{

throw;

}

}

private void SetParameterFieldInfo(String fieldName, String fieldValue)

{

CrystalDecisions.Shared.ParameterDiscreteValue parameterDiscreteValue = new CrystalDecisions.Shared.ParameterDiscreteValue();

parameterDiscreteValue.Value = fieldValue;

CrystalDecisions.Shared.ParameterValues currentParameterValues = new CrystalDecisions.Shared.ParameterValues();

currentParameterValues.Add(parameterDiscreteValue);

CrystalDecisions.Shared.ParameterField parameterField = new CrystalDecisions.Shared.ParameterField();

parameterField.Name = fieldName;

parameterField.CurrentValues = currentParameterValues;

//if (parameterField.HasCurrentValue)

// MessageBox.Show(parameterField.);

CrystalDecisions.Shared.ParameterFields parameterFields = new CrystalDecisions.Shared.ParameterFields();

parameterFields.Add(parameterField);

crystalReportViewer1.ParameterFieldInfo = parameterFields;

}

}

As you can see from the above code it is very straight. I always get the following exception:

at CrystalDecisions.Windows.Forms.ParameterFieldInfo.get_isDCP()

at CrystalDecisions.Windows.Forms.ParameterValueEditControl.Start()

at CrystalDecisions.Windows.Forms.ParameterUnit.AddEditControl(ParameterValue pv)

at CrystalDecisions.Windows.Forms.ParameterUnit.UpdateControls()

at CrystalDecisions.Windows.Forms.ParameterUnit.set_ParameterFieldInfo(ParameterFieldInfo value)

at CrystalDecisions.Windows.Forms.InteractiveParameterPanel.ShowParameters()

at CrystalDecisions.Windows.Forms.CrystalReportViewer.ShowInteractiveParameters()

at CrystalDecisions.Windows.Forms.CrystalReportViewer.ShowReport()

at CrystalDecisions.Windows.Forms.CrystalReportViewer.OnPaint(PaintEventArgs evtArgs)

at System.Windows.Forms.Control.PaintTransparentBackground(PaintEventArgs e, Rectangle rectangle, Region transparentRegion)

at System.Windows.Forms.ToolStrip.EraseCorners(PaintEventArgs e, Region transparentRegion)

at System.Windows.Forms.ToolStrip.OnPaintBackground(PaintEventArgs e)

at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)

at System.Windows.Forms.Control.WmPaint(Message& m)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

at System.Windows.Forms.ToolStrip.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

at System.Windows.Forms.SafeNativeMethods.UpdateWindow(HandleRef hWnd)

at System.Windows.Forms.Control.Update()

at System.Windows.Forms.ToolStrip.ClearAllSelectionsExcept(ToolStripItem item)

at System.Windows.Forms.ToolStrip.NotifySelectionChange(ToolStripItem item)

at System.Windows.Forms.ToolStripItem.Select()

at System.Windows.Forms.ToolStrip.ChangeSelection(ToolStripItem nextItem)

at System.Windows.Forms.ToolStrip.SelectNextToolStripItem(ToolStripItem start, Boolean forward)

at System.Windows.Forms.ToolStrip.Select(Boolean directed, Boolean forward)

at System.Windows.Forms.Control.SelectNextControl(Control ctl, Boolean forward, Boolean tabStopOnly, Boolean nested, Boolean wrap)

at System.Windows.Forms.ContainerControl.Select(Boolean directed, Boolean forward)

at System.Windows.Forms.Control.SelectNextControl(Control ctl, Boolean forward, Boolean tabStopOnly, Boolean nested, Boolean wrap)

at System.Windows.Forms.Control.SelectNextControlInternal(Control ctl, Boolean forward, Boolean tabStopOnly, Boolean nested, Boolean wrap)

at System.Windows.Forms.Form.set_Active(Boolean value)

at System.Windows.Forms.Form.WmActivate(Message& m)

at System.Windows.Forms.Form.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

at System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)

at System.Windows.Forms.Control.SetVisibleCore(Boolean value)

at System.Windows.Forms.Form.SetVisibleCore(Boolean value)

at System.Windows.Forms.Control.set_Visible(Boolean value)

at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

at System.Windows.Forms.Application.Run(Form mainForm)

at testItemCard.Program.Main() in C:\Users\Tariq\Documents\Visual Studio 2008\Projects\testItemCard\testItemCard\Program.cs:line 18

at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)

at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart()

Then the report is diplayed propably and the parameters is passed to it but I want to avoid this exception

Please help me to figure out what is wron, I can send parameters to ReportDocument but when the ReportSource is a Web Service (asmx) It always raise.