using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using DBFactory;
namespace ControlSystem
{
    /// <summary>
    /// Creator:Richard.liu
    /// 设备故障查询
    /// </summary>
    public partial class FrmDeviceErrorLog : Form
    {
        private static FrmDeviceErrorLog _formInstance;

        public static FrmDeviceErrorLog FormInstance
        {
            get 

            {
                if (_formInstance == null)
                {
                    _formInstance = new FrmDeviceErrorLog();
                }
                return _formInstance; 
            }
            set { _formInstance = value; }
        }
        DBOperator dbo =CStaticClass.dbo;
        public FrmDeviceErrorLog()
        {
            InitializeComponent();
            this.dateTimePickerBegin.Value = DateTime.Today;
            this.dateTimePickerEnd.Value = DateTime.Today;
            _formInstance = this;//20101028
        }

        private void btQuery_Click(object sender, EventArgs e)
        {
            string searchstr = string.Empty;

            if (this.cbField.Text.Trim().Length != 0 && this.tbContent.Text.Trim().Length != 0)
            {
                searchstr = string.Format(" And {0} like '%{1}%'", cbField.Text.Trim(), tbContent.Text.Trim());
            }

            //string sql = "SELECT * FROM V_manage_task_bak WHERE (开始时间 >= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") + "') AND (开始时间 <= '" + dateTimePicker2.Value.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss") + "')";
            string sql = string.Format("SELECT * FROM V_Device_Error_log WHERE (发生时间 >= '{0}') AND (发生时间 <= '{1}' {2})", dateTimePickerBegin.Value.ToString("yyyy-MM-dd HH:mm:ss"), dateTimePickerEnd.Value.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"), searchstr);

            DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;

            this.dataGridView1.DataSource = dv;
        }

        private void btNullQuery_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("您确认要清空数据库内记录的所有设备的历史报警吗？", "操作提示：", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
            {
                return;
            }
            dbo.ExceSQL("delete from T_Base_Device_Error_Log");
        }

        private void FrmDeviceErrorLog_Load(object sender, EventArgs e)
        {
            DataView dvs = dbo.ExceSQL("Select name from syscolumns Where ID=OBJECT_ID('V_Device_Error_log') ORDER BY colorder").Tables[0].DefaultView;
            //cbstartposition
            cbField.ValueMember = "name";
            cbField.DisplayMember = "name";
            cbField.DataSource = dvs;
            cbField.SelectedIndex = -1;
        }
    }
}