高级查询,自定义查询条件,自定义要显示的查询结果。

效果展示:

1.“查询模块“、”条件“的数据绑定。


在界面拖一个GridControl,ColumnEdit选择repositoryItemComboBox,FieldName设置ITEM_CLASS_CODE。

查询模块和条件的值存入XML文件。


        /// <summary>
        /// 读取配置文件的列表信息
        /// </summary>
        /// <param name="fileName"></param>
        public static DataTable LoadConfig(string fileName)
        {
            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
            doc.Load(fileName);
            System.Xml.XmlElement root = (System.Xml.XmlElement)doc.SelectSingleNode("config");

            DataTable nodeTbl = new DataTable();
            nodeTbl.Columns.Add("ITEM_CLASS_CODE", typeof(string));
            nodeTbl.Columns.Add("ITEM_CODE", typeof(string));
            nodeTbl.Columns.Add("ITEM_NAME", typeof(string));
            nodeTbl.Columns.Add("CANINQUIRE", typeof(string));
            nodeTbl.Columns.Add("CANSHOW", typeof(string));

            foreach (System.Xml.XmlNode node in root.ChildNodes)
            {
                if (node.GetType() == typeof(System.Xml.XmlElement))
                {
                    DataRow parentRow = nodeTbl.NewRow();
                    parentRow["ITEM_CLASS_CODE"] = 0;
                    parentRow["ITEM_CODE"] = node.Attributes["value"].Value;
                    parentRow["ITEM_NAME"] = node.Attributes["name"].Value;
                    parentRow["CANINQUIRE"] = node.Attributes["canInquire"].Value;
                    parentRow["CANSHOW"] = node.Attributes["canShow"].Value;
                    nodeTbl.Rows.Add(parentRow);
                    string itemClassCode = string.Empty;
                    itemClassCode = parentRow["ITEM_CODE"].ToString();

                    foreach (System.Xml.XmlNode childNode in node.ChildNodes)
                    {
                        if (childNode.GetType() == typeof(System.Xml.XmlElement))
                        {
                            DataRow childRow = nodeTbl.NewRow();
                            childRow["ITEM_CLASS_CODE"] = itemClassCode;
                            childRow["ITEM_CODE"] = childNode.Attributes["value"].Value;
                            childRow["ITEM_NAME"] = childNode.Attributes["name"].Value;
                            childRow["CANINQUIRE"] = childNode.Attributes["canInquire"].Value;
                            childRow["CANSHOW"] = childNode.Attributes["canShow"].Value;
                            nodeTbl.Rows.Add(childRow);
                        }
                    }
                }
            }
            return nodeTbl;
        }
        DataTable _configInfo = XrfDataSel.LoadConfig(@"xml\InquiryConfig.xml");
        /// <summary>
        /// 
        /// </summary>
        /// <param name="configInfo"></param>
        public void LoadCtrlCustomInquire()
        {
            DataRow[] rows = null;
            foreach (DataRow row in _configInfo.Rows)
            {
                rows = _configInfo.Select("ITEM_CLASS_CODE='" + 0 + "'");
            }
            if (rows.Length > 0)
            {
                for (int i = 0; i < rows.Length; i++)
                {
                    // 添加查询模块
                    repositoryItemComboBox1.Items.Add(rows[i]["ITEM_NAME"]);
                }
            }


            _temp.Columns.Add("ITEM_CLASS_CODE");
            _temp.Columns.Add("ITEM_CODE");
            _temp.Columns.Add("SIGN");
            _temp.Columns.Add("VALUE");
            _temp.Rows.Add();
            gridControl1.DataSource = _temp;
        }


