示例#1
0
        private void activeLoansToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                if (ReportService.GetInstance().CanLoadDocument())
                {
                    var reportName       = (sender as ToolStripMenuItem).Tag.ToString();
                    var report           = ReportService.GetInstance().GetReportByName(reportName);
                    var reportParamsForm = new ReportParamsForm(report.Params, report.Title);

                    if (reportParamsForm.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    var progressForm = new ReportLoadingProgressForm();
                    progressForm.Show();

                    var bw = new BackgroundWorker
                    {
                        WorkerReportsProgress      = true,
                        WorkerSupportsCancellation = true,
                    };
                    bw.DoWork += (obj, args) =>
                    {
                        ReportService.GetInstance().LoadReport(report);
                        bw.ReportProgress(100);
                    };
                    bw.RunWorkerCompleted += (obj, args) =>
                    {
                        progressForm.Close();
                        if (args.Error != null)
                        {
                            Fail(args.Error.Message);
                            return;
                        }
                        if (args.Cancelled)
                        {
                            return;
                        }

                        report.OpenCount++;
                        report.SaveOpenCount();
                        var reportViewer = new ReportViewerForm(report);
                        reportViewer.Show();
                    };
                    bw.RunWorkerAsync(report);
                }
                else
                {
                    var translationService = new TranslationService();
                    MessageBox.Show(translationService.Translate("Crystal reports haven't been installed."));
                }
            }
            catch (Exception ex)
            {
                Fail(ex.Message);
            }
        }
示例#2
0
        private void OnReportsClick(object sender, LinkLabelLinkClickedEventArgs e)
        {
            try
            {
                var reportName       = (sender as LinkLabel).Tag.ToString();
                var report           = ReportService.GetInstance().GetReportByName(reportName);
                var reportParamsForm = new ReportParamsForm(report.Params, report.Title);

                if (reportParamsForm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var progressForm = new ReportLoadingProgressForm();
                progressForm.Show();

                var bw = new BackgroundWorker
                {
                    WorkerReportsProgress      = true,
                    WorkerSupportsCancellation = true,
                };
                bw.DoWork += (obj, args) =>
                {
                    ReportService.GetInstance().LoadReport(report);
                    bw.ReportProgress(100);
                };
                bw.RunWorkerCompleted += (obj, args) =>
                {
                    progressForm.Close();
                    if (args.Error != null)
                    {
                        Fail(args.Error.Message);
                        return;
                    }
                    if (args.Cancelled)
                    {
                        return;
                    }

                    report.OpenCount++;
                    report.SaveOpenCount();
                    var reportViewer = new ReportViewerForm(report);
                    reportViewer.Show();
                };
                bw.RunWorkerAsync(report);
            }
            catch (Exception ex)
            {
                Fail(ex.Message);
            }
        }