Link to home
Start Free TrialLog in
Avatar of moosetracker
moosetracker

asked on

Crystal.. Problem with the Export

i have this error.
Object reference not set to an instance of an object.

Three things irksome about this error..

1) All was working fine I tweeked stuff not at all involved with this module or code and have an issue.
3) you can see I instatited a new instence in the first code line of the "try"
2) I could understand if this was a message at the first use of the field.. But it is not.. I load it, add parameter info to it.. Then it blows at the last line.. crReportDocument.Export();

public void CreateEnglishPdf(string ReportPathAndName, string PDFPathAndName, string UnitType,string UnitNo,
         string Name_SP_Table, DataSet ds,string rptType)
    {
        this.Name_SP_Table = Name_SP_Table;
        this.UnitType = UnitType;
        this.UnitNo = UnitNo;
        
        //Call the report from its stored directory
        try
        {
            //setStoredProcedure(Name_SP_Table);
            //Reportdataset = ds;
            //setDataset(UnitType,UnitNo);
            crReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            crReportDocument.Load(ReportPathAndName);

            //Apply logon information to the main report and all sub reports
            setLogon();
            //UnitType
            ParameterValues ParmValue = new ParameterValues();
            ParameterDiscreteValue ParamDiscreteValue = new ParameterDiscreteValue();
            ParamDiscreteValue.Value = UnitType;
            ParmValue.Add(ParamDiscreteValue);
            crReportDocument.DataDefinition.ParameterFields["@UnitType"].ApplyCurrentValues(ParmValue);
            //crReportDocument.SetParameterValue("@UnitType", UnitType); 
            //UnitNo
            ParameterValues ParmValue2 = new ParameterValues();
            ParameterDiscreteValue ParamDiscreteValue2 = new ParameterDiscreteValue();
            ParamDiscreteValue2.Value = UnitNo;
            ParmValue2.Add(ParamDiscreteValue2);
            crReportDocument.DataDefinition.ParameterFields["@UnitNo"].ApplyCurrentValues(ParmValue2);
            //crReportDocument.SetParameterValue("@UnitNo", UnitNo); 

            crDiskFileDestinationOptions = new DiskFileDestinationOptions();
            crDiskFileDestinationOptions.DiskFileName = PDFPathAndName;
            crExportOptions = crReportDocument.ExportOptions;
            crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
            crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
            if (rptType == "PDF")
            {
                crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
            }
            else if (rptType == "doc")
            {
                crExportOptions.ExportFormatType = ExportFormatType.WordForWindows;
            }

            crReportDocument.Export();

        }
        catch (Exception)
        {
            throw;
        }
        finally
        {
            crReportDocument.Close();
            crReportDocument.Dispose();
        }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Vikram Singh Saini
Vikram Singh Saini
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of moosetracker
moosetracker

ASKER

Found it, but thanks for the attempt.. And it was in the tweeking.
I altered the Stored Procedure that a CR was loading from.. this caused I don't know what, but the end of the SP had a Select statement that defined the Fields of the CR.. When I tested the SP in SQL all looked good, Select statement created the output. But CR no longer liked it. I went in and said update the Datasource, CR says "Datasource updated" no problem.. But, the table is now a no field table (which it doesn't even tell me I lost fields I ame using while updating..)  Just when you run it blows up, but not with a recognizable error..

Could never fix the SP and have the modifications I wanted (which involved no change to field layout, but more update queries to filter the data).. So I pushed the results to a table, and had crystal link to the table.