Ошибка загрузки отчета - Crystal Report в c #

c#-4.0 visual-studio-2012 crystal-reports

471 просмотра

2 ответа

180 Репутация автора


У меня есть это приложение на C # на VS2012, в котором мне нужно создать 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;

    }

Я долго бился головой. Всякий раз, когда я ищу, это говорит о пути, и я нигде не использую путь, поэтому не могу понять, где ошибка. Если вам нужна дополнительная информация или код, пожалуйста, дайте мне знать. Спасибо

Автор: mark Источник Размещён: 18.07.2016 06:28

Ответы (2)


0 плюса

3569 Репутация автора

       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>
Автор: Vijunav Vastivch Размещён: 18.07.2016 06:51

0 плюса

180 Репутация автора

Я только что удалил временные интернет-файлы и после этого клиент еще не пожаловался на ошибку. Так что я слежу за этим, если это решит проблему

Автор: mark Размещён: 04.08.2016 04:28
Вопросы из категории :
32x32