Newer
Older
EMS_SZ / FrmRoleInfoManager.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;

namespace Cyberpipe
{
    public partial class FrmRoleInfoManager : Office2007Form
    {
        int maxPageIndex = 20;
        int rows = 0;

        public static bool IS_OPEN = false;

        public FrmRoleInfoManager()
        {
            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 FrmRoleInfoManager_Load(object sender, EventArgs e)
        {
            LoadData();
            if (Utility.userRole.IndexOf("角色新增") == -1)
            {
                btn_add.Visible = false;
            }
            if (Utility.userRole.IndexOf("角色删除") == -1)
            {
                winGridViewPager1.dataGridView1.ContextMenuStrip.Items[3].Visible = false;
                
            }
            IS_OPEN = true;
        }



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

            //控制表格显示的列,以及每一列要显示的列名
            this.winGridViewPager1.Dock = DockStyle.Fill;
            this.winGridViewPager1.dataGridView1.Dock = DockStyle.Fill;
            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];
                try
                {
                    string dbid = row.Cells["编号"].Value.ToString();

                    string sql1 = "select * from casic_userinfotest where USERNAME='" + Utility.userName +"'";            
                    DataTable dt = OledbHelper.QueryTable(sql1);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        if (!String.IsNullOrEmpty(dt.Rows[0]["rid"].ToString()))
                        {
                            
                            if (dt.Rows[0]["rid"].ToString().Equals(dbid))
                            {
                                MessageBox.Show("无法删除自己的角色", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return;
                            }
                        }
                    }

                    if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        string sql = "delete from casic_userroletest where id=" + dbid;
                        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);
                }

            }
            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(1) from casic_userroletest where sysname='EMS'";

            string sqlData = "select nt as 角色名称,id as 编号 " +
                "from (select t.*,rownum row_num from casic_userroletest 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(1) from casic_userroletest where sysname='EMS'";
            string sqlData = "select nt as 角色名称,id as 编号 " +
                "from (select t.*,rownum row_num from casic_userroletest 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;
        }

        private void btn_add_Click(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(txt_role_name.Text.Trim()))
                {
                    MessageBox.Show("角色名称不能为空!","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    return;
                }
                string sql = "select count(*) from casic_userroletest where nt='" + txt_role_name.Text.Trim() + "' and sysname='EMS'";
                int count = int.Parse(OracleUtils.ExecuteScalar(OracleUtils.ConnectionString, CommandType.Text, sql).ToString());
                if (count > 0)
                {
                    MessageBox.Show("角色名称已存在!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                sql = "insert into casic_userroletest (nt,sysname) values ('" + txt_role_name.Text.Trim() + "','EMS')";
                OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString,CommandType.Text,sql);
                MessageBox.Show("新增成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                LoadData(1);
            }
            catch (Exception ex)
            {
                MessageBox.Show("新增失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

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