using System; using System.Data; using System.Configuration; using System.Collections.Generic; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Text; using Wellan.Data; using Wellan.Common; public partial class forms_flow_fmBSGP : Wellan.Web.UI.WUserControlBase { private BpapDAC bpabDao; private BsgpDAC bsgpDao; private string _RPPYN; private int _YY; protected void Page_Load(object sender, EventArgs e) { _RPPYN = WDAC.GetStringValue(ViewState["RPPYN"]); _YY = WDAC.GetInt32Value(ViewState["YY"]); if (_YY > 0) { txtYY.Text = _YY.ToString(); ListItem item = ddlRPPYN.Items.FindByValue(_RPPYN); if (item != null) item.Selected = true; } else { txtYY.Focus(); } } protected override void OnInit(EventArgs e) { base.OnInit(e); bpabDao = new BpapDAC(Query); bsgpDao = new BsgpDAC(Query); } private void BindListBox(bool clear) { if (lbBPSN.Items.Count == 0) { DataTable bpsnData = GetListData("BPSN", String.Format("BPEDY IS NULL AND BPDPT IN {0} AND EXISTS (SELECT RANUM FROM RASN WHERE RAPYN IN ('103JYB00001', '103TYB00001') AND RANUM=BPENO AND RAEDT IS NULL)", PublicVariable.InnerDepartment)); foreach (DataRow r in bpsnData.Rows) { string bpeno = WDAC.GetStringValue(r["BPENO"]); string bpnme = WDAC.GetStringValue(r["BPNME"]); lbBPSN.Items.Add(new ListItem(bpeno + " " + bpnme, bpeno)); } } if (lbBPAP.Items.Count == 0) { DataTable bpapData = bpabDao.SelectAll(); foreach (DataRow r in bpapData.Rows) { string bpeno = WDAC.GetStringValue(r["BPENO"]); string bpnme = WDAC.GetStringValue(r["BPNME"]); lbBPAP.Items.Add(new ListItem(bpeno + " " + bpnme, bpeno)); } } if (clear || lbLVL1.Items.Count == 0) { DataTable t1 = bsgpDao.SelectByLevel(_RPPYN, "差勤", 1); lbLVL1.Items.Clear(); foreach (DataRow r in t1.Rows) { string eno = WDAC.GetStringValue(r["BSENO"]); string nme = WDAC.GetStringValue(r["BSNME"]); lbLVL1.Items.Add(new ListItem(eno + " " + nme, eno)); } } if (clear || lbLVL2.Items.Count == 0) { DataTable t1 = bsgpDao.SelectByLevel(_RPPYN, "差勤", 2); lbLVL2.Items.Clear(); foreach (DataRow r in t1.Rows) { string eno = WDAC.GetStringValue(r["BSENO"]); string nme = WDAC.GetStringValue(r["BSNME"]); lbLVL2.Items.Add(new ListItem(eno + " " + nme, eno)); } } if (clear || lbLVL3.Items.Count == 0) { DataTable t1 = bsgpDao.SelectByLevel(_RPPYN, "差勤", 3); lbLVL3.Items.Clear(); foreach (DataRow r in t1.Rows) { string eno = WDAC.GetStringValue(r["BSENO"]); string nme = WDAC.GetStringValue(r["BSNME"]); lbLVL3.Items.Add(new ListItem(eno + " " + nme, eno)); } } } // 加入群組 protected void btnMoveIn_Click(object sender, ImageClickEventArgs e) { if (!CheckProjectRight()) return; int bslvl; switch ((sender as Control).ID) { case "btnIn1": bslvl = 1; break; case "btnIn2": bslvl = 2; break; case "btnIn3": bslvl = 3; break; default: return; } foreach (ListItem itm in lbBPSN.Items) { if (itm.Selected) bsgpDao.InsertOne(_RPPYN, "差勤", bslvl, itm.Value, UserId); itm.Selected = false; } foreach (ListItem itm in lbBPAP.Items) { if (itm.Selected) bsgpDao.InsertOne(_RPPYN, "差勤", bslvl, itm.Value, UserId); itm.Selected = false; } BindListBox(true); } // 移出群組 protected void btnMoveOut_Click(object sender, ImageClickEventArgs e) { if (!CheckProjectRight()) return; int bslvl; ListBox lb; switch ((sender as Control).ID) { case "btnOut1": bslvl = 1; lb = lbLVL1; break; case "btnOut2": bslvl = 2; lb = lbLVL2; break; case "btnOut3": bslvl = 3; lb = lbLVL3; break; default: return; } foreach (ListItem itm in lb.Items) { if (itm.Selected) bsgpDao.DeleteOne(_RPPYN, "差勤", bslvl, itm.Value); itm.Selected = false; } BindListBox(true); } protected void btnYY_Click(object sender, EventArgs e) { if (!Int32.TryParse(txtYY.Text.Trim(), out _YY)) { cvMessage.IsValid = false; cvMessage.ErrorMessage = "請輸入正確的年度"; return; } ddlRPPYN.DataSource = new BpaaDAC().GetBpaa(_YY + WGuard1.CY11); ddlRPPYN.DataBind(); ViewState["YY"] = _YY; _RPPYN = ""; ViewState["RPPYN"] = ""; Panel1.Visible = false; } protected void Next_Click(object sender, EventArgs e) { if (!CheckProjectRight()) return; _RPPYN = ddlRPPYN.SelectedValue; ViewState["RPPYN"] = _RPPYN; Panel1.Visible = true; BindListBox(true); } protected void btnClear_Click(object sender, EventArgs e) { switch ((sender as Control).ID) { case "btnClear1": lbBPSN.ClearSelection(); break; case "btnClear2": lbBPAP.ClearSelection(); break; default: return; } } protected bool CheckProjectRight() { // 檢查此使用者是否有權限處理這個專案 BprmDAC bprm = new BprmDAC(Query); if (!bprm.GetRight(ddlRPPYN.SelectedValue, UserId)) { //MultiView1.Visible = false; cvMessage.ErrorMessage = "對不起,你沒有處理這個專案的權限!"; cvMessage.IsValid = false; return false; } return true; } }