Files
thinkyu/branches/1150807/Forms/課程企劃/PickupMaterial.aspx.cs
T
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

287 lines
14 KiB
C#

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("儲存成功!");
}
}
}