DevExpress Report Preview Show ProgressBar

来源:互联网 发布:微信for windows phone 编辑:程序博客网 时间:2024/05/16 15:36

       最近在用DevExpress Report做报表,根据一系列查询条件,然后Show报表。

       今天在测试的过程中发现,如果资料量多的话,在报表呈现出来之前,画面上没有任何提示。这样对于使用者来说是不好的,应该提供一下报表显示的进度。

       在网上找到了这篇文章:How to: Show a Progress Bar while a Document Is Being Generated.根据这篇文章,我做了些许改动。

       定义了一个Report的类。如下:

  class Report    {        #region ShowPreview        /// <summary>        /// ShowPreview报表的时候,显示进度条。        /// </summary>        /// <param name="report"></param>        public static void ShowPreview(XtraReport report)        {            // 建立一个Form用来显示progressBar            XtraForm form = new XtraForm();            form.FormBorderStyle = FormBorderStyle.None;            form.Size = new System.Drawing.Size(300, 25);            form.ShowInTaskbar = false;            form.StartPosition = FormStartPosition.CenterScreen;            form.TopMost = true;             //建立一个ProgressBar , ReflectorBar.            ProgressBarControl progressBar = new ProgressBarControl();            progressBar.Properties.PercentView = true;            ReflectorBar reflectorBar = new ReflectorBar(progressBar);             // 把progressBar加入Form并Show。            form.Controls.Add(progressBar);            progressBar.Dock = DockStyle.Fill;            form.Show();             try            {                report.PrintingSystem.ProgressReflector = reflectorBar;                report.CreateDocument();            }            finally            {                report.PrintingSystem.ResetProgressReflector();                form.Close();                form.Dispose();            }             report.ShowPreviewDialog();        }        #endregion    }

调用:

RptLeaves  report=newRptLeaves();

Report.ShowPreview(report);