由于条件根据不同的模块有不同的树级别,条件的ColumnEdit选择repositoryItemPopupContainerEdit1,FieldName设置ITEM_CODE。PopupControl选择popupContainerControl1

        /// <summary>
        /// 根据模块名称绑定条件
        /// </summary>
        /// <param name="nodes">模块名称</param>
        private void AddConditionNodes(string nodes)
        {
            //treeList1.DataSource = null;
            if (nodes == string.Empty || nodes == "请选择")
            {
                treeList1.DataSource = null;
            }
            else if (nodes == "患病情况")
            {
                DataTable illListInfo = SetTabColumnsName();
                treeList1.DataSource = illListInfo;
            }
            else if (nodes == "生化检查")
            {
                DataTable nodeTbl = AddLaboratoryNodes();
                treeList1.DataSource = nodeTbl;
            }
            else if (nodes == "膳食调查")
            {
                DataTable nutritionNodes = AddNutiitionNodes();
                treeList1.DataSource = nutritionNodes;
            }
            else
            {
                AddNodes(nodes);
            }
        }
        /// <summary>
        /// 绑定查询子项目
        /// </summary>
        private void AddNodes(string nodes)
        {
            // 获取编号
            DataRow[] rows = _configInfo.Select("ITEM_NAME='" + nodes + "'");
            string itemCode = string.Empty;
            foreach (DataRow row in rows)
            {
                if (rows.Length > 0)
                {
                    itemCode = rows[0]["ITEM_CODE"].ToString();
                }
            }

            // 根据编号查找,为表basicInfo赋值
            DataTable basicInfo = _configInfo.Clone();
            rows = _configInfo.Select("ITEM_CLASS_CODE ='" + itemCode + "'");
            foreach (DataRow row in rows)
            {
                basicInfo.ImportRow(row);
            }

            // 将basicInfo表绑定treeList1
            treeList1.DataSource = basicInfo;
        }


2.查询

思路: 将查询条件存入一张表,每一行循环查询一次。

