Newer
Older
GHFX_REFACTOR / FrmEquipmentManage.cs
using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using DevComponents.DotNetBar;

namespace Cyberpipe
{
    public partial class FrmEquipmentManage : Office2007Form
    {
        int maxPageIndex = 20;
        public static bool IS_OPEN = false;
        int rows = 0;

        public FrmEquipmentManage()
        {
            InitializeComponent();
            winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged);
            this.winGridViewPager1.OnAddNew += new EventHandler(winGridViewPager1_OnAddNew); //右键查看日志
            this.winGridViewPager1.OnEditSelected += new EventHandler(winGridViewPager1_OnEditSelected);//编辑
            this.winGridViewPager1.OnDeleteSelected += new EventHandler(winGridViewPager1_OnDeleteSelected);//删除

            this.winGridViewPager1.OnStartExport += new EventHandler(pager1_OnStartExport);
            this.winGridViewPager1.OnEndExport += new EventHandler(pager1_OnEndExport);

            winGridViewPager1.dataGridView1.MultiSelect = false;

        }

        private void FrmEquipmentManage_Load(object sender, EventArgs e)
        {
            try
            {
                LoadData();
                initForm();
                IS_OPEN = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("窗体加载失败:" + ex.ToString(), "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                ex.ToString();
            }
        }

        private void initForm()
        {
            /*
            if (Utility.isNeedLogin && !Utility.userRole.Contains("探测仪新增"))
            {
                btnAddDev.Visible = false;
            }
            if (Utility.isNeedLogin && !Utility.userRole.Contains("探测仪删除"))
            {
                winGridViewPager1.dataGridView1.ContextMenuStrip.Items[3].Visible = false;
            }
            if (Utility.isNeedLogin && !Utility.userRole.Contains("探测仪编辑"))
            {
                winGridViewPager1.dataGridView1.ContextMenuStrip.Items[2].Visible = false;
            }
             * */
        }

        /// <summary>
        /// 初始化分页表格
        /// </summary>
        private void initlizeDatagrid()
        {

            //控制表格显示的列,以及每一列要显示的列名
            this.winGridViewPager1.Dock = DockStyle.Fill;
            this.winGridViewPager1.dataGridView1.Dock = DockStyle.Fill;
            this.winGridViewPager1.AddColumnAlias("设备描述", "设备描述");
            this.winGridViewPager1.AddColumnAlias("编号", "编号");
            this.winGridViewPager1.AddColumnAlias("MAC地址", "MAC地址");
            this.winGridViewPager1.AddColumnAlias("设备所有人", "设备所有人");
            this.winGridViewPager1.AddColumnAlias("设备状态", "设备状态");

            this.winGridViewPager1.DisplayColumns = "设备描述,MAC地址,设备所有人,设备状态";

            winGridViewPager1.BackColor = Color.LightCyan;//间隔颜色

            //隐藏右键功能按钮
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[4].Visible = false;
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[5].Visible = false;
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[6].Visible = false;
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[7].Visible = false;
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[1].Text = "查看日志";
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[2].Text = "设备编辑";
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[3].Text = "删除";
            //右键菜单宽度
            winGridViewPager1.dataGridView1.ContextMenuStrip.AutoSize = false;
            winGridViewPager1.dataGridView1.ContextMenuStrip.Width = 150;
            //数据铺满表格
            this.winGridViewPager1.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            //控制间隔的颜色
            winGridViewPager1.BackColor = Color.LightCyan;//间隔颜色
            //控制每页显示的最大数据量
            winGridViewPager1.PagerInfo.RecordCount = rows;
            winGridViewPager1.PagerInfo.PageSize = maxPageIndex;
            winGridViewPager1.dataGridView1.Refresh();
            //winGridViewPager1.Controls.RemoveAt(1);

        }
        /// <summary>
        /// 页面刷新
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void winGridViewPager1_OnPageChanged(object sender, EventArgs e)
        {
            LoadData();

        }

        void pager1_OnEndExport(object sender, EventArgs e)
        {

        }

        void pager1_OnStartExport(object sender, EventArgs e)
        {
            string where = GetSql();
            DataTable table = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, where).Tables[0];
            this.winGridViewPager1.AllToExport = table;
        }

        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void winGridViewPager1_OnEditSelected(object sender, EventArgs e)
        {
            //if (Utility.isNeedLogin && !Utility.userRole.Contains("探测仪编辑")) return;

            DataGridView grid = sender as DataGridView;
            if (grid != null && grid.SelectedRows.Count > 0)
            {
                DataGridViewRow row = grid.SelectedRows[0];
                try
                {
                    long dbid = long.Parse(row.Cells["编号"].Value.ToString());
                    String macId = row.Cells["MAC地址"].Value.ToString();
                    String username = row.Cells["设备所有人"].Value.ToString();
                   // String descn = row.Cells["设备状态"].Value.ToString();
                    String descn = row.Cells["设备描述"].Value.ToString();
                    FrmEquipmentEdit frm = new FrmEquipmentEdit(dbid.ToString(), macId, username, descn);
                    frm.reloadGrid += new ReloadEquipmentGrid(LoadData);
                    frm.ShowDialog();
                    winGridViewPager1.Refresh();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("编辑失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("没有选择记录", "提示");
            }
        }
        /// <summary>
        /// 查看日志
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void winGridViewPager1_OnAddNew(object sender, EventArgs e)
        {
            DataGridView grid = sender as DataGridView;
            if (grid != null && grid.SelectedRows.Count > 0)
            {
                DataGridViewRow row = grid.SelectedRows[0];
                try
                {
                    if (row.Index < 0)
                    {
                        return;
                    }
                    String macId = row.Cells["MAC地址"].Value.ToString();
                    FrmLog frm = new FrmLog(macId);
                    frm.Show();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("查看日志失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
            else
            {
                MessageBox.Show("没有选择记录", "提示");
            }
        }
        /// <summary>
        /// 设备删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void winGridViewPager1_OnDeleteSelected(object sender, EventArgs e)
        {
            DataGridView grid = sender as DataGridView;
            if (grid != null && grid.SelectedRows.Count > 0)
            {
                DataGridViewRow row = grid.SelectedRows[0];
                long dbid = long.Parse(row.Cells["编号"].Value.ToString());
                try
                {
                    if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {                        
                        String sql = "update equipment set status='DAMAGE' where dbid=" + dbid;
                        OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString, CommandType.Text, sql);
                        LoadData();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("标识器报废失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("没有选择记录", "提示");
            }
        }


        private void LoadData()
        {
            int pageIndex = winGridViewPager1.PagerInfo.CurrenetPageIndex;
            string sqlData = GetSql(pageIndex);
            initlizeDatagrid();
            DataTable table = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, sqlData).Tables[0];
            winGridViewPager1.DataSource = table.DefaultView;
            winGridViewPager1.Refresh();
        }

        private void LoadData(int pageIndex)
        {
            string sqlData = GetSql(pageIndex);
            initlizeDatagrid();
            DataTable table = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, sqlData).Tables[0];
            winGridViewPager1.DataSource = table.DefaultView;

            winGridViewPager1.Refresh();
        }

        private string GetSql()
        {
            string sqlCount = "select count(*) from equipment where status = 'USING'";

            string sqlData = "select descirption as 设备描述,DBID as 编号,macid as MAC地址,owner as 设备所有人,"+
            "case when status = 'USING' then '可用' end as 设备状态 " +
                "from (select t.*,rownum row_num from equipment t where status = 'USING' order by dbid desc)b " +
                " where 1=1 and status = 'USING'";

            rows = int.Parse(OracleUtils.ExecuteScalar(OracleUtils.ConnectionString, CommandType.Text, sqlCount).ToString());

            return sqlData;
        }

        private string GetSql(int pageIndex)
        {
            int minPage = (pageIndex - 1) * maxPageIndex + 1;
            int maxPage = pageIndex * maxPageIndex;
            string sqlCount = "select count(*) from equipment where status = 'USING' ";

            string sqlData = "select descirption as 设备描述,DBID as 编号,macid as MAC地址,owner as 设备所有人," +
            "case when status = 'USING' then '可用'  when status = 'DAMAGE' then '损坏' end as 设备状态 " +
                "from (select t.*,rownum row_num from equipment t where status = 'USING'";

            if (!String.IsNullOrEmpty(txtMacId.Text.Trim()))
            {
                sqlData += " and macid like '%" + txtMacId.Text.Trim() + "%'";
                sqlCount += " and macid like '%" + txtMacId.Text.Trim() + "%'";
            }
            sqlData += " order by DBID desc)b " +
            "where(b.row_num between " + minPage + " and " + maxPage + ")";
            rows = int.Parse(OracleUtils.ExecuteScalar(OracleUtils.ConnectionString, CommandType.Text, sqlCount).ToString());

            return sqlData;
        }

        private void btnAddDev_Click(object sender, EventArgs e)
        {
            try
            {
                FrmEquipmentEdit frm = new FrmEquipmentEdit();
                frm.reloadGrid += new ReloadEquipmentGrid(LoadData);
                frm.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageBox.Show("探测仪添加操作失败:" + ex.ToString(), "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnQueryDev_Click(object sender, EventArgs e)
        {
            try
            {
                LoadData(1);
            }
            catch (Exception ex)
            {
                MessageBox.Show("查询错误:" + ex.ToString(), "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }



        private void FrmEquipmentManage_FormClosing(object sender, FormClosingEventArgs e)
        {
            IS_OPEN = false;
        }


    }
}