void _bgWorkerLoad_DoWork(object sender, DoWorkEventArgs e) { // 取得學生類別 _StudentTagList = QueryTransfer.GetStudentTagList(); _SelectMappingDict1 = GetExcessCreditsBase1(); _SelectMappingDict2 = GetExcessCreditsBase2(); _SelectMappingDict3 = GetExcessCreditsBase3(); // 取得設定檔 _UDTConfigList = UDTTransfer.UDTConfigSelectByName(conf_name); if (_UDTConfigList.Count > 0) { UDTConfig cd = _UDTConfigList[0]; if (!string.IsNullOrWhiteSpace(cd.Data)) { try { _ConfigXML = XElement.Parse(cd.Data); } catch { } } } }
void _bgWorker_DoWork(object sender, DoWorkEventArgs e) { // 取得三年級學生一般生 _StudentExcessCreditDict = QueryTransfer.GetStudentExcessCreditDict(); // 取得比序資料 List <UDT_EnrolmentExcessCredits> EnrolmentExcessCreditsList = UDTTransfer.UDTEnrolmentExcessCreditsSelect(); _EnrolmentExcessCreditsDict.Clear(); foreach (UDT_EnrolmentExcessCredits data in EnrolmentExcessCreditsList) { if (!_EnrolmentExcessCreditsDict.ContainsKey(data.StudentID)) { _EnrolmentExcessCreditsDict.Add(data.StudentID, data); } } // 比對資料放入DataTable _dtTable.Clear(); _dtTableNonPass.Clear(); List <string> nameList = new List <string>(); nameList.Add("學號"); nameList.Add("班級"); nameList.Add("座號"); List <string> ColNameList = new List <string>(); ColNameList.Add("均衡學習"); ColNameList.Add("服務學習"); ColNameList.Add("體適能"); ColNameList.Add("競賽表現"); ColNameList.Add("檢定證照"); ColNameList.Add("獎勵紀錄"); ColNameList.Add("幹部任期"); foreach (string name in ColNameList) { nameList.Add(name); } // 填入 DataTable foreach (string name in nameList) { _dtTable.Columns.Add(name); _dtTableNonPass.Columns.Add(name); } _TotalCount = _passCount = _noPassCount = 0; foreach (int sid in _StudentExcessCreditDict.Keys) { DataRow dr = _dtTable.NewRow(); dr["學號"] = _StudentExcessCreditDict[sid].StudentNumber; dr["班級"] = _StudentExcessCreditDict[sid].ClassName; dr["座號"] = _StudentExcessCreditDict[sid].SeatNo; // 填入比序資料 if (_EnrolmentExcessCreditsDict.ContainsKey(sid)) { UDT_EnrolmentExcessCredits udata = _EnrolmentExcessCreditsDict[sid]; foreach (string colName in ColNameList) { switch (colName) { case "均衡學習": _StudentExcessCreditDict[sid].ExcessCreditDict.Add(colName, udata.Balanced); dr[colName] = udata.Balanced; break; case "服務學習": _StudentExcessCreditDict[sid].ExcessCreditDict.Add(colName, udata.Services); dr[colName] = udata.Services; break; case "體適能": _StudentExcessCreditDict[sid].ExcessCreditDict.Add(colName, udata.Fitness); dr[colName] = udata.Fitness; break; case "競賽表現": _StudentExcessCreditDict[sid].ExcessCreditDict.Add(colName, udata.Competition); dr[colName] = udata.Competition; break; case "檢定證照": _StudentExcessCreditDict[sid].ExcessCreditDict.Add(colName, udata.Verification); dr[colName] = udata.Verification; break; case "獎勵紀錄": _StudentExcessCreditDict[sid].ExcessCreditDict.Add(colName, udata.Merit); dr[colName] = udata.Merit; break; case "幹部任期": _StudentExcessCreditDict[sid].ExcessCreditDict.Add(colName, udata.Term); dr[colName] = udata.Term; break; } } bool pass = true; // 檢查是否有全部輸入 foreach (string str in _StudentExcessCreditDict[sid].ExcessCreditDict.Values) { if (string.IsNullOrEmpty(str)) { pass = false; break; } } _StudentExcessCreditDict[sid].InputPass = pass; if (pass) { _passCount++; } else { _noPassCount++; } } _TotalCount++; if (_StudentExcessCreditDict[sid].InputPass == false) { DataRow dr1 = _dtTableNonPass.NewRow(); foreach (string name in nameList) { dr1[name] = dr[name]; } _dtTableNonPass.Rows.Add(dr1); } _dtTable.Rows.Add(dr); } }
public ServiceRequestResult QueryTransfer(QueryTransfer request, out QueryTransferResult result) { return(ServiceRequest(EventNames.Transfer_Query, request, out result)); }
void _bgWorkerRun_DoWork(object sender, DoWorkEventArgs e) { // 學生基本資料與相關資料 _AddressRecDict.Clear(); _ParentDict.Clear(); _PhoneDict.Clear(); _StudentDict.Clear(); _dtTable.Clear(); _ClassNameDict.Clear(); // 學生畫面上所選,再排序過 _SelectStudentList = QueryTransfer.StudentSortByClassSeatNo(K12.Presentation.NLDPanels.Student.SelectedSource); // 三,九年級,一般狀態學生 _StudGradeList = QueryTransfer.GetStudeGrade3List(); // 學生,來自學生所選 if (_isStudent) { foreach (StudentRecord stud in Student.SelectByIDs(_SelectStudentList)) { _StudentDict.Add(stud.ID, stud); } } else { foreach (StudentRecord stud in Student.SelectByIDs(_StudGradeList)) { _StudentDict.Add(stud.ID, stud); } } // 班級 foreach (ClassRecord rec in Class.SelectAll()) { _ClassNameDict.Add(rec.ID, rec.Name.Substring(1, rec.Name.Length - 1)); } // 地址 foreach (AddressRecord rec in Address.SelectByStudentIDs(_StudGradeList)) { _AddressRecDict.Add(rec.RefStudentID, rec); } // 父母 foreach (ParentRecord rec in K12.Data.Parent.SelectByStudentIDs(_StudGradeList)) { _ParentDict.Add(rec.RefStudentID, rec); } // 電話 foreach (PhoneRecord rec in Phone.SelectByStudentIDs(_StudGradeList)) { _PhoneDict.Add(rec.RefStudentID, rec); } // 學生類別 _StudTagDict = QueryTransfer.GetStduentTagDict(); // 填入DataColumn name 資料 foreach (string name in GetDataTableColumnsName()) { _dtTable.Columns.Add(name); } List <string> tmptagList1 = new List <string> (); List <string> tmptagList2 = new List <string> (); List <string> exportStudentIDList = new List <string>(); if (_isStudent) { exportStudentIDList = _SelectStudentList; } else { exportStudentIDList = _StudGradeList; } // 填入 DataTable foreach (string id in exportStudentIDList) { // 地區代碼、集報單位代碼、序號、學號、班級、座號、學生姓名、身分證統一編號、性別、出生年、出生月、出生日、 // 畢業學校代碼、畢業年、畢肄業、學生身分、身心障礙、就學區、低收入戶、中低收入戶、失業勞工、資料授權、 // 家長姓名、市內電話、行動電話、郵遞區號、地址 DataRow dr = _dtTable.NewRow(); if (_StudentDict.ContainsKey(id)) { dr["地區代碼"] = ""; if (_SelectMappingDict1.ContainsKey(strType1)) { dr["地區代碼"] = _SelectMappingDict1[strType1]; } dr["學號"] = _StudentDict[id].StudentNumber; dr["班級"] = ""; if (_ClassNameDict.ContainsKey(_StudentDict[id].RefClassID)) { dr["班級"] = _ClassNameDict[_StudentDict[id].RefClassID].PadLeft(2, '0'); } dr["座號"] = ""; if (_StudentDict[id].SeatNo.HasValue) { dr["座號"] = _StudentDict[id].SeatNo.Value.ToString().PadLeft(2, '0'); } dr["學生姓名"] = _StudentDict[id].Name; dr["身分證統一編號"] = _StudentDict[id].IDNumber.ToUpper(); dr["性別"] = ""; if (_StudentDict[id].Gender == "男") { dr["性別"] = "1"; } if (_StudentDict[id].Gender == "女") { dr["性別"] = "2"; } dr["出生年"] = dr["出生月"] = dr["出生日"] = ""; if (_StudentDict[id].Birthday.HasValue) { dr["出生年"] = (_StudentDict[id].Birthday.Value.Year - 1911).ToString().PadLeft(3, '0'); dr["出生月"] = (_StudentDict[id].Birthday.Value.Month).ToString().PadLeft(2, '0'); dr["出生日"] = (_StudentDict[id].Birthday.Value.Day).ToString().PadLeft(2, '0'); } dr["畢業學校代碼"] = K12.Data.School.Code; dr["畢業年"] = K12.Data.School.DefaultSchoolYear.PadLeft(3, '0'); dr["畢肄業"] = "1"; dr["學生身分"] = "0"; dr["身心障礙"] = "0"; dr["低收入戶"] = "0"; dr["中低收入戶"] = "0"; dr["失業勞工"] = "0"; tmptagList1.Clear(); tmptagList2.Clear(); if (_StudTagDict.ContainsKey(id)) { foreach (string name in _StudTagDict[id]) { if (_strStudTagMappingDict1.ContainsKey(name)) { tmptagList1.Add(_strStudTagMappingDict1[name]); } if (_strStudTagMappingDict2.ContainsKey(name)) { tmptagList2.Add(_strStudTagMappingDict2[name]); } } if (tmptagList1.Count > 0) { dr["學生身分"] = string.Join(",", tmptagList1.ToArray()); } if (tmptagList2.Count > 0) { dr["身心障礙"] = string.Join(",", tmptagList2.ToArray()); } if (_StudTagDict[id].Contains(strType2)) { dr["低收入戶"] = "1"; } if (_StudTagDict[id].Contains(strType3)) { dr["中低收入戶"] = "1"; } if (_StudTagDict[id].Contains(strType4)) { dr["失業勞工"] = "1"; } } dr["資料授權"] = "1"; dr["家長姓名"] = ""; dr["市內電話"] = ""; // 監護人 if (_ParentDict.ContainsKey(id)) { if (strType6 == "父親") { dr["家長姓名"] = _ParentDict[id].FatherName; dr["市內電話"] = ParseTelStr(_ParentDict[id].FatherPhone); } if (strType6 == "母親") { dr["家長姓名"] = _ParentDict[id].MotherName; dr["市內電話"] = ParseTelStr(_ParentDict[id].MotherPhone); } if (strType6 == "監護人") { dr["家長姓名"] = _ParentDict[id].CustodianName; dr["市內電話"] = ParseTelStr(_ParentDict[id].CustodianPhone); } } dr["行動電話"] = ""; if (_PhoneDict.ContainsKey(id)) { dr["行動電話"] = ParseTelStr(_PhoneDict[id].Cell); } // 通訊地址 dr["郵遞區號"] = ""; dr["地址"] = ""; if (_AddressRecDict.ContainsKey(id)) { if (strType5 == "聯絡") { dr["郵遞區號"] = _AddressRecDict[id].MailingZipCode; dr["地址"] = _AddressRecDict[id].MailingCounty + _AddressRecDict[id].MailingTown + _AddressRecDict[id].MailingDistrict + _AddressRecDict[id].MailingArea + _AddressRecDict[id].MailingDetail; } if (strType5 == "戶籍") { dr["郵遞區號"] = _AddressRecDict[id].PermanentZipCode; dr["地址"] = _AddressRecDict[id].PermanentCounty + _AddressRecDict[id].PermanentTown + _AddressRecDict[id].PermanentDistrict + _AddressRecDict[id].PermanentArea + _AddressRecDict[id].PermanentDetail; } } } _dtTable.Rows.Add(dr); } // 取得樣板 Workbook wb = new Workbook(); wb.Open(new MemoryStream(Properties.Resources.基本資料樣板)); // 取得樣板欄位索引 Dictionary <string, int> ColNameDict = new Dictionary <string, int>(); for (int idx = 0; idx <= wb.Worksheets[0].Cells.MaxDataColumn; idx++) { string name = wb.Worksheets[0].Cells[0, idx].StringValue; if (!ColNameDict.ContainsKey(name)) { ColNameDict.Add(name, idx); } } // 填入資料 int rowIdx = 1; foreach (DataRow dr in _dtTable.Rows) { foreach (string name in GetDataTableColumnsName()) { if (ColNameDict.ContainsKey(name)) { wb.Worksheets[0].Cells[rowIdx, ColNameDict[name]].PutValue(dr[name].ToString()); } } rowIdx++; } e.Result = wb; }
void _bgWorker_DoWork(object sender, DoWorkEventArgs e) { // 取得特定年級資料 _dtTable = QueryTransfer.GetStudentExcessCreditDataTable(_gradeYear); // 讀取樣板 _wb.Open(new MemoryStream(Properties.Resources.比序資料樣板)); int row = 1, col = 0; foreach (DataRow dr in _dtTable.Rows) { // 出生年月日解析 DateTime dt; string sYY = "", sMM = "", sDD = ""; if (DateTime.TryParse(dr["出生年月日"].ToString(), out dt)) { sYY = (dt.Year - 1911).ToString(); sMM = dt.Month.ToString(); sDD = dt.Day.ToString(); } col = 0; foreach (string colName in _ColNameList) { if (colName == "出生年") { _wb.Worksheets[0].Cells[row, col].PutValue(strParse(sYY, colName)); } else if (colName == "出生月") { _wb.Worksheets[0].Cells[row, col].PutValue(strParse(sMM, colName)); } else if (colName == "出生日") { _wb.Worksheets[0].Cells[row, col].PutValue(strParse(sDD, colName)); } //else if (colName == "服務學習" || colName=="獎勵紀錄") //{ // _wb.Worksheets[0].Cells[row, col].PutValue(string.Format("{0:00.0}",dr[colName])); //} //else if (colName == "競賽表現") //{ // _wb.Worksheets[0].Cells[row, col].PutValue(string.Format("{0:00.00}", dr[colName])); //} else { // 轉換格式 if (_formatMappingDict.ContainsKey(colName)) { _wb.Worksheets[0].Cells[row, col].PutValue(strParse(dr[colName].ToString(), colName)); } else { string value = dr[colName].ToString(); // 身分證號統一編號,英文字母轉大寫 if (colName == "身分證號統一編號") { value = value.ToUpper(); } _wb.Worksheets[0].Cells[row, col].PutValue(value); } } col++; } row++; } }