由于是多表查询,这里是在基本信息查询结果的条件下,根据每张表的病人ID号和门诊日期来添加列,即所有查询结果表的拼接。


        private void btnInquire_Click(object sender, EventArgs e)
        {
            base.StartTransation();
            try
            {
                // 1.获取查询条件
                DataTable tempCode = new DataTable();
                tempCode = _temp.Copy();
                foreach (DataRow row in tempCode.Rows)
                {
                    string itemClassCode = row["ITEM_CLASS_CODE"].ToString();
                    string itemCode = row["ITEM_CODE"].ToString();

                    foreach (DataRow rows in _configInfo.Rows)
                    {
                        if (itemClassCode == rows["ITEM_NAME"].ToString())
                        {
                            row["ITEM_CLASS_CODE"] = rows["ITEM_CODE"].ToString();
                        }
                        if (itemCode == rows["ITEM_NAME"].ToString())
                        {
                            row["ITEM_CODE"] = rows["ITEM_CODE"].ToString();
                        }
                    }

                    if (itemClassCode == "生化检查")
                    {
                        DataTable nodeTbl = AddLaboratoryNodes();
                        foreach (DataRow rows in nodeTbl.Rows)
                        {
                            if (itemCode == rows["ITEM_NAME"].ToString())
                            {
                                row["ITEM_CODE"] = rows["ITEM_CODE"].ToString();
                            }
                        }
                    }
                }
                DataTable inquireTbl = tempCode;
                //DataTable inquireTbl = _tempCode;
                // 2.整理查询条件 按模块排序
                inquireTbl = CopyDataTable(inquireTbl, string.Empty, "ITEM_CLASS_CODE, ITEM_CODE");
                // 3.循环遍历查询条件,留下符合条件的记录
                DataTable result = new DataTable();
                string basicCondition = string.Empty;
                string phyCondition = string.Empty;
                string biochCondition = string.Empty;
                string disCondition = string.Empty;
                string illCondition = string.Empty;

                #region
                foreach (DataRow row in inquireTbl.Rows)
                {
                    if (row["ITEM_CLASS_CODE"].ToString() == "001")
                    {
                        if (row["ITEM_CODE"].ToString() == "DIAGNOSIS")
                        {
                            // 患病情况
                            illCondition = strSQLCondition(illCondition, row);
                        }
                        else
                        {
                            // 基本信息条件
                            basicCondition = strSQLCondition(basicCondition, row);
                        }
                    }
                    else if (row["ITEM_CLASS_CODE"].ToString() == "002")
                    {
                        // 体格检查
                        phyCondition = strSQLCondition(phyCondition, row);
                    }
                    else if (row["ITEM_CLASS_CODE"].ToString() == "003")
                    {
                        // 生化检查
                        biochCondition = strSQLCondition(biochCondition, row);
                    }
                    else if (row["ITEM_CLASS_CODE"].ToString() == "004")
                    {
                        // 膳食调查
                        disCondition = strSQLCondition(disCondition, row);
                    }
                }
                #endregion

                // 基本信息条件
                DataTable basicInfo = null;
                if (basicCondition != string.Empty)
                {
                    basicInfo = CommunityHelperM.GetPersonAndVisit(" AND " + basicCondition);
                }
                else
                {
                    basicInfo = CommunityHelperM.GetPersonAndVisit(basicCondition);
                }
                if (basicInfo != null)
                {
                    foreach (DataColumn column in basicInfo.Columns)
                    {
                        if (!result.Columns.Contains(column.ColumnName))
                        {
                            result.Columns.Add(column.ColumnName, typeof(string));
                        }
                    }
                    foreach (DataRow row in basicInfo.Rows)
                    {
                        DataRow newRow = result.NewRow();
                        foreach (DataColumn column in basicInfo.Columns)
                        {
                            newRow[column.ColumnName] = row[column];
                        }
                        result.Rows.Add(newRow);
                    }
                }

                // 体格检查
                DataTable physicalInfo = null;
                if (phyCondition != string.Empty)
                {
                    physicalInfo = CommunityHelperM.GetPhysicalExam(" AND " + phyCondition);
                }
                else
                {
                    physicalInfo = CommunityHelperM.GetPhysicalExam(phyCondition);
                }
                if (physicalInfo != null)
                {
                    foreach (DataColumn column in physicalInfo.Columns)
                    {
                        if (!result.Columns.Contains(column.ColumnName))
                        {
                            result.Columns.Add(column.ColumnName, typeof(string));
                        }
                    }
                    for (int rowIndex = result.Rows.Count - 1; rowIndex >= 0; rowIndex--)
                    {
                        DataRow resultRow = result.Rows[rowIndex];
                        DataRow row = null;
                        DataRow[] drs = physicalInfo.Select("PATIENT_ID='" + resultRow["PERSON_ID"].ToString() + "' AND LOG_DATE='" + resultRow["IN_HOS_DATE"].ToString() + "'");

                        if (drs.Length > 0)
                        {
                            row = drs[0];
                            foreach (DataColumn column in physicalInfo.Columns)
                            {
                                resultRow[column.ColumnName] = row[column];
                            }
                        }
                        else
                        {
                            if (phyCondition != string.Empty)
                            {
                                result.Rows.RemoveAt(rowIndex);
                            }
                        }
                    }
                }

                // 生化检查
                DataTable biochInfo = null;
                if (biochCondition != string.Empty)
                {
                    biochInfo = CommunityHelperM.GetLaboratoryResult(" AND " + biochCondition);
                }
                else
                {
                    biochInfo = CommunityHelperM.GetLaboratoryResult(biochCondition);
                }
                if (biochInfo != null)
                {
                    for (int rowIndex = result.Rows.Count - 1; rowIndex >= 0; rowIndex--)
                    {
                        DataRow resultRow = result.Rows[rowIndex];
                        DataRow row = null;
                        DataRow[] drs = biochInfo.Select("PERSON_ID='" + resultRow["PERSON_ID"].ToString() + "' AND CHECK_DATE='" + resultRow["IN_HOS_DATE"].ToString() + "'");

                        if (drs.Length > 0)
                        {
                            row = drs[0];
                            if (!result.Columns.Contains(row["ITEM_NAME"].ToString()))
                            {
                                result.Columns.Add(row["ITEM_NAME"].ToString(), typeof(string));
                            }
                            resultRow[row["ITEM_NAME"].ToString()] = row["RESULT"];
                        }
                        else
                        {
                            if (biochCondition != string.Empty)
                            {
                                result.Rows.RemoveAt(rowIndex);
                            }
                        }
                    }
                }

                // 膳食调查
                DataTable disInfo = null;
                if (disCondition != string.Empty)
                {
                    disInfo = CommunityHelperInquiry.GetCtrlDietarySurvey(" AND " + disCondition);
                }
                else
                {
                    disInfo = CommunityHelperInquiry.GetCtrlDietarySurvey(disCondition);
                }
                if (disInfo != null)
                {
                    foreach (DataColumn column in disInfo.Columns)
                    {
                        if (!result.Columns.Contains(column.ColumnName))
                        {
                            result.Columns.Add(column.ColumnName, typeof(string));
                        }
                    }
                    for (int rowIndex = result.Rows.Count - 1; rowIndex >= 0; rowIndex--)
                    {
                        DataRow resultRow = result.Rows[rowIndex];
                        DataRow row = null;
                        DataRow[] drs = disInfo.Select("PERSON_ID='" + resultRow["PERSON_ID"].ToString() + "' AND ILL_MENU_DATE='" + resultRow["IN_HOS_DATE"].ToString() + "'");

                        if (drs.Length > 0)
                        {
                            row = drs[0];
                            foreach (DataColumn column in disInfo.Columns)
                            {
                                resultRow[column.ColumnName] = row[column];
                            }
                        }
                        else
                        {
                            if (disCondition != string.Empty)
                            {
                                result.Rows.RemoveAt(rowIndex);
                            }
                        }
                    }
                }

                // 患病情况
                DataTable illInfo = null;
                if (illCondition != string.Empty)
                {
                    illInfo = CommunityHelperM.GetDiagnosisMgt(" AND " + illCondition);
                }
                else
                {
                    illInfo = CommunityHelperM.GetDiagnosisMgt(illCondition);
                }
                if (illInfo != null)
                {
                    foreach (DataColumn column in illInfo.Columns)
                    {
                        if (!result.Columns.Contains(column.ColumnName))
                        {
                            result.Columns.Add(column.ColumnName, typeof(string));
                        }
                    }
                    for (int rowIndex = result.Rows.Count - 1; rowIndex >= 0; rowIndex--)
                    {
                        DataRow resultRow = result.Rows[rowIndex];
                        DataRow row = null;
                        DataRow[] drs = illInfo.Select("PERSON_ID='" + resultRow["PERSON_ID"].ToString() + "' AND DIAGNOSIS_DATE='" + resultRow["IN_HOS_DATE"].ToString() + "'");

                        if (drs.Length > 0)
                        {
                            row = drs[0];
                            foreach (DataColumn column in illInfo.Columns)
                            {
                                resultRow[column.ColumnName] = row[column];
                            }
                        }
                        else
                        {
                            if (illCondition != string.Empty)
                            {
                                result.Rows.RemoveAt(rowIndex);
                            }
                        }
                    }
                }

                // 列名汉化、列显示
                for (int i = result.Columns.Count - 1; i >= 0; i--)
                {
                    string columnCode = result.Columns[i].ColumnName;

                    DataRow[] codeRowTemp = XrfDataSel.LoadConfig(@"xml\InquiryConfig.xml").Select(" ITEM_CODE = '" + columnCode + "'");
                    if (codeRowTemp.Length > 0)
                    {
                        if (codeRowTemp[0]["CANSHOW"].ToString() == "1")
                        {
                            string columnsName = codeRowTemp[0]["ITEM_NAME"].ToString();
                            if (!result.Columns.Contains(columnsName))
                            {
                                result.Columns[i].ColumnName = columnsName;
                            }
                            else
                            {
                            }
                        }
                        else
                        {
                            if (result.Columns.Contains(columnCode))
                            {
                                result.Columns.Remove(result.Columns[columnCode]);
                            }
                        }
                    }
                    else
                    {
                        if (result.Columns.Contains(columnCode))
                        {
                            result.Columns.Remove(result.Columns[columnCode]);
                        }
                    }
                }

                DataTable source = new DataTable();
                foreach (DataRow row in _configInfo.Rows)
                {
                    string columnName = row["ITEM_NAME"].ToString();
                    if (result.Columns.Contains(columnName) && !source.Columns.Contains(columnName))
                    {
                        DataColumn column = result.Columns[columnName];
                        source.Columns.Add(columnName, column.DataType);
                    }
                }

                int rowIndexNum=0;
                foreach (DataRow row in result.Rows)
                {
                    source.ImportRow(row);
                    if (source.Rows[rowIndexNum]["性别"].ToString() == "0")
                    {
                        source.Rows[rowIndexNum]["性别"] = "男";
                    }
                    else 
                    {
                        source.Rows[rowIndexNum]["性别"] = "女";
                    }
                    rowIndexNum++;
                }

                gridView2.Columns.Clear();
                gridControl2.DataSource = source;
            }
            catch (Exception ex)
            {
                MessageHelper.Show(ex.Message);
            }
            base.EndTransation();
	}


