private void LoadSubFormData() { if (lvStudQuizData.SelectedItems.Count == 1) { DAO.UDT_StudQuizDataDef sqd = lvStudQuizData.SelectedItems[0].Tag as DAO.UDT_StudQuizDataDef; if (sqd != null) { Forms.StudQuizDataForm sqdf = new Forms.StudQuizDataForm(sqd, Forms.StudQuizDataForm.EditMode.Edit, PrimaryKey); sqdf.ShowDialog(); } _BGRun(); } }
private void btnDel_Click(object sender, EventArgs e) { // 刪除 if (lvStudQuizData.SelectedItems.Count == 1) { DAO.UDT_StudQuizDataDef sqd = lvStudQuizData.SelectedItems[0].Tag as DAO.UDT_StudQuizDataDef; if (sqd != null) { if (FISCA.Presentation.Controls.MsgBox.Show("請問刪除測驗資料", "刪除測驗資料", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { List <DAO.UDT_StudQuizDataDef> delData = new List <DAO.UDT_StudQuizDataDef> (); delData.Add(sqd); K12.Data.StudentRecord rec = K12.Data.Student.SelectByID(PrimaryKey); StringBuilder logData = new StringBuilder(); logData.AppendLine("刪除" + Utility.ConvertString1(rec)); logData.AppendLine("測驗名稱「 " + lvStudQuizData.SelectedItems[0].SubItems[0].Text + " 」"); if (sqd.ImplementationDate.HasValue) { logData.AppendLine("實施日期:" + sqd.ImplementationDate.Value.ToShortDateString()); } if (sqd.AnalysisDate.HasValue) { logData.AppendLine("解析日期:" + sqd.AnalysisDate.Value.ToShortDateString()); } XElement elmContent = Utility.ConvertStringToXelm1(sqd.Content); if (elmContent != null) { foreach (XElement elm in elmContent.Elements("Item")) { if (elm.Attribute("name") != null && elm.Attribute("value") != null) { logData.AppendLine("項目名稱:" + elm.Attribute("name").Value + " , 測驗結果:" + elm.Attribute("value").Value); } } } _UDTTransfer.DeleteStudQuizDataLlist(delData); // log _LogTransfer.SaveLog("學生.輔導相關測驗-刪除", "刪除", "student", PrimaryKey, logData); _BGRun(); } } } }
public StudQuizDataForm(DAO.UDT_StudQuizDataDef sqd,EditMode editMode,string StudentID) { InitializeComponent(); _EditMode = editMode; _RowNameList = new List<string>(); _StudQuizData = sqd; _UDTTransfer = new DAO.UDTTransfer(); _AllQuiz = _UDTTransfer.GetAllQuizData(); _quizFieldNameList = new List<DAO.SortData1>(); _StudentID = StudentID; _LogTransfer = new DAO.LogTransfer(); // 將測驗名稱放入 List<string> nameList = (from data in _AllQuiz orderby data.QuizName select data.QuizName).ToList(); cbxQuizName.Items.AddRange(nameList.ToArray()); ReLoadQuizFieldNameList(); }
public StudQuizDataForm(DAO.UDT_StudQuizDataDef sqd, EditMode editMode, string StudentID) { InitializeComponent(); _EditMode = editMode; _RowNameList = new List <string>(); _StudQuizData = sqd; _UDTTransfer = new DAO.UDTTransfer(); _AllQuiz = _UDTTransfer.GetAllQuizData(); _quizFieldNameList = new List <DAO.SortData1>(); _StudentID = StudentID; _LogTransfer = new DAO.LogTransfer(); // 將測驗名稱放入 List <string> nameList = (from data in _AllQuiz orderby data.QuizName select data.QuizName).ToList(); cbxQuizName.Items.AddRange(nameList.ToArray()); ReLoadQuizFieldNameList(); }
/// <summary> /// 分批執行匯入 /// </summary> /// <param name="Rows">IRowStream物件列表</param> /// <returns>分批匯入完成訊息</returns> public override string Import(List<IRowStream> Rows) { if (mOption.Action == ImportAction.InsertOrUpdate) { try { // log DAO.LogTransfer _logTransfer = new DAO.LogTransfer(); List<DAO.UDT_StudQuizDataDef> StudQuizDataList = new List<DAO.UDT_StudQuizDataDef>(); List<DAO.UDT_StudQuizDataDef> DelQuizDataList = new List<DAO.UDT_StudQuizDataDef>(); List<DAO.UDT_StudQuizDataDef> HasQuizDataList = new List<DAO.UDT_StudQuizDataDef>(); // 新增 Log Dictionary<int,StringBuilder> Log_Insert =new Dictionary<int,StringBuilder> (); // 刪除 Log Dictionary<int, StringBuilder> Log_Delete = new Dictionary<int, StringBuilder>(); List<string> studentNumberList = new List<string>(); List<string> ClassSeatNoList = new List<string>(); // 取得試別有學生資料 HasQuizDataList = _UDTTransfer.GetStudQuizDataByQuizID(_QuizID); int count = 0; string AuthorID = Utility.GetAuthorID(); foreach (IRowStream irs in Rows) { count++; this.ImportProgress = count; int sid = 0; // 依學號比對 if (irs.Contains("學號") && irs.Contains("狀態")) { if (Global._StudentStatusDBDict.ContainsKey(irs.GetValue("狀態"))) { sid = Utility.GetStudentID(irs.GetValue("學號"), irs.GetValue("狀態")); studentNumberList.Add("學號:"+irs.GetValue("學號")); } } // 依班座比對 if (irs.Contains("班級") && irs.Contains("座號") && irs.Contains("狀態")) { if (Global._StudentStatusDBDict.ContainsKey(irs.GetValue("狀態"))) { sid = Utility.GetStudentID(irs.GetValue("班級"), irs.GetValue("座號"), irs.GetValue("狀態")); ClassSeatNoList.Add("班級:" + irs.GetValue("班級") + ",座號:" + irs.GetValue("座號")); } } // 比對需要刪除 foreach(DAO.UDT_StudQuizDataDef data in HasQuizDataList.Where(x=>x.StudentID ==sid)) { DelQuizDataList.Add(data); } DAO.UDT_StudQuizDataDef sqd = new DAO.UDT_StudQuizDataDef(); sqd.QuizID = int.Parse(_QuizID); sqd.AuthorID = AuthorID; sqd.StudentID = sid; DateTime dt1, dt2; if (irs.Contains("實施日期")) if (DateTime.TryParse(irs.GetValue("實施日期"), out dt1)) sqd.ImplementationDate = dt1; if (irs.Contains("解析日期")) if (DateTime.TryParse(irs.GetValue("解析日期"), out dt2)) sqd.AnalysisDate = dt2; List<XElement> elmList = new List<XElement>(); foreach (string str in _DataFieldNameList) { if (irs.Contains(str)) { XElement elm = new XElement("Item"); elm.SetAttributeValue("name", str); elm.SetAttributeValue("value", irs.GetValue(str)); elmList.Add(elm); } } sqd.Content = Utility.ConvertXmlListToString1(elmList); StudQuizDataList.Add(sqd); } if (DelQuizDataList.Count > 0) { List<int> intList = (from data in DelQuizDataList select data.StudentID).ToList(); Dictionary<int, string> studNameDict = Utility.GetConvertStringDict1fromDB(intList); // 收集 Log foreach (DAO.UDT_StudQuizDataDef data in DelQuizDataList) { if(studNameDict.ContainsKey(data.StudentID)) { StringBuilder sb = new StringBuilder(); sb.AppendLine("匯入輔導測驗-刪除"); sb.AppendLine(studNameDict[data.StudentID]); sb.AppendLine("測驗名稱:" + _QuizName); if (data.ImplementationDate.HasValue) sb.AppendLine("實施日期:" + data.ImplementationDate.Value.ToShortDateString()); if (data.AnalysisDate.HasValue) sb.AppendLine("解析日期:" + data.AnalysisDate.Value.ToShortDateString()); XElement elmContent = Utility.ConvertStringToXelm1(data.Content); if (elmContent != null) { foreach (XElement elm in elmContent.Elements("Item")) { if (elm.Attribute("name") != null && elm.Attribute("value") != null) sb.AppendLine("項目名稱:" + elm.Attribute("name").Value + " , 測驗結果:" + elm.Attribute("value").Value); } } if (!Log_Delete.ContainsKey(data.StudentID)) Log_Delete.Add(data.StudentID, sb); } } _UDTTransfer.DeleteStudQuizDataLlist(DelQuizDataList); } if (StudQuizDataList.Count > 0) { List<int> intList = (from data in StudQuizDataList select data.StudentID).ToList(); Dictionary<int, string> studNameDict = Utility.GetConvertStringDict1fromDB(intList); // 收集 Log foreach (DAO.UDT_StudQuizDataDef data in StudQuizDataList) { if (studNameDict.ContainsKey(data.StudentID)) { StringBuilder sb = new StringBuilder(); // 檢查是否有刪除,有放上面 if (Log_Delete.ContainsKey(data.StudentID)) { sb.AppendLine(Log_Delete[data.StudentID].ToString()); sb.AppendLine(); } sb.AppendLine("匯入輔導測驗-新增"); sb.AppendLine(studNameDict[data.StudentID]); sb.AppendLine("測驗名稱:" + _QuizName); if (data.ImplementationDate.HasValue) sb.AppendLine("實施日期:" + data.ImplementationDate.Value.ToShortDateString()); if (data.AnalysisDate.HasValue) sb.AppendLine("解析日期:" + data.AnalysisDate.Value.ToShortDateString()); XElement elmContent = Utility.ConvertStringToXelm1(data.Content); if (elmContent != null) { foreach (XElement elm in elmContent.Elements("Item")) { if (elm.Attribute("name") != null && elm.Attribute("value") != null) sb.AppendLine("項目名稱:" + elm.Attribute("name").Value + " , 測驗結果:" + elm.Attribute("value").Value); } } if (!Log_Insert.ContainsKey(data.StudentID)) Log_Insert.Add(data.StudentID, sb); } } _UDTTransfer.InsertStudQuizDataLlist(StudQuizDataList); } // log 資料 if (Log_Insert.Count > 0) { foreach (KeyValuePair<int, StringBuilder> data in Log_Insert) _logTransfer.SaveLog("輔導系統-匯入測驗資料", "匯入", "student", data.Key.ToString(), data.Value); } // 總共 StringBuilder logData = new StringBuilder(); logData.AppendLine("測驗名稱:" + _QuizName); if (ClassSeatNoList.Count > 0) { logData.AppendLine("--依班級座號匯入--"); foreach (string str in ClassSeatNoList) logData.AppendLine(str); logData.AppendLine("匯入學生共"+ClassSeatNoList.Count+"人"); } if (studentNumberList.Count > 0) { logData.AppendLine("--依學號匯入--"); foreach (string str in studentNumberList) logData.AppendLine(str); logData.AppendLine("匯入學生共" + studentNumberList.Count + "人"); } // 寫入 log _logTransfer.SaveLog("輔導系統.匯入測驗資料", "匯入", "", "", logData); } catch(Exception ex) { throw ex; } } return ""; }
/// <summary> /// 分批執行匯入 /// </summary> /// <param name="Rows">IRowStream物件列表</param> /// <returns>分批匯入完成訊息</returns> public override string Import(List <IRowStream> Rows) { if (mOption.Action == ImportAction.InsertOrUpdate) { try { // log DAO.LogTransfer _logTransfer = new DAO.LogTransfer(); List <DAO.UDT_StudQuizDataDef> StudQuizDataList = new List <DAO.UDT_StudQuizDataDef>(); List <DAO.UDT_StudQuizDataDef> DelQuizDataList = new List <DAO.UDT_StudQuizDataDef>(); List <DAO.UDT_StudQuizDataDef> HasQuizDataList = new List <DAO.UDT_StudQuizDataDef>(); // 新增 Log Dictionary <int, StringBuilder> Log_Insert = new Dictionary <int, StringBuilder> (); // 刪除 Log Dictionary <int, StringBuilder> Log_Delete = new Dictionary <int, StringBuilder>(); List <string> studentNumberList = new List <string>(); List <string> ClassSeatNoList = new List <string>(); // 取得試別有學生資料 HasQuizDataList = _UDTTransfer.GetStudQuizDataByQuizID(_QuizID); int count = 0; string AuthorID = Utility.GetAuthorID(); foreach (IRowStream irs in Rows) { count++; this.ImportProgress = count; int sid = 0; // 依學號比對 if (irs.Contains("學號") && irs.Contains("狀態")) { if (Global._StudentStatusDBDict.ContainsKey(irs.GetValue("狀態"))) { sid = Utility.GetStudentID(irs.GetValue("學號"), irs.GetValue("狀態")); studentNumberList.Add("學號:" + irs.GetValue("學號")); } } // 依班座比對 if (irs.Contains("班級") && irs.Contains("座號") && irs.Contains("狀態")) { if (Global._StudentStatusDBDict.ContainsKey(irs.GetValue("狀態"))) { sid = Utility.GetStudentID(irs.GetValue("班級"), irs.GetValue("座號"), irs.GetValue("狀態")); ClassSeatNoList.Add("班級:" + irs.GetValue("班級") + ",座號:" + irs.GetValue("座號")); } } // 比對需要刪除 foreach (DAO.UDT_StudQuizDataDef data in HasQuizDataList.Where(x => x.StudentID == sid)) { DelQuizDataList.Add(data); } DAO.UDT_StudQuizDataDef sqd = new DAO.UDT_StudQuizDataDef(); sqd.QuizID = int.Parse(_QuizID); sqd.AuthorID = AuthorID; sqd.StudentID = sid; DateTime dt1, dt2; if (irs.Contains("實施日期")) { if (DateTime.TryParse(irs.GetValue("實施日期"), out dt1)) { sqd.ImplementationDate = dt1; } } if (irs.Contains("解析日期")) { if (DateTime.TryParse(irs.GetValue("解析日期"), out dt2)) { sqd.AnalysisDate = dt2; } } List <XElement> elmList = new List <XElement>(); foreach (string str in _DataFieldNameList) { if (irs.Contains(str)) { XElement elm = new XElement("Item"); elm.SetAttributeValue("name", str); elm.SetAttributeValue("value", irs.GetValue(str)); elmList.Add(elm); } } sqd.Content = Utility.ConvertXmlListToString1(elmList); StudQuizDataList.Add(sqd); } if (DelQuizDataList.Count > 0) { List <int> intList = (from data in DelQuizDataList select data.StudentID).ToList(); Dictionary <int, string> studNameDict = Utility.GetConvertStringDict1fromDB(intList); // 收集 Log foreach (DAO.UDT_StudQuizDataDef data in DelQuizDataList) { if (studNameDict.ContainsKey(data.StudentID)) { StringBuilder sb = new StringBuilder(); sb.AppendLine("匯入輔導測驗-刪除"); sb.AppendLine(studNameDict[data.StudentID]); sb.AppendLine("測驗名稱:" + _QuizName); if (data.ImplementationDate.HasValue) { sb.AppendLine("實施日期:" + data.ImplementationDate.Value.ToShortDateString()); } if (data.AnalysisDate.HasValue) { sb.AppendLine("解析日期:" + data.AnalysisDate.Value.ToShortDateString()); } XElement elmContent = Utility.ConvertStringToXelm1(data.Content); if (elmContent != null) { foreach (XElement elm in elmContent.Elements("Item")) { if (elm.Attribute("name") != null && elm.Attribute("value") != null) { sb.AppendLine("項目名稱:" + elm.Attribute("name").Value + " , 測驗結果:" + elm.Attribute("value").Value); } } } if (!Log_Delete.ContainsKey(data.StudentID)) { Log_Delete.Add(data.StudentID, sb); } } } _UDTTransfer.DeleteStudQuizDataLlist(DelQuizDataList); } if (StudQuizDataList.Count > 0) { List <int> intList = (from data in StudQuizDataList select data.StudentID).ToList(); Dictionary <int, string> studNameDict = Utility.GetConvertStringDict1fromDB(intList); // 收集 Log foreach (DAO.UDT_StudQuizDataDef data in StudQuizDataList) { if (studNameDict.ContainsKey(data.StudentID)) { StringBuilder sb = new StringBuilder(); // 檢查是否有刪除,有放上面 if (Log_Delete.ContainsKey(data.StudentID)) { sb.AppendLine(Log_Delete[data.StudentID].ToString()); sb.AppendLine(); } sb.AppendLine("匯入輔導測驗-新增"); sb.AppendLine(studNameDict[data.StudentID]); sb.AppendLine("測驗名稱:" + _QuizName); if (data.ImplementationDate.HasValue) { sb.AppendLine("實施日期:" + data.ImplementationDate.Value.ToShortDateString()); } if (data.AnalysisDate.HasValue) { sb.AppendLine("解析日期:" + data.AnalysisDate.Value.ToShortDateString()); } XElement elmContent = Utility.ConvertStringToXelm1(data.Content); if (elmContent != null) { foreach (XElement elm in elmContent.Elements("Item")) { if (elm.Attribute("name") != null && elm.Attribute("value") != null) { sb.AppendLine("項目名稱:" + elm.Attribute("name").Value + " , 測驗結果:" + elm.Attribute("value").Value); } } } if (!Log_Insert.ContainsKey(data.StudentID)) { Log_Insert.Add(data.StudentID, sb); } } } _UDTTransfer.InsertStudQuizDataLlist(StudQuizDataList); } // log 資料 if (Log_Insert.Count > 0) { foreach (KeyValuePair <int, StringBuilder> data in Log_Insert) { _logTransfer.SaveLog("輔導系統-匯入測驗資料", "匯入", "student", data.Key.ToString(), data.Value); } } // 總共 StringBuilder logData = new StringBuilder(); logData.AppendLine("測驗名稱:" + _QuizName); if (ClassSeatNoList.Count > 0) { logData.AppendLine("--依班級座號匯入--"); foreach (string str in ClassSeatNoList) { logData.AppendLine(str); } logData.AppendLine("匯入學生共" + ClassSeatNoList.Count + "人"); } if (studentNumberList.Count > 0) { logData.AppendLine("--依學號匯入--"); foreach (string str in studentNumberList) { logData.AppendLine(str); } logData.AppendLine("匯入學生共" + studentNumberList.Count + "人"); } // 寫入 log _logTransfer.SaveLog("輔導系統.匯入測驗資料", "匯入", "", "", logData); } catch (Exception ex) { throw ex; } } return(""); }
private void btnSave_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(cbxQuizName.Text)) { FISCA.Presentation.Controls.MsgBox.Show("請選擇測驗名稱."); return; } if (dtAnalysisDate.IsEmpty) { FISCA.Presentation.Controls.MsgBox.Show("請輸入解析日期."); return; } if (dtImplementationDate.IsEmpty) { FISCA.Presentation.Controls.MsgBox.Show("請輸入實施日期."); return; } foreach (DataGridViewRow dr in dgQuizData.Rows) { int errCot = 0; if (dr.Cells[colDataField.Index].ErrorText != "") { errCot++; } if (errCot > 0) { FISCA.Presentation.Controls.MsgBox.Show("資料有錯誤無法儲存."); return; } } LogData(); if (_StudQuizData == null) { _StudQuizData = new DAO.UDT_StudQuizDataDef(); } _StudQuizData.StudentID = int.Parse(_StudentID); _StudQuizData.ImplementationDate = dtImplementationDate.Value; _StudQuizData.AnalysisDate = dtAnalysisDate.Value; List <XElement> xmlList = new List <XElement>(); foreach (DataGridViewRow dgvr in dgQuizData.Rows) { if (dgvr.IsNewRow) { continue; } XElement elm = new XElement("Item"); if (dgvr.Cells[colDataField.Index].Value != null) { elm.SetAttributeValue("name", dgvr.Cells[colDataField.Index].Value.ToString()); } if (dgvr.Cells[colDataValue.Index].Value != null) { elm.SetAttributeValue("value", dgvr.Cells[colDataValue.Index].Value.ToString()); } xmlList.Add(elm); } _StudQuizData.Content = Utility.ConvertXmlListToString1(xmlList); if (_EditMode == EditMode.Edit) { _UDTTransfer.UpdateStudQuizData(_StudQuizData); // log _LogTransfer.SaveChangeLog("學生.輔導測驗相關-修改", "修改", _LogStudentName + ",修改測驗名稱:" + cbxQuizName.Text + "\n", "", "student", _StudentID); } else { // 取得所選測驗ID foreach (DAO.UDT_QuizDef data in _AllQuiz.Where(x => x.QuizName == cbxQuizName.Text)) { _StudQuizData.QuizID = int.Parse(data.UID); } // 檢查學生測驗是否有名稱id if (_StudQuizData.QuizID < 1) { FISCA.Presentation.Controls.MsgBox.Show("測驗名稱無法對應."); return; } bool pass = true; // 檢查學生測驗資料是否有相同:測驗名稱 if (_StudQuizDataList == null) { _StudQuizDataList = new List <DAO.UDT_StudQuizDataDef>(); } foreach (DAO.UDT_StudQuizDataDef data in _StudQuizDataList.Where(x => x.QuizID == _StudQuizData.QuizID)) { pass = false; } if (pass == false) { FISCA.Presentation.Controls.MsgBox.Show("已有相同測驗名稱無法新增."); return; } if (pass) { _UDTTransfer.InsertStudQuizData(_StudQuizData); _LogTransfer.SaveInsertLog("學生.輔導相關測驗-新增", "新增", _LogStudentName + ",新增測驗名稱:" + cbxQuizName.Text + "\n", "", "student", _StudentID); } } _LogTransfer.Clear(); LogData(); this.Close(); }
private void StudQuizDataForm_Load(object sender, EventArgs e) { // 取得學生資料 StudentRecord studRec = Student.SelectByID(_StudentID); _StudQuizDataList = _UDTTransfer.GetStudQuizDataByStudentID(studRec.ID); // log 學生資訊用 _LogStudentName = Utility.ConvertString1(studRec); if (_StudQuizData == null) { _StudQuizData = new DAO.UDT_StudQuizDataDef(); } if (_EditMode == EditMode.Edit) { // 取得測驗名稱 foreach (DAO.UDT_QuizDef data in _AllQuiz.Where(x => x.UID == _StudQuizData.QuizID.ToString())) { _qdd = data; } if (_qdd == null) { FISCA.Presentation.Controls.MsgBox.Show("無法解析測驗內容."); return; } } if (studRec != null) { string str = ""; if (studRec.Class != null) { str += studRec.Class.Name + " "; } str += studRec.Name + " "; str += studRec.StudentNumber; str = " (" + str + ")"; if (_EditMode == EditMode.Edit) { this.Text = _qdd.QuizName + str; } else { this.Text = str; } } // 當編輯模式,測驗名稱,不能修改 if (_EditMode == EditMode.Edit) { cbxQuizName.Text = _qdd.QuizName; cbxQuizName.Enabled = false; if (_StudQuizData.ImplementationDate.HasValue) { dtImplementationDate.Value = _StudQuizData.ImplementationDate.Value; } if (_StudQuizData.AnalysisDate.HasValue) { dtAnalysisDate.Value = _StudQuizData.AnalysisDate.Value; } dgQuizData.Rows.Clear(); int rowIdx = 0; dgQuizData.Columns[colDataField.Index].ReadOnly = false; XElement elmContent = Utility.ConvertStringToXelm1(_StudQuizData.Content); if (elmContent != null) { // 沒有在試別欄位加入 List <string> fieldList = (from data in elmContent.Elements("Item") select data.Attribute("name").Value).ToList(); foreach (string str in fieldList) { if (!_RowNameList.Contains(str)) { _RowNameList.Add(str); } } // 依試別欄位順序排序 foreach (string str in _RowNameList) { foreach (XElement elm in elmContent.Elements("Item").Where(x => x.Attribute("name").Value == str)) { rowIdx = dgQuizData.Rows.Add(); if (elm.Attribute("name") != null) { dgQuizData.Rows[rowIdx].Cells[colDataField.Index].Value = elm.Attribute("name").Value; } if (elm.Attribute("value") != null) { dgQuizData.Rows[rowIdx].Cells[colDataValue.Index].Value = elm.Attribute("value").Value; } } } } dgQuizData.Columns[colDataField.Index].ReadOnly = true; } _LogTransfer.Clear(); LogData(); }
private void btnSave_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(cbxQuizName.Text)) { FISCA.Presentation.Controls.MsgBox.Show("請選擇測驗名稱."); return; } if (dtAnalysisDate.IsEmpty) { FISCA.Presentation.Controls.MsgBox.Show("請輸入解析日期."); return; } if (dtImplementationDate.IsEmpty) { FISCA.Presentation.Controls.MsgBox.Show("請輸入實施日期."); return; } foreach (DataGridViewRow dr in dgQuizData.Rows) { int errCot = 0; if (dr.Cells[colDataField.Index].ErrorText != "") errCot++; if (errCot > 0) { FISCA.Presentation.Controls.MsgBox.Show("資料有錯誤無法儲存."); return; } } LogData(); if (_StudQuizData == null) _StudQuizData = new DAO.UDT_StudQuizDataDef(); _StudQuizData.StudentID = int.Parse(_StudentID); _StudQuizData.ImplementationDate = dtImplementationDate.Value; _StudQuizData.AnalysisDate = dtAnalysisDate.Value; List<XElement> xmlList = new List<XElement>(); foreach (DataGridViewRow dgvr in dgQuizData.Rows) { if (dgvr.IsNewRow) continue; XElement elm = new XElement("Item"); if(dgvr.Cells[colDataField.Index].Value !=null ) elm.SetAttributeValue("name", dgvr.Cells[colDataField.Index].Value.ToString()); if (dgvr.Cells[colDataValue.Index].Value != null) elm.SetAttributeValue("value", dgvr.Cells[colDataValue.Index].Value.ToString()); xmlList.Add(elm); } _StudQuizData.Content = Utility.ConvertXmlListToString1(xmlList); if (_EditMode == EditMode.Edit) { _UDTTransfer.UpdateStudQuizData(_StudQuizData); // log _LogTransfer.SaveChangeLog("學生.輔導測驗相關-修改", "修改",_LogStudentName+",修改測驗名稱:"+cbxQuizName.Text+"\n", "", "student",_StudentID); } else { // 取得所選測驗ID foreach (DAO.UDT_QuizDef data in _AllQuiz.Where(x => x.QuizName == cbxQuizName.Text)) _StudQuizData.QuizID = int.Parse(data.UID); // 檢查學生測驗是否有名稱id if (_StudQuizData.QuizID < 1) { FISCA.Presentation.Controls.MsgBox.Show("測驗名稱無法對應."); return; } bool pass = true; // 檢查學生測驗資料是否有相同:測驗名稱 if (_StudQuizDataList == null) _StudQuizDataList = new List<DAO.UDT_StudQuizDataDef>(); foreach (DAO.UDT_StudQuizDataDef data in _StudQuizDataList.Where(x => x.QuizID == _StudQuizData.QuizID)) pass = false; if (pass == false) { FISCA.Presentation.Controls.MsgBox.Show("已有相同測驗名稱無法新增."); return; } if (pass) { _UDTTransfer.InsertStudQuizData(_StudQuizData); _LogTransfer.SaveInsertLog("學生.輔導相關測驗-新增", "新增",_LogStudentName+",新增測驗名稱:"+cbxQuizName.Text+"\n","", "student", _StudentID); } } _LogTransfer.Clear(); LogData(); this.Close(); }
private void StudQuizDataForm_Load(object sender, EventArgs e) { // 取得學生資料 StudentRecord studRec = Student.SelectByID(_StudentID); _StudQuizDataList = _UDTTransfer.GetStudQuizDataByStudentID(studRec.ID); // log 學生資訊用 _LogStudentName = Utility.ConvertString1(studRec); if (_StudQuizData == null) { _StudQuizData = new DAO.UDT_StudQuizDataDef(); } if (_EditMode == EditMode.Edit) { // 取得測驗名稱 foreach (DAO.UDT_QuizDef data in _AllQuiz.Where(x => x.UID == _StudQuizData.QuizID.ToString())) _qdd = data; if (_qdd == null) { FISCA.Presentation.Controls.MsgBox.Show("無法解析測驗內容."); return; } } if (studRec != null) { string str = ""; if(studRec.Class !=null ) str+=studRec.Class.Name+" "; str+=studRec.Name+" "; str += studRec.StudentNumber; str = " (" + str + ")"; if (_EditMode == EditMode.Edit) this.Text = _qdd.QuizName + str; else this.Text = str; } // 當編輯模式,測驗名稱,不能修改 if (_EditMode == EditMode.Edit) { cbxQuizName.Text = _qdd.QuizName; cbxQuizName.Enabled = false; if (_StudQuizData.ImplementationDate.HasValue) dtImplementationDate.Value = _StudQuizData.ImplementationDate.Value; if (_StudQuizData.AnalysisDate.HasValue) dtAnalysisDate.Value = _StudQuizData.AnalysisDate.Value; dgQuizData.Rows.Clear(); int rowIdx = 0; dgQuizData.Columns[colDataField.Index].ReadOnly = false; XElement elmContent = Utility.ConvertStringToXelm1(_StudQuizData.Content); if (elmContent != null) { // 沒有在試別欄位加入 List<string> fieldList = (from data in elmContent.Elements("Item") select data.Attribute("name").Value).ToList(); foreach (string str in fieldList) if (!_RowNameList.Contains(str)) _RowNameList.Add(str); // 依試別欄位順序排序 foreach (string str in _RowNameList) { foreach (XElement elm in elmContent.Elements("Item").Where(x => x.Attribute("name").Value == str)) { rowIdx = dgQuizData.Rows.Add(); if (elm.Attribute("name") != null) dgQuizData.Rows[rowIdx].Cells[colDataField.Index].Value = elm.Attribute("name").Value; if (elm.Attribute("value") != null) dgQuizData.Rows[rowIdx].Cells[colDataValue.Index].Value = elm.Attribute("value").Value; } } } dgQuizData.Columns[colDataField.Index].ReadOnly = true; } _LogTransfer.Clear(); LogData(); }