public StudentMoralProcessor(DocumentBuilder builder, SemesterMap map) { _builder = builder; _map = map; _types = new Dictionary <string, List <string> >(); _run = WordHelper.CreateRun(_builder); #region 取得假別設定 ConfigData cd = K12.Data.School.Configuration["學籍表"]; if (cd.Contains("假別設定")) { XmlElement config = Framework.XmlHelper.LoadXml(cd["假別設定"]); foreach (XmlElement type in config.SelectNodes("Type")) { string typeName = type.GetAttribute("Text"); if (!_types.ContainsKey(typeName)) { _types.Add(typeName, new List <string>()); } foreach (XmlElement absence in type.SelectNodes("Absence")) { string absenceName = absence.GetAttribute("Text"); if (!_types[typeName].Contains(absenceName)) { _types[typeName].Add(absenceName); } } } } #endregion #region 取得社團成績 _assnScoreCache = new Dictionary <string, List <AssnScore> >(); FISCA.UDT.AccessHelper ah = new FISCA.UDT.AccessHelper(); // string condition = string.Format("SchoolYear='{0}' and Semester='{1}'", options.SchoolYear, options.Semester); // List<AssnCode> list = ah.Select<AssnCode>(condition); if (AssociationUDTCache == null) { AssociationUDTCache = ah.Select <AssnCode>(); } List <AssnCode> list = AssociationUDTCache; foreach (AssnCode record in list) { //if (!_assnScoreCache.ContainsKey(record.StudentID)) //{ XmlElement scores = K12.Data.XmlHelper.LoadXml(record.Scores); XmlElement itemElement = (XmlElement)scores.SelectSingleNode("Item"); if (itemElement != null) { AssnScore assnScore = new AssnScore() { Score = itemElement.GetAttribute("Score"), Effort = itemElement.GetAttribute("Effort"), Text = itemElement.GetAttribute("Text"), SchoolYear = record.SchoolYear, Semester = record.Semester }; if (_assnScoreCache.ContainsKey(record.StudentID)) { _assnScoreCache[record.StudentID].Add(assnScore); } else { List <AssnScore> lis = new List <AssnScore>(); lis.Add(assnScore); _assnScoreCache.Add(record.StudentID, lis); } } //} } //<Content> //<Item AssociationName="籃球社" Score="" Effort="" Text=""></Item> //</Content> #endregion }