private void EH_MI_ExportToExcel_Click(object sender, EventArgs e)
        {
            // 弹出对话框,并导出到Excel文件
            SaveFileDialog dlg = new SaveFileDialog();

            dlg.Filter = "Excel文件(*.xls)|*.xls|所有文件(*.*)|*.*";
            if (DialogResult.OK == dlg.ShowDialog())
            {
                // 保存到Excel表格中
                DataTable dataTable = new DataTable();
                //   dataTable.Columns.Add(CS_VoltageID, typeof(Int64));
                dataTable.Columns.Add(CS_StationID);
                dataTable.Columns.Add(CS_StationName, typeof(string));
                //dataTable.Columns.Add(CS_Voltage, typeof(string));
                dataTable.Columns.Add(CS_TimeCollected, typeof(DateTime));
                dataTable.Columns.Add(CS_TimeReceived, typeof(DateTime));
                dataTable.Columns.Add(CS_MsgType, typeof(string));
                dataTable.Columns.Add(CS_ChannelType, typeof(string));
                // 逐页读取数据
                for (int i = 0; i < m_iTotalPage; ++i)
                {
                    List <CEntityVoltage> tmpVoltages = m_proxyVoltage.GetPageData(i + 1);
                    foreach (CEntityVoltage voltage in tmpVoltages)
                    {
                        // 赋值到dataTable中去
                        DataRow row = dataTable.NewRow();
                        // row[CS_VoltageID] = voltage.VoltageID;
                        row[CS_StationID]   = voltage.StationID;
                        row[CS_StationName] = CDBDataMgr.Instance.GetStationById(voltage.StationID).StationName;
                        //row[CS_Voltage] = voltage.Voltage;
                        row[CS_TimeCollected] = voltage.TimeCollect;
                        row[CS_TimeReceived]  = voltage.TimeRecieved;
                        row[CS_MsgType]       = CEnumHelper.MessageTypeToUIStr(voltage.MessageType);
                        row[CS_ChannelType]   = CEnumHelper.ChannelTypeToUIStr(voltage.ChannelType);
                        dataTable.Rows.Add(row);
                    }
                }
                // 显示提示框
                CMessageBox box = new CMessageBox()
                {
                    MessageInfo = "正在导出表格,请稍候"
                };
                box.ShowDialog(this);
                if (CExcelExport.ExportToExcelWrapper(dataTable, dlg.FileName, "电压表"))
                {
                    //box.Invoke((Action)delegate { box.Close(); });
                    box.CloseDialog();
                    MessageBox.Show(string.Format("导出成功,保存在文件\"{0}\"中", dlg.FileName));
                }
                else
                {
                    //box.Invoke((Action)delegate { box.Close(); });
                    box.CloseDialog();
                    MessageBox.Show("导出失败");
                }
            }//end of if dialog okay
        }
Example #2
0
        public bool SetFilter(string iStationId, DateTime timeStart, DateTime timeEnd, bool TimeSelect)
        {
            bool result = false;

            m_annotation.Visible = false;
            base.ClearAllDatas();
            m_proxyVoltage.SetFilter(iStationId, timeStart, timeEnd, TimeSelect);
            if (-1 == m_proxyVoltage.GetPageCount())
            {
                // 查询失败
                // MessageBox.Show("数据库忙,查询失败,请稍后再试!");
                return(result);
            }
            else
            {
                int rowcount = m_proxyVoltage.GetRowCount();
                if (rowcount > CI_Chart_Max_Count)
                {
                    // 数据量太大,退出绘图
                    MessageBox.Show("查询结果集太大,自动退出绘图");
                    return(result);
                }
                // 并查询数据,显示第一页
                int iTotalPage = m_proxyVoltage.GetPageCount();
                for (int i = 0; i < iTotalPage; ++i)
                {
                    // 查询所有的数据
                    result = this.AddVoltages(m_proxyVoltage.GetPageData(i + 1));
                    if (result == false)
                    {
                        MessageBox.Show("数据超限,自动退出绘图");
                    }
                }
                return(result);
            }
        }
        // 保存当前的所有修改
        public override bool DoSave()
        {
            if (this.IsCurrentCellInEditMode)
            {
                //MessageBox.Show("请完成当前的编辑");
                this.EndEdit();
                //return false;
            }
            //base.DoSave();
            // 更新
            GetUpdatedData();
            if (m_listAdded.Count > 0 || m_listUpdated.Count > 0 || m_listDeleteVoltages_StationId.Count > 0)
            {
                bool result = true;
                // 新增
                if (m_listAdded.Count > 0)
                {
                    m_proxyVoltage.AddNewRows_1(m_listAdded);
                    m_listAdded.Clear();
                }
                // 修改
                if (m_listUpdated.Count > 0)
                {
                    result = result && m_proxyVoltage.UpdateRows(m_listUpdated);
                    m_listUpdated.Clear();
                }
                // 删除
                if (m_listDeleteVoltages_StationId.Count > 0)
                {
                    result = result && m_proxyVoltage.DeleteRows(m_listDeleteVoltages_StationId, m_listDeleteVoltages_StationDate);
                    m_listDeleteVoltage.Clear();
                }
                if (!result)
                {
                    // 保存失败
                    return(false);
                }
                // 重新刷新界面
                SetVoltage(m_proxyVoltage.GetPageData(base.m_iCurrentPage));
            }
            else
            {
            }

            return(true);
        }
 // 设置查询条件
 public bool SetFilter(string strStationId, DateTime timeStart, DateTime timeEnd, bool TimeSelect)
 {
     // 清空所有状态
     ClearAllState();
     m_strStaionId   = strStationId;
     m_dateTimeStart = timeStart;
     m_dateTimeEnd   = timeEnd;
     m_proxyVoltage.SetFilter(strStationId, timeStart, timeEnd, TimeSelect);
     if (-1 == m_proxyVoltage.GetPageCount())
     {
         MessageBox.Show("数据库忙,查询失败,请稍后再试!");
         return(false);
     }
     else
     {
         // 并查询数据,显示第一页
         this.OnMenuFirstPage(this, null);
         base.TotalPageCount = m_proxyVoltage.GetPageCount();
         base.TotalRowCount  = m_proxyVoltage.GetRowCount();
         SetVoltage(m_proxyVoltage.GetPageData(1));
         return(true);
     }
 }