条件与值关系判断:

        /// <summary>
        /// 返回条件字符串
        /// </summary>
        /// <param name="strCondition"></param>
        /// <param name="row"></param>
        /// <returns></returns>
        private string strSQLCondition(string strCondition, DataRow row)
        {
            if (strCondition != string.Empty) strCondition += " AND ";
            string values = "'" + row["VALUE"].ToString() + "'";
            if (row["ITEM_CLASS_CODE"].ToString() == "003")
            {
                strCondition += " ITEM_CODE ='" + row["ITEM_CODE"].ToString() + "' AND RESULT ";
            }
            else if (row["ITEM_CLASS_CODE"].ToString() == "004")
            {
                strCondition += " CAST(in1." + row["ITEM_CODE"].ToString() + " AS DECIMAL)";
                //values = row["VALUE"].ToString() ;
            }
            else
            {
                strCondition += row["ITEM_CODE"].ToString();
            }

            // 患病情况
            if (row["ITEM_CODE"].ToString() != "DIAGNOSIS")
            {
                values = row["VALUE"].ToString();
            }

            // 性别
            if (row["ITEM_CODE"].ToString() == "SEX")
            {
                if (row["VALUE"].ToString() == "男")
                {
                    values = "'0'";
                }
                else
                {
                    values = "'1'";
                }
            }
            switch (row["SIGN"].ToString())
            {
                case "大于":
                    strCondition += ">" + row["VALUE"].ToString();
                    break;
                case "小于":
                    strCondition += "<" + row["VALUE"].ToString();
                    break;
                case "大于等于":
                    strCondition += ">=" + row["VALUE"].ToString();
                    break;
                case "小于等于":
                    strCondition += "<=" + row["VALUE"].ToString();
                    break;
                case "等于":
                    strCondition += "=" + values;
                    break;
                case "包含":
                    strCondition += " LIKE ";
                    strCondition += "'%" + row["VALUE"].ToString() + "%'";
                    break;
            }
            return strCondition;
        }




