?? popedommanage.cs
字號:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace 進銷存管理系統
{
/// <summary>
/// PopedomManage 的摘要說明。
/// </summary>
public class PopedomManage : System.Windows.Forms.Form
{
//設置數據庫連接和適配器
private DataSet ds = new DataSet();
private LinkDataBase link = new LinkDataBase();
private string sendTableName = "用戶清單";
private string sendStrSQL = "SELECT * from 用戶清單 where 姓名<>'sys'";
private DataTable popedomDataTable = new DataTable();
private bool blInitial = true;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.CheckedListBox chkLst_Priority;
private System.Windows.Forms.DataGrid dgrd_Popedom;
/// <summary>
/// 必需的設計器變量。
/// </summary>
private System.ComponentModel.Container components = null;
public PopedomManage()
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 調用后添加任何構造函數代碼
//
}
/// <summary>
/// 清理所有正在使用的資源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗體設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.chkLst_Priority = new System.Windows.Forms.CheckedListBox();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.dgrd_Popedom = new System.Windows.Forms.DataGrid();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgrd_Popedom)).BeginInit();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.chkLst_Priority);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Controls.Add(this.dgrd_Popedom);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox1.Location = new System.Drawing.Point(0, 0);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(648, 357);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
//
// chkLst_Priority
//
this.chkLst_Priority.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.chkLst_Priority.CheckOnClick = true;
this.chkLst_Priority.Items.AddRange(new object[] {
"商品資料維護",
"供貨商資料維護",
"客戶資料維護",
"進貨單",
"銷售單",
"庫存查詢",
"權限管理"});
this.chkLst_Priority.Location = new System.Drawing.Point(456, 52);
this.chkLst_Priority.Name = "chkLst_Priority";
this.chkLst_Priority.Size = new System.Drawing.Size(172, 276);
this.chkLst_Priority.TabIndex = 2;
this.chkLst_Priority.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.chkLst_Priority_ItemCheck);
//
// label2
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label2.Location = new System.Drawing.Point(450, 28);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(100, 16);
this.label2.TabIndex = 5;
this.label2.Text = "權限:";
//
// label1
//
this.label1.Location = new System.Drawing.Point(33, 28);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(100, 16);
this.label1.TabIndex = 4;
this.label1.Text = "用戶:";
//
// dgrd_Popedom
//
this.dgrd_Popedom.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dgrd_Popedom.CaptionVisible = false;
this.dgrd_Popedom.DataMember = "";
this.dgrd_Popedom.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dgrd_Popedom.Location = new System.Drawing.Point(26, 52);
this.dgrd_Popedom.Name = "dgrd_Popedom";
this.dgrd_Popedom.ReadOnly = true;
this.dgrd_Popedom.Size = new System.Drawing.Size(412, 274);
this.dgrd_Popedom.TabIndex = 1;
this.dgrd_Popedom.MouseUp += new System.Windows.Forms.MouseEventHandler(this.dgrd_Popedom_MouseUp);
//
// PopedomManage
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(648, 357);
this.Controls.Add(this.groupBox1);
this.Name = "PopedomManage";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "【權限管理】";
this.Load += new System.EventHandler(this.PopedomManage_Load);
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dgrd_Popedom)).EndInit();
this.ResumeLayout(false);
}
#endregion
//---------窗體創建時,將用戶的權限數據讀入并顯示-----------
private void PopedomManage_Load(object sender, System.EventArgs e)
{
this.ds = this.link.SelectDataBase(sendStrSQL,sendTableName);
this.dgrd_Popedom.DataSource = ds.Tables[0];
this.DataGridStateControl();
this.dgrd_Popedom.Select(0);//窗體生成后選中第一行
string selectedUserID = this.ds.Tables[0].Rows[0][0].ToString();//默認選中用戶清單中的第一個用戶
string tempStrSQL = "select 權限名稱 from 權限清單 " + " where 用戶編號 = '" + selectedUserID + "'";
popedomDataTable = link.SelectDataBase(tempStrSQL);//讀入該用戶的權限
for (int i=0;i<popedomDataTable.Rows.Count;i++)//根據權限設置ListBox
{
for (int j=0;j<this.chkLst_Priority.Items.Count;j++)
{
if (this.chkLst_Priority.Items[j].ToString().Trim() == popedomDataTable.Rows[i][0].ToString().Trim())
{
this.chkLst_Priority.SetItemChecked(j,true);
}
}
}
}
//-------------設置顯示用戶信息的表---------------
private void DataGridStateControl()
{
DataGridTableStyle ts = new DataGridTableStyle();
DataGridNoActiveCellColumn aColumnTextColumn;//設置dataGrid格式
ts.AlternatingBackColor = Color.LightGray;
ts.MappingName = this.ds.Tables[0].TableName;
ts.AllowSorting = false;
int numCols = this.ds.Tables[0].Columns.Count;
for (int i = 0;i< numCols;i++)
{
aColumnTextColumn = new DataGridNoActiveCellColumn();
aColumnTextColumn.MappingName = this.ds.Tables[0].Columns[i].ColumnName;
aColumnTextColumn.HeaderText = this.ds.Tables[0].Columns[i].ColumnName;
aColumnTextColumn.NullText = "";
aColumnTextColumn.Format = "F";
ts.GridColumnStyles.Add(aColumnTextColumn);
}
this.dgrd_Popedom.TableStyles.Add(ts);
}
//-------------改變用戶的權限,并向數據庫中提交----------------
private void chkLst_Priority_ItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e)
{
//CheckedListBox控件中的Item的CheckedState屬性是由點擊CheckedListBox控件而改變時才響應該事件
if (blInitial == false)
{
if (e.CurrentValue.ToString() == "Unchecked")
{
try
{
string strUserName = this.dgrd_Popedom[this.dgrd_Popedom.CurrentCell.RowNumber,0].ToString().Trim();
string strPopedom = this.chkLst_Priority.SelectedItem.ToString();
string tempSendStrSQL = "insert 權限清單 (用戶編號,權限名稱) values ('" + strUserName +"','"+ strPopedom +"')";
this.link.UpdateDataBase(tempSendStrSQL);
}
catch
{
MessageBox.Show("數據庫中的權限修改出錯,請重試!","信息");
}
}
else if (e.CurrentValue.ToString() == "Checked")
{
try
{
string strUserName = this.dgrd_Popedom[this.dgrd_Popedom.CurrentCell.RowNumber,0].ToString().Trim();
string strPopedom = this.chkLst_Priority.SelectedItem.ToString();
string tempSendStrSQL = "delete from 權限清單 where (用戶編號 = '" + strUserName +"'" +
" and 權限名稱 = '" + strPopedom + "')";
this.link.UpdateDataBase(tempSendStrSQL);
}
catch
{
MessageBox.Show("數據庫中的權限修改出錯!","信息");
}
}
}
}
private void dgrd_Popedom_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (this.dgrd_Popedom.CurrentCell.RowNumber >= this.ds.Tables[0].Rows.Count)//防止出現所選的用戶不在數據表中的情況
{
return;
}
this.chkLst_Priority.Enabled = true;
blInitial = true; //控制當【權限管理】窗體剛生成時和點擊其他用戶時使CheckedListBox控件中數據發生改變時不響應ItemCheck事件
//以下代碼實現的是當dataGrid中所選用戶改變時,根據選中用戶權限重新設置listBox的功能
for (int i=0;i<this.chkLst_Priority.Items.Count;i++)//將listBox中所有權限設為未選中
{
this.chkLst_Priority.SetItemChecked(i,false);
}
int intRowNumber = this.dgrd_Popedom.CurrentCell.RowNumber;
string selectedUserID = this.ds.Tables[0].Rows[intRowNumber][0].ToString();
string tempStrSQL = "select 權限名稱 from 權限清單 " + " where 用戶編號 = '" + selectedUserID + "'";
popedomDataTable = link.SelectDataBase(tempStrSQL);//查詢所選用戶權限
for (int i=0;i<popedomDataTable.Rows.Count;i++)//重新設置listBox
{
for (int j=0;j<this.chkLst_Priority.Items.Count;j++)
{
if (this.chkLst_Priority.Items[j].ToString().Trim() == popedomDataTable.Rows[i][0].ToString().Trim())
{
this.chkLst_Priority.SetItemChecked(j,true);
}
}
}
blInitial = false;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -