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; } } }