3.点击“添加条件”能自动添加一行。点击“删除条件”能删除当前选中行。

    _temp.Rows.Add();

            if (_temp.Rows.Count > 1)
            {
                _temp.Rows.RemoveAt(_selectedIndex);
            }


4.显示设置

思路: 点击显示设置时,判断字段CANSHOW的值,来确定勾选CheckedListBox的哪些项。

获取选中的项

设置时,每个CheckedListBox项循环判断是否选中,选中则设置XML中的CANSHOW为1,否则为0


        /// <summary>
        /// 绑定ListBox项以及勾选内容
        /// </summary>
        /// <param name="chkLis"></param>
        /// <param name="itemClassCode"></param>
        private void LoadCheckList(CheckedListBoxControl chkLis, string itemClassCode)
        {
            // 基本信息表
            DataRow[] chkRows = XrfDataSel.LoadConfig(@"xml\InquiryConfig.xml").Select("ITEM_CLASS_CODE='" + itemClassCode + "'");
            DataTable chkInfo = XrfDataSel.LoadConfig(@"xml\InquiryConfig.xml").Clone();
            foreach (DataRow row in chkRows)
            {
                chkInfo.Rows.Add(row.ItemArray);
            }
            chkLis.DisplayMember = "ITEM_NAME";
            chkLis.ValueMember = "ITEM_CODE";
            chkLis.DataSource = chkInfo;

            for (int itemIndex = 0; itemIndex < chkLis.ItemCount; itemIndex++)
            {
                if (chkInfo.Rows[itemIndex]["CANSHOW"].ToString() == "1")
                {
                    chkLis.SetItemChecked(itemIndex, true);
                }
                else
                {
                    chkLis.SetItemChecked(itemIndex, false);
                }
            }
        }



        /// <summary>
        /// 获取选中项
        /// </summary>
        /// <param name="chkLis"></param>
        /// <returns></returns>
        private string[] SetNodesShow(CheckedListBoxControl chkLis)
        {
            string[] drs = new string[chkLis.ItemCount];
            int i = 0;
            foreach (DataRowView item in chkLis.CheckedItems)
            {
                drs[i] = item.Row["ITEM_CODE"].ToString();
                i++;
            }
            return drs;
        }

        /// <summary>
        /// 保存显示设置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton4_Click(object sender, EventArgs e)
        {
            string[] temp = null;
            string[] basic = SetNodesShow(checkedListBoxControl1);
            string[] phy = SetNodesShow(checkedListBoxControl2);
            string[] bioch = SetNodesShow(checkedListBoxControl3);
            string[] dis = SetNodesShow(checkedListBoxControl4);

            string fileName = @"xml\InquiryConfig.xml";
            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
            doc.Load(fileName);
            System.Xml.XmlElement root = (System.Xml.XmlElement)doc.SelectSingleNode("config");
            foreach (System.Xml.XmlNode node in root.ChildNodes)
            {
                if (node.GetType() == typeof(System.Xml.XmlElement))
                {
                    if (node.Attributes["value"].Value == "001")
                    {
                        temp = basic;
                    }
                    if (node.Attributes["value"].Value == "002")
                    {
                        temp = phy;
                    }
                    if (node.Attributes["value"].Value == "003")
                    {
                        temp = bioch;
                    }
                    if (node.Attributes["value"].Value == "004")
                    {
                        temp = dis;
                    }
                    foreach (System.Xml.XmlNode childNode in node.ChildNodes)
                    {
                        if (childNode.GetType() == typeof(System.Xml.XmlElement))
                        {
                            childNode.Attributes["canShow"].Value = "0";
                            for (int j = 0; j < temp.Length; j++)
                            {
                                if (temp[j] != null)
                                {
                                    if (temp[j].ToString() == childNode.Attributes["value"].Value)
                                    {
                                        childNode.Attributes["canShow"].Value = "1";
                                    }
                                }
                            }
                        }
                    }
                }
            }
            doc.Save(fileName);
            popupContainerEdit1.ClosePopup();
            MessageHelper.Show("设置成功");
        }


