Newer
Older
EMS_SZ / SysRescInfoManager.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Data.OracleClient;

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

        public SysRescInfoManager()
        {
            InitializeComponent();
            winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged);
            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 SysRescInfoManager_Load(object sender, EventArgs e)
        {
            IS_OPEN = true;
            LoadData();
            if (Utility.userRole.IndexOf("资源新增") == -1)
            {
                btn_add.Visible = false;
            }
            if (Utility.userRole.IndexOf("资源删除") == -1)
            {
                winGridViewPager1.dataGridView1.ContextMenuStrip.Items[3].Visible = false;
            }
        }

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

       /* private void btn_add_Click(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(txt_resc_name.Text.Trim()))
                {
                    MessageBox.Show("资源名称不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                string sql = "insert into casic_userresctest (resc,desp,sysname) values ('" + txt_resc_name.Text.Trim() + "','" + txt_resc_des.Text.Trim() + "','EMS')";
                OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString, CommandType.Text, sql);
                LoadData();
                MessageBox.Show("新增资源成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("新增资源失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }*/


        /// <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("资源描述", "资源描述");
            this.winGridViewPager1.DisplayColumns = "资源名称,资源描述";

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

            //隐藏右键功能按钮
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[1].Visible = false;
            winGridViewPager1.dataGridView1.ContextMenuStrip.Items[2].Visible = false;
            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[3].Text = "删除";

            //右键菜单宽度
            winGridViewPager1.dataGridView1.ContextMenuStrip.AutoSize = false;
            winGridViewPager1.dataGridView1.ContextMenuStrip.Width = 150;
            //数据铺满表格
            this.winGridViewPager1.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            //居中
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
            this.winGridViewPager1.dataGridView1.DefaultCellStyle = dataGridViewCellStyle1;
            this.winGridViewPager1.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            winGridViewPager1.Refresh();
            //控制间隔的颜色
            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)
        {
            int pageIndex = winGridViewPager1.PagerInfo.CurrenetPageIndex;
            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_OnDeleteSelected(object sender, EventArgs e)
        {
            DataGridView grid = sender as DataGridView;
            if (grid != null && grid.SelectedRows.Count > 0)
            {
                DataGridViewRow row = grid.SelectedRows[0];
                if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    string dbid = row.Cells["编号"].Value.ToString();
                    string resc = row.Cells["资源名称"].Value.ToString();
                    OracleConnection conn = null;
                    OracleTransaction tran = null;
                    try
                    {
                        conn = new OracleConnection(OracleUtils.ConnectionString);
                        if (conn.State == ConnectionState.Closed)
                        {
                            conn.Open();
                        }
                        tran = conn.BeginTransaction();
                        string sql = "delete from casic_userresctest where id=" + dbid;
                        OracleUtils.ExecuteNonQuery(tran, CommandType.Text, sql);

                        List<string> list = new List<string>();
                        sql = "select id,gid from casic_userroletest where sysname='EMS' and gid like '%" + resc + "%'";
                        using (OracleDataReader reader = OracleUtils.ExecuteReader(tran, CommandType.Text, sql))
                        {
                            while (reader.Read())
                            {
                                list.Add("update casic_userroletest set gid='" + reader["gid"].ToString().Replace(resc + ",", "").Replace(resc, "") + "' where id=" + reader["id"].ToString());
                            }
                        }

                        foreach (string str in list)
                        {
                            OracleUtils.ExecuteNonQuery(tran, CommandType.Text, str);
                        }
                        tran.Commit();
                        MessageBox.Show("删除成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        LoadData();
                    }
                    catch (Exception ex)
                    {
                        if (null != tran)
                        {
                            tran.Rollback();
                        }
                        MessageBox.Show("删除失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        if (null != conn && conn.State == ConnectionState.Open)
                        {
                            conn.Close();
                        }
                    }
                }

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

        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 casic_userresctest where sysname='EMS'";
            string sqlData = "select resc as 资源名称,id as 编号,desp as 资源描述 " +
                "from (select t.*,rownum row_num from casic_userresctest t order by id desc)b " +
                " where sysname='EMS'";
            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 casic_userresctest where sysname='EMS'";
            string sqlData = "select resc as 资源名称,id as 编号,desp as 资源描述 " +
                "from (select t.*,rownum row_num from casic_userresctest t where sysname='EMS' order by id desc)b " +
                " where(b.row_num between " + minPage + " and " + maxPage + ")";

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

            return sqlData;
        }
        
    }
}