DoExport

protected virtual void OnPreExport(ExportEventArgs e)
        {
            DataGridView dgv = null;
            Control control;
            for (control = this.ActiveControl; (control != null) && !object.ReferenceEquals(this, control); control = control.Parent)
            {
                if (control is DataGridView)
                {
                    dgv = control as DataGridView;
                    break;
                }
            }
            if (dgv == null)
            {
                foreach (Control ctl in this.Controls)
                {
                    if (ctl is DataGridView)
                    {
                        dgv = ctl as DataGridView;
                        break;
                    }
                }
            }

            if (dgv == null)
            {
                e.Cancel = true;
            }
        }

        protected virtual void OnExport(string fileName)
        {
            DataGridView dgv = null;
            Control control;
            for (control = this.ActiveControl; (control != null) && !object.ReferenceEquals(this, control); control = control.Parent)
            {
                if (control is DataGridView)
                {
                    dgv = control as DataGridView;
                    break;
                }
            }
            if (dgv == null)
            {
                foreach (Control ctl in this.Controls)
                {
                    if (ctl is DataGridView)
                    {
                        dgv = ctl as DataGridView;
                        break;
                    }
                }
            }

            if (dgv != null)
            {
                this.DoExportDataGridView(dgv, fileName);
                return;
            }

            //if (this.DataBlockSet.DataSource != null && this.DataBlockSet.DataSource.Tables.Count > 0)
            //{
            //    this.DoExportDataTable(this.DataBlockSet.DataSource.Tables[0], fileName);
            //}
        }

        protected void DoExport()
        {
            try
            {
                ExportEventArgs e = new ExportEventArgs("Excel files (*.xls)|*.xls|All Files (*.*)|*.*");
                this.OnPreExport(e);
                if (!e.Cancel && !string.IsNullOrEmpty(e.Filter))
                {
                    OpenFileDialog openFileDialog = new OpenFileDialog();
                    openFileDialog.CheckFileExists =false;
                    openFileDialog.ShowReadOnly = false;
                    openFileDialog.Title = "Save Output As";
                    openFileDialog.Filter = e.Filter;
                    openFileDialog.DefaultExt = "xls";

                    DialogResult dr = openFileDialog.ShowDialog(this);
                    if (dr == DialogResult.OK)
                    {
                        this.OnExport(openFileDialog.FileName);
                    }
                }
            }
            catch (Exception ex)
            {
                this.ShowError(ex);
            }
        }

        protected virtual void DoExportDataTable(DataTable datatable, string fileName)
        {
            if (datatable != null)
            {
                DtsWizard.HtmlDtsProvider htmlDts = new DtsWizard.HtmlDtsProvider();
                htmlDts.FilePath = fileName;
                htmlDts.Export(datatable);
            }
        }

        protected virtual void DoExportDataGridView(DataGridView dgv, string fileName)
        {
            if (dgv != null)
            {
                DtsWizard.DataGridViewDtsProvider dts = new DtsWizard.DataGridViewDtsProvider();
                dts.FilePath = fileName;
                dts.Export(dgv);
            }
        }

posted @ 2010-06-15 17:56  leslie116  阅读(212)  评论(0编辑  收藏  举报