5.数据导出

思路: 把查询结果的整个表导出即可。


        #region //数据导出
        private void OpenFile(string fileName)
        {
            if (XtraMessageBox.Show("您是否要打开此文件?", "Export To...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                try
                {
                    System.Diagnostics.Process process = new System.Diagnostics.Process();
                    process.StartInfo.FileName = fileName;
                    process.StartInfo.Verb = "Open";
                    process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
                    process.Start();
                }
                catch
                {
                    DevExpress.XtraEditors.XtraMessageBox.Show(this, "Cannot find an application on your system suitable for openning the file with exported data.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            progressBarControl1.Position = 0;
        }
        private void ExportTo(IExportProvider provider)
        {
            Cursor currentCursor = Cursor.Current;
            Cursor.Current = Cursors.WaitCursor;

            this.FindForm().Refresh();
            BaseExportLink link = gridView2.CreateExportLink(provider);
            (link as GridViewExportLink).ExpandAll = false;
            link.Progress += new DevExpress.XtraGrid.Export.ProgressEventHandler(Export_Progress);
            link.ExportTo(true);
            provider.Dispose();
            link.Progress -= new DevExpress.XtraGrid.Export.ProgressEventHandler(Export_Progress);

            Cursor.Current = currentCursor;
        }
        private void ExportToEx(String filename, string ext, BaseView exportView)
        {
            Cursor currentCursor = Cursor.Current;
            Cursor.Current = Cursors.WaitCursor;
            DevExpress.XtraPrinting.IPrintingSystem ps = DevExpress.XtraPrinting.PrintHelper.GetCurrentPS();
            ps.AfterChange += new DevExpress.XtraPrinting.ChangeEventHandler(Export_ProgressEx);
            if (ext == "xls") exportView.ExportToXls(filename);
            if (ext == "xlsx") exportView.ExportToXlsx(filename);
            ps.AfterChange -= new DevExpress.XtraPrinting.ChangeEventHandler(Export_ProgressEx);
            Cursor.Current = currentCursor;
        }
        void Export_Progress(object sender, DevExpress.XtraGrid.Export.ProgressEventArgs e)
        {
            if (e.Phase == DevExpress.XtraGrid.Export.ExportPhase.Link)
            {
                SetPosition(e.Position);
            }
        }
        void Export_ProgressEx(object sender, DevExpress.XtraPrinting.ChangeEventArgs e)
        {
            if (e.EventName == DevExpress.XtraPrinting.SR.ProgressPositionChanged)
            {
                SetPosition((int)e.ValueOf(DevExpress.XtraPrinting.SR.ProgressPosition));
            }
        }
        void SetPosition(int pos)
        {
            progressBarControl1.Position = pos;
            this.Update();
        }
        private string ShowSaveFileDialog(string title, string filter)
        {
            SaveFileDialog dlg = new SaveFileDialog();
            string name = Application.ProductName;
            int n = name.LastIndexOf(".") + 1;
            if (n > 0) name = name.Substring(n, name.Length - n);
            dlg.Title = "Export To " + title;
            dlg.FileName = name;
            dlg.Filter = filter;
            if (dlg.ShowDialog() == DialogResult.OK) return dlg.FileName;
            return "";
        }
        #endregion
        /// <summary>
        /// 数据导出
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton5_Click_1(object sender, EventArgs e)
        {
            #region //
            string fileName = string.Empty;
            string strExt = string.Empty;
            fileName = ShowSaveFileDialog("Microsoft Excel Document", "Microsoft Excel|*.xls");
            strExt = "xls";

            if (fileName == string.Empty) return;
            panelControl2.Visible = true;
            if (strExt.Equals("xml"))
            {
                ExportTo(new ExportXmlProvider(fileName));
                OpenFile(fileName);
            }
            else
            {
                ExportToEx(fileName, strExt, gridView2);
                OpenFile(fileName);
            }
            panelControl2.Visible = false;
            #endregion
        }


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值