Newer
Older
GHFX_REFACTOR / FrmSysUserInfoManger.cs
wxn on 2 Nov 2016 6 KB 提交
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 FrmSysUserInfoManger : Office2007Form
    {
        private int pagesize = 10;
        private int currentpage = 1;
        private int lastpage = 1;

        public static bool IS_OPEN = false;

        public FrmSysUserInfoManger()
        {
            InitializeComponent();
        }

        private void FrmSysUserInfoManger_Load(object sender, EventArgs e)
        {
            IS_OPEN = true;
            reloadGrid(currentpage);
            if (Utility.userRole.IndexOf("用户新增") == -1)
            {
                btn_add.Visible = false;
            }
            if (Utility.userRole.IndexOf("用户删除") == -1)
            {
                dataGridViewX1.Columns["btndel"].Visible = false;
            }
        }

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

        public void reloadGrid(int pageIndex)
        {
            currentpage = pageIndex;
            if (pageIndex <= 0)
            {
                currentpage = 1;
            }
            string sqlcount = "select count(*) from casic_userinfotest where sysname='GHFX' ";
            if (!String.IsNullOrEmpty(txt_user_code.Text.Trim()))
            {
                sqlcount += " and username like '%" + txt_user_code.Text.Trim() + "%'";
            }

            int rows = int.Parse(OracleUtils.ExecuteScalar(OracleUtils.ConnectionString, CommandType.Text, sqlcount).ToString());
            int pages = 0;
            if (rows % pagesize == 0)
            {
                pages = rows / pagesize;
            }
            else
            {
                pages = rows / pagesize + 1;
            }

            lastpage = pages;
            if (lastpage < currentpage)
            {
                currentpage = lastpage;
            }

            lab_page_msg.Text = "共" + rows + "条记录,每页" + pagesize + "条,第" + currentpage + "页,共" + pages + "页";
            combo_page_num.Items.Clear();
            for (int i = 1; i <= pages; i++)
            {
                combo_page_num.Items.Add(new ComboBoxItem(i.ToString(), i.ToString()));
            }

            if (lastpage == 1)
            {
                btn_page_first.Enabled = false;
                btn_page_pre.Enabled = false;
                btn_page_last.Enabled = false;
                btn_page_next.Enabled = false;
            }
            else if (currentpage == 1)
            {
                btn_page_first.Enabled = false;
                btn_page_pre.Enabled = false;
                btn_page_last.Enabled = true;
                btn_page_next.Enabled = true;
            }
            else if (currentpage == lastpage)
            {
                btn_page_first.Enabled = true;
                btn_page_pre.Enabled = true;
                btn_page_last.Enabled = false;
                btn_page_next.Enabled = false;
            }
            else
            {
                btn_page_first.Enabled = true;
                btn_page_pre.Enabled = true;
                btn_page_last.Enabled = true;
                btn_page_next.Enabled = true;
            }

            String sqlrows = "select * from (select rownum as rowno,id,username,'删除' as btndel from casic_userinfotest where sysname='GHFX' ";
            if (!String.IsNullOrEmpty(txt_user_code.Text.Trim()))
            {
                sqlrows += " and username like '%" + txt_user_code.Text.Trim() + "%'";
            }
            sqlrows += " and rownum<=" + (pagesize * currentpage) + ") table_alias where table_alias.rowno>=" + ((currentpage - 1) * pagesize + 1) + " order by id ";
            DataTable table = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, sqlrows).Tables[0];
            dataGridViewX1.DataSource = table;

        }

        private void btn_add_Click(object sender, EventArgs e)
        {
            FrmSysUserInfoEdit frm = new FrmSysUserInfoEdit();
            frm.reloadGrid += new ReloadSysUserInfoGrid(reloadGrid);
            frm.ShowDialog();
        }

        private void dataGridViewX1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (e.RowIndex < 0 || e.ColumnIndex < 0)
                {
                    return;
                }
                string buttonText = dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                if (buttonText.Equals("删除"))
                {
                    if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        string dbid = dataGridViewX1.Rows[e.RowIndex].Cells["id"].Value.ToString();
                        string sql = "delete from casic_userinfotest where id=" + dbid;
                        OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString, CommandType.Text, sql);
                        MessageBox.Show("删除成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        reloadGrid(currentpage);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("用户删除失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btn_query_Click(object sender, EventArgs e)
        {
            currentpage = 1;
            reloadGrid(currentpage);
        }

        private void btn_page_first_Click(object sender, EventArgs e)
        {
            currentpage = 1;
            reloadGrid(currentpage);
        }

        private void btn_page_pre_Click(object sender, EventArgs e)
        {
            currentpage--;
            if (currentpage <= 0)
            {
                currentpage = 1;
            }
            reloadGrid(currentpage);
        }

        private void combo_page_num_SelectedIndexChanged(object sender, EventArgs e)
        {
            currentpage = int.Parse(combo_page_num.Text.Trim());
            reloadGrid(currentpage);
        }

        private void btn_page_next_Click(object sender, EventArgs e)
        {
            currentpage++;
            if (currentpage > lastpage)
            {
                currentpage = lastpage;
            }
            reloadGrid(currentpage);
        }

    }
}