Newer
Older
GHFX_REFACTOR / FrmLogManager.cs
wxn on 9 Nov 2016 6 KB 冗余代码整理
using System;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;

namespace Cyberpipe
{
    public partial class FrmLogManager : Office2007Form
    {
       
        public FrmLogManager()
        {
            InitializeComponent();            
        }
        /// <summary>
        /// 窗体初始化事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Frm_LogManager_Load(object sender, EventArgs e)
        {
            dataGridView1.ReadOnly = true;
            datetime1.Checked = false;
            datetime2.Checked = false;

            string sql = " select * from 日志管理 order by \"异常日期\" desc";
            DataTable table = OledbHelper.QueryTable(sql);
            
            if (table == null)
            {
                MessageBox.Show("数据库中没有日志信息!", "提示");
                return;
            }
            dataGridView1.DataSource = table;
        }
        /// <summary>
        /// 查询按钮事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Query_Click(object sender, EventArgs e)
        {
            string sql = " select * from 日志管理 ";
           
            if (datetime1.Checked || datetime2.Checked)
            {
                if (datetime1.Checked && datetime2.Checked == false)
                {
                    sql += " where \"异常日期\" >= to_date('" + datetime1.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd')";                    
                }
                else if (datetime2.Checked && datetime1.Checked == false)
                {
                    sql += " where  \"异常日期\" <= to_date('" + datetime2.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd')";                   
                }
                else
                {
                    sql += " where \"异常日期\" between to_date('" + datetime1.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and to_date('" + datetime2.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd')";
                }
            }            
            try
            {
                DataTable table = OledbHelper.QueryTable(sql);
                if (table != null)
                {
                    dataGridView1.DataSource = table;
                    dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
                }
                else
                {
                    MessageBox.Show("没有找到任何数据!", "提示");
                }
            }
            catch (Exception ex)
            {
                LogError.PublishError(ex);
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// 取消按钮事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Cancel_Click(object sender, EventArgs e)
        {
            Close();
        }

        /// <summary>
        /// 表格单元格双击事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            int row = e.RowIndex;
            if (row >= 0)
            {
                string s = "";
                for (int i = 0; i < dataGridView1.Columns.Count; i++)
                {
                    s += dataGridView1.Columns[i].HeaderText + ":";
                    s += dataGridView1.Rows[row].Cells[i].Value + "\r\n";
                }
                FrmLogDescription frm = new FrmLogDescription(s);
                frm.ShowDialog();
            }
        }
        /// <summary>
        /// 导出Excel按钮事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonXExportExcel_Click(object sender, EventArgs e)
        {
            if (dataGridView1.Rows.Count > 0)
            {
                SaveFileDialog dlg = new SaveFileDialog();
                dlg.Filter = "Excel files (*.xls)|*.xls";
                dlg.FilterIndex = 0;
                dlg.RestoreDirectory = true;               
                dlg.Title = "保存为Excel文件";
                dlg.FileName = "log" + "-" + DateTime.Now.ToString("yyyyMMdd") + ".xls";
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    Stream myStream;
                    myStream = dlg.OpenFile();
                    StreamWriter sw = new StreamWriter(myStream, Encoding.GetEncoding(-0));
                    string columnTitle = "";
                    try
                    {
                        sw.WriteLine("内容:Log" + "  日期:" + DateTime.Now.ToString("yyyy-MM-dd"));

                        //写入列标题   
                        for (int i = 0; i < dataGridView1.ColumnCount; i++)
                        {
                            if (i > 0)
                            {
                                columnTitle += "\t";
                            }
                            columnTitle += dataGridView1.Columns[i].HeaderText;
                        }
                        sw.WriteLine(columnTitle);

                        //写入列内容   
                        for (int j = 0; j < dataGridView1.Rows.Count; j++)
                        {
                            string columnValue = "";
                            for (int k = 0; k < dataGridView1.Columns.Count; k++)
                            {
                                if (k > 0)
                                {
                                    columnValue += "\t";
                                }
                                if (dataGridView1.Rows[j].Cells[k].Value == null)
                                    columnValue += "";
                                else
                                    columnValue += dataGridView1.Rows[j].Cells[k].Value.ToString().Trim();
                            }

                            sw.WriteLine(columnValue);
                        }
                        sw.Close();
                        myStream.Close();
                        if (MessageBox.Show("导出Excel文件成功!是否打开?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            Process.Start(dlg.FileName);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    finally
                    {
                        sw.Close();
                        myStream.Close();
                    }
                }
            }
        }
    }
}