using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Linq; using WebLib; namespace Education.Forms.課程企劃 { public partial class PickupMaterial : FormBase { private DAC_訓練課程企劃 Dao課程企劃; private DAC_訓練課程內容 Dao課程內容; private DAC_教材遴選 Dao教材遴選; private int 課程企劃ID; private int 課程序號; protected bool 可異動; protected void Page_Load(object sender, EventArgs e) { FunctionName = "訓練課程企劃書 >> 訓練課程內容 >> 教材遴選"; Title = FunctionName; if (!IsPostBack) { hf課程企劃ID.Value = Request["id"]; hf課程序號.Value = Request["class"]; } 課程企劃ID = DAC.GetInt32(hf課程企劃ID.Value); 課程序號 = DAC.GetInt32(hf課程序號.Value); 可異動 = Dao表單簽核主檔.表單可異動("課程企劃", String.Format("{0}", 課程企劃ID)); Dao課程企劃 = new DAC_訓練課程企劃(conn); Dao課程內容 = new DAC_訓練課程內容(conn); Dao教材遴選 = new DAC_教材遴選(conn); btnClearA.OnClientClick = String.Format("clearMaterial(\"{0}\", \"{1}\", \"{2}\", \"{3}\", \"{4}\", \"{5}\", \"{6}\"); return false;", txt教材名稱A.ClientID, txt符合訓練目標A.ClientID, txt架構規劃完整性A.ClientID, txt符合課程時數A.ClientID, txt引起學習興趣A.ClientID, txt未來工作參考運用A.ClientID, lb合計A.ClientID); btnClearB.OnClientClick = String.Format("clearMaterial(\"{0}\", \"{1}\", \"{2}\", \"{3}\", \"{4}\", \"{5}\", \"{6}\"); return false;", txt教材名稱B.ClientID, txt符合訓練目標B.ClientID, txt架構規劃完整性B.ClientID, txt符合課程時數B.ClientID, txt引起學習興趣B.ClientID, txt未來工作參考運用B.ClientID, lb合計B.ClientID); btnClearC.OnClientClick = String.Format("clearMaterial(\"{0}\", \"{1}\", \"{2}\", \"{3}\", \"{4}\", \"{5}\", \"{6}\"); return false;", txt教材名稱C.ClientID, txt符合訓練目標C.ClientID, txt架構規劃完整性C.ClientID, txt符合課程時數C.ClientID, txt引起學習興趣C.ClientID, txt未來工作參考運用C.ClientID, lb合計C.ClientID); if (!IsPostBack) { UpdateUI(); } UIControl(); (Master as PopupForm).RefreshOpener = true; } private void UIControl() { btnSave.Visible = 可異動; btnClearA.Visible = 可異動; btnClearB.Visible = 可異動; btnClearC.Visible = 可異動; txt教材名稱A.Enabled = 可異動; txt教材名稱B.Enabled = 可異動; txt教材名稱C.Enabled = 可異動; txt符合訓練目標A.Enabled = 可異動; txt符合訓練目標B.Enabled = 可異動; txt符合訓練目標C.Enabled = 可異動; txt架構規劃完整性A.Enabled = 可異動; txt架構規劃完整性B.Enabled = 可異動; txt架構規劃完整性C.Enabled = 可異動; txt符合課程時數A.Enabled = 可異動; txt符合課程時數B.Enabled = 可異動; txt符合課程時數C.Enabled = 可異動; txt引起學習興趣A.Enabled = 可異動; txt引起學習興趣B.Enabled = 可異動; txt引起學習興趣C.Enabled = 可異動; txt未來工作參考運用A.Enabled = 可異動; txt未來工作參考運用B.Enabled = 可異動; txt未來工作參考運用C.Enabled = 可異動; txt總評.Enabled = 可異動; txt備註.Enabled = 可異動; } private void UpdateUI() { 訓練課程企劃List v1 = Dao課程企劃.SelectOne(課程企劃ID); 訓練課程內容List v2 = Dao課程內容.SelectOne(課程企劃ID, 課程序號); 教材遴選List v3 = Dao教材遴選.SelectOne(課程企劃ID, 課程序號); if (v1.Count > 0) { lb課程企劃.Text = String.Format("[{0}] {1}", v1[0].顯示編號, v1[0].訓練名稱); } if (v2.Count > 0) { lb課程內容.Text = String.Format("[{0}] {1}", v2[0].節次, v2[0].課程名稱); } txt教材名稱A.Text = ""; txt符合訓練目標A.Text = ""; txt架構規劃完整性A.Text = ""; txt符合課程時數A.Text = ""; txt引起學習興趣A.Text = ""; txt未來工作參考運用A.Text = ""; lb合計A.Text = ""; txt教材名稱B.Text = ""; txt符合訓練目標B.Text = ""; txt架構規劃完整性B.Text = ""; txt符合課程時數B.Text = ""; txt引起學習興趣B.Text = ""; txt未來工作參考運用B.Text = ""; lb合計B.Text = ""; txt教材名稱C.Text = ""; txt符合訓練目標C.Text = ""; txt架構規劃完整性C.Text = ""; txt符合課程時數C.Text = ""; txt引起學習興趣C.Text = ""; txt未來工作參考運用C.Text = ""; lb合計C.Text = ""; txt總評.Text = ""; txt備註.Text = ""; if (v3.Count > 0) { if (!String.IsNullOrEmpty(v3[0].教材名稱_A)) { txt教材名稱A.Text = v3[0].教材名稱_A; txt符合訓練目標A.Text = v3[0].符合訓練目標_A.ToString(); txt架構規劃完整性A.Text = v3[0].架構規劃完整性_A.ToString(); txt符合課程時數A.Text = v3[0].符合課程時數_A.ToString(); txt引起學習興趣A.Text = v3[0].引起學習興趣_A.ToString(); txt未來工作參考運用A.Text = v3[0].未來工作參考運用_A.ToString(); lb合計A.Text = (v3[0].符合訓練目標_A + v3[0].架構規劃完整性_A + v3[0].符合課程時數_A + v3[0].引起學習興趣_A + v3[0].未來工作參考運用_A).ToString(); } if (!String.IsNullOrEmpty(v3[0].教材名稱_B)) { txt教材名稱B.Text = v3[0].教材名稱_B; txt符合訓練目標B.Text = v3[0].符合訓練目標_B.ToString(); txt架構規劃完整性B.Text = v3[0].架構規劃完整性_B.ToString(); txt符合課程時數B.Text = v3[0].符合課程時數_B.ToString(); txt引起學習興趣B.Text = v3[0].引起學習興趣_B.ToString(); txt未來工作參考運用B.Text = v3[0].未來工作參考運用_B.ToString(); lb合計B.Text = (v3[0].符合訓練目標_B + v3[0].架構規劃完整性_B + v3[0].符合課程時數_B + v3[0].引起學習興趣_B + v3[0].未來工作參考運用_B).ToString(); } if (!String.IsNullOrEmpty(v3[0].教材名稱_C)) { txt教材名稱C.Text = v3[0].教材名稱_C; txt符合訓練目標C.Text = v3[0].符合訓練目標_C.ToString(); txt架構規劃完整性C.Text = v3[0].架構規劃完整性_C.ToString(); txt符合課程時數C.Text = v3[0].符合課程時數_C.ToString(); txt引起學習興趣C.Text = v3[0].引起學習興趣_C.ToString(); txt未來工作參考運用C.Text = v3[0].未來工作參考運用_C.ToString(); lb合計C.Text = (v3[0].符合訓練目標_C + v3[0].架構規劃完整性_C + v3[0].符合課程時數_C + v3[0].引起學習興趣_C + v3[0].未來工作參考運用_C).ToString(); } txt總評.Text = v3[0].總評; txt備註.Text = v3[0].備註; } } private bool Validate分數() { string[] 教材名稱 = { txt教材名稱A.Text.Trim(), txt教材名稱B.Text.Trim(), txt教材名稱C.Text.Trim() }; string[][] 分數 = { new[] { txt符合訓練目標A.Text, txt架構規劃完整性A.Text, txt符合課程時數A.Text, txt引起學習興趣A.Text, txt未來工作參考運用A.Text }, new[] { txt符合訓練目標B.Text, txt架構規劃完整性B.Text, txt符合課程時數B.Text, txt引起學習興趣B.Text, txt未來工作參考運用B.Text }, new[] { txt符合訓練目標C.Text, txt架構規劃完整性C.Text, txt符合課程時數C.Text, txt引起學習興趣C.Text, txt未來工作參考運用C.Text } }; string[] 名稱 = { "一", "二", "三" }; for (int i = 0; i < 3; i++) { if (String.IsNullOrEmpty(教材名稱[i])) continue; foreach (string 值 in 分數[i]) { int 分 = DAC.GetInt32(值); if (分 < 0 || 分 > 20) { ClientShowMessage(String.Format("請完整填寫教材{0}的評分(0~20)。", 名稱[i])); return false; } } } return true; } protected void btnSave_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(txt教材名稱A.Text.Trim()) && String.IsNullOrEmpty(txt教材名稱B.Text.Trim()) && String.IsNullOrEmpty(txt教材名稱C.Text.Trim())) { ClientShowMessage("請至少輸入一項教材名稱。"); return; } if (!Validate分數()) return; 教材遴選Item item = Dao教材遴選.SelectOne(課程企劃ID, 課程序號).FirstOrDefault(); if (item == null) { item = new 教材遴選Item() { 課程企劃編號 = 課程企劃ID, 課程序號 = 課程序號, 教材名稱_A = txt教材名稱A.Text, 符合訓練目標_A = DAC.GetInt32(txt符合訓練目標A.Text), 架構規劃完整性_A = DAC.GetInt32(txt架構規劃完整性A.Text), 符合課程時數_A = DAC.GetInt32(txt符合課程時數A.Text), 引起學習興趣_A = DAC.GetInt32(txt引起學習興趣A.Text), 未來工作參考運用_A = DAC.GetInt32(txt未來工作參考運用A.Text), 教材名稱_B = txt教材名稱B.Text, 符合訓練目標_B = DAC.GetInt32(txt符合訓練目標B.Text), 架構規劃完整性_B = DAC.GetInt32(txt架構規劃完整性B.Text), 符合課程時數_B = DAC.GetInt32(txt符合課程時數B.Text), 引起學習興趣_B = DAC.GetInt32(txt引起學習興趣B.Text), 未來工作參考運用_B = DAC.GetInt32(txt未來工作參考運用B.Text), 教材名稱_C = txt教材名稱C.Text, 符合訓練目標_C = DAC.GetInt32(txt符合訓練目標C.Text), 架構規劃完整性_C = DAC.GetInt32(txt架構規劃完整性C.Text), 符合課程時數_C = DAC.GetInt32(txt符合課程時數C.Text), 引起學習興趣_C = DAC.GetInt32(txt引起學習興趣C.Text), 未來工作參考運用_C = DAC.GetInt32(txt未來工作參考運用C.Text), 總評 = txt總評.Text, 備註 = txt備註.Text }; Dao教材遴選.InsertOne(item); } else { item.教材名稱_A = txt教材名稱A.Text; item.符合訓練目標_A = DAC.GetInt32(txt符合訓練目標A.Text); item.架構規劃完整性_A = DAC.GetInt32(txt架構規劃完整性A.Text); item.符合課程時數_A = DAC.GetInt32(txt符合課程時數A.Text); item.引起學習興趣_A = DAC.GetInt32(txt引起學習興趣A.Text); item.未來工作參考運用_A = DAC.GetInt32(txt未來工作參考運用A.Text); item.教材名稱_B = txt教材名稱B.Text; item.符合訓練目標_B = DAC.GetInt32(txt符合訓練目標B.Text); item.架構規劃完整性_B = DAC.GetInt32(txt架構規劃完整性B.Text); item.符合課程時數_B = DAC.GetInt32(txt符合課程時數B.Text); item.引起學習興趣_B = DAC.GetInt32(txt引起學習興趣B.Text); item.未來工作參考運用_B = DAC.GetInt32(txt未來工作參考運用B.Text); item.教材名稱_C = txt教材名稱C.Text; item.符合訓練目標_C = DAC.GetInt32(txt符合訓練目標C.Text); item.架構規劃完整性_C = DAC.GetInt32(txt架構規劃完整性C.Text); item.符合課程時數_C = DAC.GetInt32(txt符合課程時數C.Text); item.引起學習興趣_C = DAC.GetInt32(txt引起學習興趣C.Text); item.未來工作參考運用_C = DAC.GetInt32(txt未來工作參考運用C.Text); item.總評 = txt總評.Text; item.備註 = txt備註.Text; Dao教材遴選.UpdateOne(item); } UpdateUI(); ClientShowMessage("儲存成功!"); } } }