加载报告失败 - c#中的Crystal Report

时间:2016-07-18 06:28:25

标签: c#-4.0 visual-studio-2012 crystal-reports


我在VS2012上的C#中有这个应用程序,我需要生成Crystal Report 13.0.x.此应用程序在过去2年左右一直运行良好。最近做了一些插件,然后给出了错误

  

加载报告失败

然而奇怪的是,在大约100次这个Crystal报告生成的一天中,它之间会发出错误。在整个应用程序必须退出后,它也可以正常工作。因此,我不能在我的最后复制错误。
这是我的代码:

   public partial class ChangeOrderList : Form
{
    ConnectionClass connectionclass = new ConnectionClass();
    NewOrderBL NObl = new NewOrderBL();
    DailySalesReportBL DSRbl = new DailySalesReportBL();
    public ChangeOrderList()
    {
        InitializeComponent();
    }
    private void ChangeOrderList_Load(object sender, EventArgs e)
    {
        /////////////////////////To count Lunch Buffet///////////////////

        DataTable dtlb = DSRbl.selectBuffet(DateTime.Today.Date.ToString(), DateTime.Today.Date.ToString());
        string date = dtlb.Rows[0][0].ToString();


        ////////////////////////////////////////////////////////////////
        try
        {

            string sqlqry = "Select KOTNo,TableNo,WaiterName,ItemCode,ItemName,Quantity,Status,Foodtype from tblOrderChange where KOTNo=@kotno and Quantity>'0.00' and (Category!='Appetizer' and Category!='Indian Breads' and Category!='Desserts' and Category!='Beverages' and Category!='Tandoori')";
            SqlCommand cmd = new SqlCommand(sqlqry, connectionclass.con);
            cmd.Parameters.AddWithValue("@kotno", NewOrderBL.KOTNo);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);


            DataSet1 ds = new DataSet1();
            adapter.Fill(ds, "tblOrderChange");
            if (ds.Tables["tblOrderChange"].Rows.Count == 0)
            {
                MessageBox.Show("No Data Found", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (deliverybl.order == "Delivery")
            {
                //PrintDelivery printorder = new PrintDelivery();
                ChangeOrderdelivery printorder = new ChangeOrderdelivery();
                printorder.SetDataSource(ds);
                crystalReportViewer1.ReportSource = printorder;
                System.Drawing.Printing.PrintDocument printDocument = new System.Drawing.Printing.PrintDocument();
                printorder.PrintOptions.PrinterName = printDocument.PrinterSettings.PrinterName;
                printorder.PrintOptions.PrinterName = "EPSON TM-U220 Receipt";
                printorder.PrintToPrinter(1, false, 0, 0);
            }
            else
            {
                crystalReportViewer1.RefreshReport();
                ParameterFields paramFields = new ParameterFields();
                ParameterField paramField = new ParameterField();
                ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
                paramField.Name = "LBqty";
                paramDiscreteValue.Value = date;
                paramField.CurrentValues.Add(paramDiscreteValue);
                paramFields.Add(paramField);

                PrintChangeOrderList printchangeorder = new PrintChangeOrderList();
                printchangeorder.SetDataSource(ds);
                printchangeorder.SetParameterValue("LBqty", date);
                crystalReportViewer1.ReportSource = printchangeorder;
                System.Drawing.Printing.PrintDocument printDocument = new System.Drawing.Printing.PrintDocument();
                printchangeorder.PrintOptions.PrinterName = printDocument.PrinterSettings.PrinterName;
                printchangeorder.PrintOptions.PrinterName = "EPSON TM-U220 Receipt";
                printchangeorder.PrintToPrinter(1, false, 0, 0);
            }



        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        finally { connectionclass.disconnect(); }
        onlinebl.crystalreport = "";

        this.DialogResult = DialogResult.OK;

    }

    private void btnExit_Click(object sender, EventArgs e)
    {
        onlinebl.crystalreport = "";

        this.DialogResult = DialogResult.OK;

    }

我一直在敲打我的脑袋。我搜索它的每个地方都说道路,我没有在任何地方使用路径,因此无法理解故障的位置。 如果您需要更多信息或代码,请告诉我。感谢

2 个答案:

答案 0 :(得分:0)

       Check your class:

<pre>
           ChangeOrderdelivery printorder = new ChangeOrderdelivery();
            printorder.SetDataSource(ds);
            crystalReportViewer1.ReportSource = printorder;


          this one has a report Path hidding i guess
          ChangeOrderdelivery printorder = new ChangeOrderdelivery();

  </pre>

答案 1 :(得分:0)

我刚删除了互联网临时文件,之后客户端还没有抱怨错误。所以如果它解决了这个问题,我会密切注意它