//覆寫
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            List <School> GraduateList = tool._A.Select <School>(Program.MainPanel.SelectedSource);

            wizard.ExportableFields.AddRange("學校系統編號", "學校名稱", "DSNS", "群組", "註解");

            wizard.ExportPackage += (sender, e) =>
            {
                for (int i = 0; i < GraduateList.Count; i++)
                {
                    RowData row = new RowData();
                    row.ID = GraduateList[i].UID;
                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "學校系統編號": row.Add(field, "" + GraduateList[i].UID); break;

                            case "學校名稱": row.Add(field, "" + GraduateList[i].Title); break;

                            case "DSNS": row.Add(field, "" + GraduateList[i].DSNS); break;

                            case "群組": row.Add(field, "" + GraduateList[i].Group); break;

                            case "註解": row.Add(field, "" + GraduateList[i].Comment); break;
                            }
                        }
                    }

                    e.Items.Add(row);
                }
            };
        }
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange(ExportItemList);
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                int RowCount = 0;

                List <DAO.UDT_CounselUserDefDataDef> CounselUserDefDataList = _UDTTransfer.GetCounselUserDefineDataByStudentIDList(e.List);

                foreach (DAO.UDT_CounselUserDefDataDef udd in CounselUserDefDataList)
                {
                    RowData row = new RowData();
                    row.ID = udd.StudentID.ToString();

                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "欄位名稱": row.Add(field, udd.FieldName); break;

                            case "值": row.Add(field, udd.Value); break;

                            case "狀態":
                                row.Add(field, udd.StudentStatus);
                                break;
                            }
                        }
                    }
                    RowCount++;
                    e.Items.Add(row);
                }
            };
        }
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange(ExportItemList);
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                int RowCount = 0;
                foreach (DAL.UserDefData udd in UDTTransfer.GetDataFromUDT(e.List))
                {
                    RowData row = new RowData();
                    row.ID = udd.RefID;

                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "欄位名稱": row.Add(field, udd.FieldName); break;

                            case "值": row.Add(field, udd.Value); break;
                            }
                        }
                    }
                    RowCount++;
                    e.Items.Add(row);
                }
            };
        }
Esempio n. 4
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange(DAL.DALTransfer.GetTeacherTagPrefixList(Teacher.Instance.SelectedKeys));

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                List <DAL.TeacherTagEntity> TeacherTagList = DAL.DALTransfer.GetTeacherTagList(e.List);
                foreach (DAL.TeacherTagEntity ste in TeacherTagList)
                {
                    RowData row = new RowData();
                    row.ID = ste.TeacherID;
                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            if (ste.PrefixNameDic.ContainsKey(field))
                            {
                                string str = "";
                                foreach (string strItem in ste.PrefixNameDic[field])
                                {
                                    str += strItem + "、";
                                }
                                str = str.Substring(0, str.Length - 1);
                                row.Add(field, str);
                            }
                        }
                    }
                    e.Items.Add(row);
                }

                PermRecLogProcess prlp = new PermRecLogProcess();
                prlp.SaveLog("教師.匯出類別", "匯出", "共匯出" + TeacherTagList.Count + "筆教師類別資料.");
            };
        }
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            var 匯出代碼   = new SmartSchool.API.PlugIn.VirtualRadioButton("匯出校系代碼", true);
            var 匯出校系名稱 = new SmartSchool.API.PlugIn.VirtualRadioButton("匯出校系名稱", false);

            wizard.Options.Add(匯出代碼);
            wizard.Options.Add(匯出校系名稱);
            int         wishLimint = 5;
            List <分發設定> list       = _AccessHelper.Select <分發設定>();

            if (list.Count > 0)
            {
                wishLimint = list[0].志願上限;
            }
            for (int i = 1; i <= wishLimint; i++)
            {
                wizard.ExportableFields.Add("第" + i + "志願");
            }
            wizard.PackageLimit   = 200;
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                Dictionary <string, SmartSchool.API.PlugIn.RowData> dicRowDatas = new Dictionary <string, SmartSchool.API.PlugIn.RowData>();
                foreach (var refStudentID in e.List)
                {
                    SmartSchool.API.PlugIn.RowData rowData = new SmartSchool.API.PlugIn.RowData();
                    rowData.ID = refStudentID;
                    dicRowDatas.Add(refStudentID, rowData);
                    e.Items.Add(rowData);
                }
                FISCA.UDT.Condition.InCondition condition = new FISCA.UDT.Condition.InCondition();
                condition.Field = "RefStudentID";
                condition.Values.AddRange(e.List);
                var datas = _AccessHelper.Select <推甄學生資料>(condition);
                datas.取得志願組();
                foreach (var item in datas)
                {
                    int index = 1;
                    foreach (var wish in item.志願組)
                    {
                        dicRowDatas[item.StudentRecord.ID].Add("第" + index + "志願", (wish.校系資料 == null ? "校系資料已遺失" : (匯出代碼.Checked ? wish.校系資料.代碼 : (wish.校系資料.校名 + " " + wish.校系資料.系名))));
                        index++;
                    }
                }
                foreach (var item in dicRowDatas.Values)
                {
                    for (int i = 1; i <= wishLimint; i++)
                    {
                        if (!item.ContainsKey("第" + i + "志願"))
                        {
                            item.Add("第" + i + "志願", "");
                        }
                    }
                }
            };
        }
Esempio n. 6
0
        //覆寫
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            List <string> FieldList = new List <string>();

            FieldList.Add("學年度");  //目前欄位
            FieldList.Add("學期");   //目前欄位
            FieldList.Add("社團名稱"); //目前欄位
            FieldList.Add("學期成績"); //目前欄位
            FieldList.Add("幹部名稱"); //目前欄位
            FieldList.Add("社團評等"); //目前欄位

            wizard.ExportableFields.AddRange(FieldList);

            wizard.ExportPackage += (sender, e) =>
            {
                //取得學生清單

                AccessHelper helper = new AccessHelper();

                string strCondition = string.Join("','", e.List);
                List <ResultScoreRecord> records = helper.Select <ResultScoreRecord>("ref_student_id in ('" + strCondition + "')");

                for (int i = 0; i < records.Count; i++)
                {
                    RowData row = new RowData();
                    row.ID = records[i].RefStudentID;

                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "學年度": row.Add(field, "" + records[i].SchoolYear); break;

                            case "學期": row.Add(field, "" + records[i].Semester); break;

                            case "社團名稱": row.Add(field, records[i].ClubName); break;

                            case "學期成績": row.Add(field, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break;

                            case "幹部名稱": row.Add(field, records[i].CadreName); break;

                            case "社團評等": row.Add(field, records[i].ClubLevel); break;
                            }
                        }
                    }
                    e.Items.Add(row);
                }
            };
        }
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange(ExportItemList);
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                int RowCount = 0;

                Dictionary <string, DAO.UDT_HighConcern> HighConcernList = DAO.UDTTransfer.GetHighConcernDictByStudentIDList(e.List);

                foreach (DAO.UDT_HighConcern udd in HighConcernList.Values)
                {
                    RowData row = new RowData();
                    row.ID = udd.RefStudentID;

                    // 檢查是否匯出
                    bool chkExportData = false;
                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "高關懷特殊身分註記":
                                if (udd.HighConcern)
                                {
                                    chkExportData = true;
                                    row.Add(field, "是");
                                }
                                break;

                            case "減免人數": row.Add(field, udd.NumberReduce.ToString()); break;

                            case "文號":
                                row.Add(field, udd.DocNo);
                                break;

                            case "相關證明文件網址":
                                row.Add(field, udd.EDoc);
                                break;
                            }
                        }
                    }
                    if (chkExportData)
                    {
                        RowCount++;
                        e.Items.Add(row);
                    }
                }
            };
        }
Esempio n. 8
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange(ExportItemList);

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                // 取得畢業相關資訊
                List <JHLeaveInfoRecord> JHLeaveInfoRecordList = JHLeaveIfno.SelectByStudentIDs(e.List);

                foreach (JHLeaveInfoRecord lir in JHLeaveInfoRecordList)
                {
                    RowData row = new RowData();
                    row.ID = lir.RefStudentID;

                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "畢業學年度":
                                if (lir.SchoolYear.HasValue)
                                {
                                    row.Add(field, lir.SchoolYear.Value.ToString());
                                }
                                break;

                            case "畢業資格":
                                row.Add(field, lir.Reason);
                                break;

                            case "畢業證書字號":
                                row.Add(field, lir.DiplomaNumber);
                                break;

                            case "畢業相關訊息":
                                row.Add(field, lir.Memo);
                                break;
                            }
                        }
                    }
                    e.Items.Add(row);
                }

                PermRecLogProcess prlp = new PermRecLogProcess();
                prlp.SaveLog("學生.匯出畢業資訊", "匯出", "共匯出" + K12.Presentation.NLDPanels.Student.SelectedSource.Count + "筆學生類別資料.");
            };
        }
        //覆寫
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("英文別名", "居留證號", "入學日期", "畢業日期");

            wizard.ExportPackage += (sender, e) =>
            {
                List <StudentRecord_Ext> records = tool._A.Select <StudentRecord_Ext>(string.Format("ref_student_id in ('{0}')", string.Join("','", e.List)));
                Dictionary <string, StudentRecord_Ext> recordsDic = new Dictionary <string, StudentRecord_Ext>();
                foreach (StudentRecord_Ext each in records)
                {
                    if (!recordsDic.ContainsKey(each.RefStudentID))
                    {
                        recordsDic.Add(each.RefStudentID, each);
                    }
                }

                List <StudentRecord> StudList = K12.Data.Student.SelectByIDs(e.List);
                StudList.Sort(SortStudent);

                foreach (StudentRecord stud in StudList)
                {
                    RowData row = new RowData();
                    row.ID = stud.ID;

                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "英文別名": row.Add(field, "" + recordsDic[stud.ID].Nickname); break;

                            case "居留證號": row.Add(field, "" + recordsDic[stud.ID].PassportNumber); break;

                            case "入學日期": row.Add(field, recordsDic[stud.ID].EntranceDate.HasValue ? recordsDic[stud.ID].EntranceDate.Value.ToShortDateString() : ""); break;

                            case "畢業日期": row.Add(field, recordsDic[stud.ID].LeavingDate.HasValue ? recordsDic[stud.ID].LeavingDate.Value.ToShortDateString() : ""); break;
                            }
                        }
                    }

                    e.Items.Add(row);
                }
            };
        }
Esempio n. 10
0
        //覆寫
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("學年度", "學期", "年級", "當時班級", "當時座號", "當時班導師姓名", "上課天數");

            wizard.ExportPackage += (sender, e) =>
            {
                //取得學生清單

                List <JHSemesterHistoryRecord> records = JHSemesterHistory.SelectByStudentIDs(e.List);

                foreach (JHSemesterHistoryRecord record in records)
                {
                    foreach (K12.Data.SemesterHistoryItem Item in record.SemesterHistoryItems)
                    {
                        RowData row = new RowData();

                        row.ID = record.RefStudentID;

                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學年度": row.Add(field, "" + Item.SchoolYear); break;

                                case "學期": row.Add(field, "" + Item.Semester); break;

                                case "年級": row.Add(field, "" + Item.GradeYear); break;

                                case "當時班級": row.Add(field, "" + Item.ClassName); break;

                                case "當時座號": row.Add(field, "" + Item.SeatNo); break;

                                case "當時班導師姓名": row.Add(field, "" + Item.Teacher); break;

                                case "上課天數": row.Add(field, "" + Item.SchoolDayCount); break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }
                }
            };
        }
Esempio n. 11
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true);
            wizard.Options.Add(filterRepeat);
            // 2022-01 Cynthia 移除"體育", "國防通識", "健康與護理",
            wizard.ExportableFields.AddRange("學年度", "成績年級", "學業", "實習科目", "專業科目", "德行");
            AccessHelper _AccessHelper = new AccessHelper();

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List);
                _AccessHelper.StudentHelper.FillSchoolYearEntryScore(filterRepeat.Checked, students);
                foreach (StudentRecord stu in students)
                {
                    Dictionary <int, List <SchoolYearEntryScoreInfo> > schoolYearEntryScoreList = new Dictionary <int, List <SchoolYearEntryScoreInfo> >();
                    foreach (SchoolYearEntryScoreInfo var in stu.SchoolYearEntryScoreList)
                    {
                        if (!schoolYearEntryScoreList.ContainsKey(var.SchoolYear))
                        {
                            schoolYearEntryScoreList.Add(var.SchoolYear, new List <SchoolYearEntryScoreInfo>());
                        }
                        schoolYearEntryScoreList[var.SchoolYear].Add(var);
                    }
                    foreach (int sy in schoolYearEntryScoreList.Keys)
                    {
                        RowData row = new RowData();
                        row.ID = stu.StudentID;
                        row.Add("學年度", "" + sy);
                        foreach (SchoolYearEntryScoreInfo var in schoolYearEntryScoreList[sy])
                        {
                            if (!row.ContainsKey("成績年級"))
                            {
                                row.Add("成績年級", "" + var.GradeYear);
                            }
                            if (e.ExportFields.Contains(var.Entry))
                            {
                                row.Add(var.Entry, "" + var.Score);
                            }
                        }
                        e.Items.Add(row);
                    }
                }
            };
        }
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true);
            wizard.Options.Add(filterRepeat);
            wizard.ExportableFields.AddRange("學年度", "成績年級", "科目", "學年成績", "結算成績", "補考成績", "重修成績");
            AccessHelper _AccessHelper = new AccessHelper();

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List);
                _AccessHelper.StudentHelper.FillSchoolYearSubjectScore(filterRepeat.Checked, students);
                foreach (StudentRecord stu in students)
                {
                    foreach (SchoolYearSubjectScoreInfo var in stu.SchoolYearSubjectScoreList)
                    {
                        RowData row = new RowData();
                        row.ID = stu.StudentID;
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學年度": row.Add(field, "" + var.SchoolYear); break;

                                case "成績年級": row.Add(field, "" + var.GradeYear); break;

                                case "科目": row.Add(field, var.Subject); break;

                                case "學年成績": row.Add(field, "" + var.Score); break;

                                case "結算成績": row.Add(field, var.Detail.GetAttribute(field) == "" ? ("" + var.Score) : var.Detail.GetAttribute(field)); break;

                                case "補考成績": row.Add(field, var.Detail.GetAttribute(field)); break;

                                case "重修成績": row.Add(field, var.Detail.GetAttribute(field)); break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }
                }
            };
        }
Esempio n. 13
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange(ExportItemList);
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                Dictionary <string, List <DAL.StudUpdateRecordEntity> > StudUpdateRecordEntityListDic = DAL.DALTransfer2.GetStudListUpdateRecordEntityListByUpdateType(e.List, JHPermrec.UpdateRecord.DAL.DALTransfer2.UpdateType.中輟);
                int ExportCount = 0;
                foreach (KeyValuePair <string, List <DAL.StudUpdateRecordEntity> > sureKey in StudUpdateRecordEntityListDic)
                {
                    foreach (DAL.StudUpdateRecordEntity sure in sureKey.Value)
                    {
                        RowData row = new RowData();

                        row.ID = sure.StudentID;

                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學年度":
                                    if (sure.SchoolYear > 0)
                                    {
                                        row.Add(field, "" + sure.SchoolYear);
                                    }
                                    break;

                                case "學期":
                                    if (sure.Semester > 0)
                                    {
                                        row.Add(field, "" + sure.Semester);
                                    }
                                    break;

                                case "異動年級": row.Add(field, "" + sure.GetGradeYear()); break;

                                case "異動日期":
                                    if (sure.GetUpdateDate().HasValue)
                                    {
                                        row.Add(field, sure.GetUpdateDate().Value.ToShortDateString());
                                    }
                                    break;

                                case "原因及事項": row.Add(field, sure.GetUpdateDescription()); break;

                                case "備註": row.Add(field, sure.GetComment()); break;

                                case "異動班級": row.Add(field, sure.GetClassName()); break;

                                case "異動姓名": row.Add(field, sure.GetName()); break;

                                case "異動身分證號": row.Add(field, sure.GetIDNumber()); break;

                                case "異動學號": row.Add(field, sure.GetStudentNumber()); break;

                                case "異動性別": row.Add(field, sure.GetGender()); break;

                                case "異動生日":
                                    if (sure.GetBirthday().HasValue)
                                    {
                                        row.Add(field, sure.GetBirthday().Value.ToShortDateString());
                                    }
                                    break;

                                case "異動地址": row.Add(field, sure.GetAddress()); break;

                                case "核准日期":
                                    if (sure.GetADDate().HasValue)
                                    {
                                        row.Add(field, sure.GetADDate().Value.ToShortDateString());
                                    }
                                    break;

                                case "核准文號": row.Add(field, sure.GetADNumber()); break;

                                case "學籍核准日期":
                                    if (sure.GetLastADDate().HasValue)
                                    {
                                        row.Add(field, sure.GetLastADDate().Value.ToShortDateString());
                                    }
                                    break;

                                case "學籍核准文號": row.Add(field, sure.GetLastADNumber()); break;

                                case "異動座號": row.Add(field, sure.GetSeatNo()); break;

                                case "異動類別": row.Add(field, "中輟"); break;
                                }
                            }
                        }
                        ExportCount++;
                        e.Items.Add(row);
                    }
                }
                JHSchool.PermRecLogProcess prlp = new JHSchool.PermRecLogProcess();
                prlp.SaveLog("學生.匯出異動", "匯出中輟異動", "共匯出中輟異動" + ExportCount + "筆資料.");
            };
        }
Esempio n. 14
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            //SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true);
            //wizard.Options.Add(filterRepeat);
            wizard.ExportableFields.AddRange("領域", "分數評量");
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                #region ExportPackage
                List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List);

                GradScore.Instance.SyncDataBackground(e.List);

                foreach (JHStudentRecord stu in students)
                {
                    GradScoreRecord record = GradScore.Instance.Items[stu.ID];
                    if (record == null)
                    {
                        continue;
                    }

                    foreach (GradDomainScore domain in record.Domains.Values)
                    {
                        RowData row = new RowData();
                        row.ID = stu.ID;
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "領域": row.Add(field, "" + domain.Domain); break;

                                case "分數評量": row.Add(field, "" + domain.Score); break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }

                    foreach (string item in new string[] { "學習領域", "課程學習" })
                    {
                        RowData row = new RowData();
                        row.ID = stu.ID;
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "領域": row.Add(field, item); break;

                                case "分數評量":
                                    if (item == "學習領域")
                                    {
                                        row.Add("分數評量", "" + record.LearnDomainScore);
                                    }
                                    else if (item == "課程學習")
                                    {
                                        row.Add("分數評量", "" + record.CourseLearnScore);
                                    }
                                    break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }
                }
                #endregion

                FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出畢業成績", "總共匯出" + e.Items.Count + "筆畢業成績。");
            };
        }
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true);
            wizard.Options.Add(filterRepeat);

            // 2018/8 穎驊註解,經過討論後, 先暫時將 ischool類別2 排名的概念拿掉,因為目前的結構 無法區隔類別1、類別2,待日後設計完整
            //wizard.ExportableFields.AddRange("學年度", "學期", "成績年級", "學業", "體育", "國防通識", "健康與護理", "實習科目", "專業科目", "學業(原始)", "體育(原始)", "國防通識(原始)", "健康與護理(原始)", "實習科目(原始)", "專業科目(原始)", "德行", "學業成績班排名", "學業成績班排名母數", "學業成績科排名", "學業成績科排名母數", "學業成績校排名", "學業成績校排名母數", "學業成績排名類別1", "學業成績類1排名", "學業成績類1排名母數", "學業成績排名類別2", "學業成績類2排名", "學業成績類2排名母數");

            wizard.ExportableFields.AddRange("學年度", "學期", "成績年級", "學業", "體育", "國防通識", "健康與護理", "實習科目", "專業科目", "學業(原始)", "體育(原始)", "國防通識(原始)", "健康與護理(原始)", "實習科目(原始)", "專業科目(原始)", "德行", "學業成績班排名", "學業成績班排名母數", "學業成績科排名", "學業成績科排名母數", "學業成績校排名", "學業成績校排名母數", "學業成績排名類別1", "學業成績類1排名", "學業成績類1排名母數");
            AccessHelper _AccessHelper = new AccessHelper();

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List);



                Dictionary <string, List <StudSemsEntryRating> > StudSemsEntryRatingDict = new Dictionary <string, List <StudSemsEntryRating> >();
                StudSemsEntryRatingDict = Utility.GetStudSemsEntryRatingByStudentID(e.List);

                _AccessHelper.StudentHelper.FillSemesterEntryScore(filterRepeat.Checked, students);
                foreach (StudentRecord stu in students)
                {
                    Dictionary <int, Dictionary <int, List <SemesterEntryScoreInfo> > > semesterEntryScoreList = new Dictionary <int, Dictionary <int, List <SemesterEntryScoreInfo> > >();
                    foreach (SemesterEntryScoreInfo var in stu.SemesterEntryScoreList)
                    {
                        if (!semesterEntryScoreList.ContainsKey(var.SchoolYear))
                        {
                            semesterEntryScoreList.Add(var.SchoolYear, new Dictionary <int, List <SemesterEntryScoreInfo> >());
                        }
                        if (!semesterEntryScoreList[var.SchoolYear].ContainsKey(var.Semester))
                        {
                            semesterEntryScoreList[var.SchoolYear].Add(var.Semester, new List <SemesterEntryScoreInfo>());
                        }
                        semesterEntryScoreList[var.SchoolYear][var.Semester].Add(var);
                    }
                    foreach (int sy in semesterEntryScoreList.Keys)
                    {
                        foreach (int se in semesterEntryScoreList[sy].Keys)
                        {
                            RowData row = new RowData();
                            row.ID = stu.StudentID;
                            row.Add("學年度", "" + sy);
                            row.Add("學期", "" + se);
                            foreach (SemesterEntryScoreInfo var in semesterEntryScoreList[sy][se])
                            {
                                if (!row.ContainsKey("成績年級"))
                                {
                                    row.Add("成績年級", "" + var.GradeYear);
                                }
                                if (e.ExportFields.Contains(var.Entry))
                                {
                                    row.Add(var.Entry, "" + var.Score);
                                }
                            }

                            //處理學業成績排名資料

                            if (StudSemsEntryRatingDict.ContainsKey(stu.StudentID))
                            {
                                foreach (var record in StudSemsEntryRatingDict[stu.StudentID])
                                {
                                    if (record.SchoolYear == "" + sy && record.Semester == "" + se)
                                    {
                                        row.Add("學業成績班排名", "" + record.ClassRank);
                                        row.Add("學業成績班排名母數", "" + record.ClassCount);
                                        row.Add("學業成績科排名", "" + record.DeptRank);
                                        row.Add("學業成績科排名母數", "" + record.DeptCount);
                                        row.Add("學業成績校排名", "" + record.YearRank);
                                        row.Add("學業成績校排名母數", "" + record.YearCount);

                                        row.Add("學業成績排名類別1", "" + record.Group1);
                                        row.Add("學業成績類1排名", "" + record.Group1Rank);
                                        row.Add("學業成績類1排名母數", "" + record.Group1Count);

                                        // 2018/8 穎驊註解,經過討論後, 先暫時將 ischool類別2 排名的概念拿掉,因為目前的結構 無法區隔類別1、類別2,待日後設計完整

                                        //row.Add("學業成績排名類別2", "" + record.Group2);
                                        //row.Add("學業成績類2排名", "" + record.Group2Rank);
                                        //row.Add("學業成績類2排名母數", "" + record.Group2Count);
                                    }
                                }
                            }


                            e.Items.Add(row);
                        }
                    }
                }
            };
        }
Esempio n. 16
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("姓名", "學號", "班級", "座號", "必選修", "校部訂", "及格標準", "補考標準", "直接指定總成績", "備註", "科目代碼", "學生狀態");
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                // 課程 ID
                List <string> courseIDList = e.List;

                if (courseIDList.Count > 0)
                {
                    // 取得學生修課資訊
                    Dictionary <string, Dictionary <string, DataRow> > SCAttendDict = new Dictionary <string, Dictionary <string, DataRow> >();

                    // 取得學生修課資料
                    string qrySCAttend = "SELECT " +
                                         "student.name AS student_name" +
                                         ",student.student_number" +
                                         ",class.class_name" +
                                         ",student.seat_no" +
                                         ",CASE is_required WHEN '1' THEN '必修' WHEN '0' THEN '選修' ELSE '' END AS is_required" +
                                         ",CASE required_by WHEN 1 THEN '部訂' WHEN 2 THEN '校訂' ELSE '' END AS required_by" +
                                         ",ref_course_id AS course_id" +
                                         ",ref_student_id AS student_id" +
                                         ",passing_standard" +
                                         ",makeup_standard" +
                                         ",remark" +
                                         ",designate_final_score" +
                                         ",subject_code" +
                                         ",CASE student.status WHEN 1 THEN '一般' WHEN 2 THEN '延修' WHEN 4 THEN '休學' WHEN 8 THEN '輟學' WHEN 16 THEN '畢業或離校' WHEN 256 THEN '刪除' END AS status" +
                                         " FROM sc_attend INNER JOIN student" +
                                         " ON sc_attend.ref_student_id = student.id INNER JOIN class" +
                                         " ON student.ref_class_id = class.id  WHERE ref_course_id IN(" + string.Join(",", courseIDList.ToArray()) + ")" +
                                         " ORDER BY class_name,seat_no,student_number;";

                    QueryHelper qh = new QueryHelper();

                    DataTable dtSCAttend = qh.Select(qrySCAttend);

                    #region 產生 Row Data
                    foreach (DataRow dr in dtSCAttend.Rows)
                    {
                        RowData row = new RowData();
                        row.ID = GetFieldString(dr, "course_id");
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "姓名": row.Add(field, GetFieldString(dr, "student_name")); break;

                                case "學號": row.Add(field, GetFieldString(dr, "student_number")); break;

                                case "班級": row.Add(field, GetFieldString(dr, "class_name")); break;

                                case "座號": row.Add(field, GetFieldString(dr, "seat_no")); break;

                                case "必選修": row.Add(field, GetFieldString(dr, "is_required")); break;

                                case "校部訂": row.Add(field, GetFieldString(dr, "required_by")); break;

                                case "及格標準": row.Add(field, GetFieldString(dr, "passing_standard")); break;

                                case "補考標準": row.Add(field, GetFieldString(dr, "makeup_standard")); break;

                                case "直接指定總成績": row.Add(field, GetFieldString(dr, "designate_final_score")); break;

                                case "備註": row.Add(field, GetFieldString(dr, "remark")); break;

                                case "科目代碼": row.Add(field, GetFieldString(dr, "subject_code")); break;

                                case "學生狀態": row.Add(field, GetFieldString(dr, "status")); break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }

                    #endregion

                    ApplicationLog.Log("成績系統.匯入匯出", "匯出課程修課學生", "總共匯出" + e.Items.Count + "筆課程修課學生。");
                }
            };
        }
Esempio n. 17
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true);
            wizard.Options.Add(filterRepeat);

            //2017/6/16 穎驊新增,因應[02-02][06] 計算學期科目成績新增清空原成績模式 項目, 新增 "刪除"欄位,使使用者能匯入 刪除成績資料
            wizard.ExportableFields.AddRange("領域", "學年度", "學期", "權數", "節數", "成績", "原始成績", "補考成績", "努力程度", "文字描述", "註記", "刪除");
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                #region ExportPackage
                List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List);

                Dictionary <string, List <JHSemesterScoreRecord> > semsDict = new Dictionary <string, List <JHSemesterScoreRecord> >();
                foreach (JHSemesterScoreRecord record in JHSemesterScore.SelectByStudentIDs(e.List))
                {
                    if (!semsDict.ContainsKey(record.RefStudentID))
                    {
                        semsDict.Add(record.RefStudentID, new List <JHSemesterScoreRecord>());
                    }
                    semsDict[record.RefStudentID].Add(record);
                }

                foreach (JHStudentRecord stu in students)
                {
                    if (!semsDict.ContainsKey(stu.ID))
                    {
                        continue;
                    }

                    foreach (JHSemesterScoreRecord record in semsDict[stu.ID])
                    {
                        foreach (K12.Data.DomainScore domain in record.Domains.Values)
                        {
                            RowData row = new RowData();
                            row.ID = stu.ID;
                            foreach (string field in e.ExportFields)
                            {
                                if (wizard.ExportableFields.Contains(field))
                                {
                                    switch (field)
                                    {
                                    case "領域": row.Add(field, "" + domain.Domain); break;

                                    case "學年度": row.Add(field, "" + record.SchoolYear); break;

                                    case "學期": row.Add(field, "" + record.Semester); break;

                                    case "權數": row.Add(field, "" + domain.Credit); break;

                                    case "節數": row.Add(field, "" + domain.Period); break;

                                    case "成績": row.Add(field, "" + domain.Score); break;

                                    case "原始成績": row.Add(field, "" + domain.ScoreOrigin); break;

                                    case "補考成績": row.Add(field, "" + domain.ScoreMakeup); break;

                                    case "努力程度": row.Add(field, "" + domain.Effort); break;

                                    case "文字描述": row.Add(field, domain.Text); break;

                                    case "註記": row.Add(field, domain.Comment); break;

                                    case "刪除": row.Add(field, ""); break;
                                    }
                                }
                            }
                            e.Items.Add(row);
                        }
                    }
                }
                #endregion

                FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出學期領域成績", "總共匯出" + e.Items.Count + "筆學期領域成績。");
            };
        }
Esempio n. 18
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("學年度", "學期", "課程名稱", "分數評量", "努力程度", "文字描述");
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                //學生資訊
                List <Data.JHStudentRecord> students = Data.JHStudent.SelectByIDs(e.List);
                //學生修課資訊
                Dictionary <string, List <Data.JHSCAttendRecord> > scattends = new Dictionary <string, List <JHSchool.Data.JHSCAttendRecord> >();
                //學生修習的課程
                Dictionary <string, Data.JHCourseRecord> courses = new Dictionary <string, JHSchool.Data.JHCourseRecord>();

                #region 取得修課記錄
                foreach (Data.JHSCAttendRecord record in Data.JHSCAttend.SelectByStudentIDAndCourseID(e.List, new string[] { }))
                {
                    if (!scattends.ContainsKey(record.RefStudentID))
                    {
                        scattends.Add(record.RefStudentID, new List <JHSchool.Data.JHSCAttendRecord>());
                    }
                    scattends[record.RefStudentID].Add(record);

                    if (!courses.ContainsKey(record.RefCourseID))
                    {
                        courses.Add(record.RefCourseID, null);
                    }
                }
                #endregion

                #region 取得課程資訊
                foreach (Data.JHCourseRecord record in Data.JHCourse.SelectByIDs(new List <string>(courses.Keys)))
                {
                    if (courses.ContainsKey(record.ID))
                    {
                        courses[record.ID] = record;
                    }
                }
                #endregion

                #region 產生 Row Data
                foreach (Data.JHStudentRecord stu in students)
                {
                    foreach (Data.JHSCAttendRecord record in scattends[stu.ID])
                    {
                        RowData row = new RowData();
                        row.ID = stu.ID;
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學年度": row.Add(field, "" + courses[record.RefCourseID].SchoolYear); break;

                                case "學期": row.Add(field, "" + courses[record.RefCourseID].Semester); break;

                                case "課程名稱": row.Add(field, courses[record.RefCourseID].Name); break;

                                case "分數評量": row.Add(field, "" + record.Score); break;

                                case "努力程度": row.Add(field, "" + record.Effort); break;

                                case "文字描述": row.Add(field, record.Text); break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }
                }
                #endregion

                FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出課程成績", "總共匯出" + e.Items.Count + "筆課程成績。");
            };
        }
Esempio n. 19
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("學生系統編號", "學號", "身分證號", "索引分類", "畢業學年度",
                                             "畢業班級", "座號", "姓名", "性別", "國籍", "出生地", "生日", "英文姓名",
                                             "戶籍電話", "聯絡電話", "手機", "其它電話1", "其它電話2", "其它電話3",
                                             "戶籍地址郵遞區號", "戶籍地址", "聯絡地址郵遞區號", "聯絡地址", "其它地址郵遞區號", "其它地址", "備註");

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                #region 收集資料(DicMerit)
                Dictionary <string, GraduateUDT> DicGraduate = new Dictionary <string, GraduateUDT>();

                AccessHelper       _AccessHelper = new AccessHelper();
                List <GraduateUDT> GraduateList  = _AccessHelper.Select <GraduateUDT>(UDT_S.PopOneCondition("UID", e.List));//取得UDT清單

                //ListDiscipline.Sort(SortDate);

                foreach (GraduateUDT Record in GraduateList)
                {
                    if (!DicGraduate.ContainsKey(Record.UID))
                    {
                        DicGraduate.Add(Record.UID, Record);
                    }
                }
                #endregion
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("匯出學生索引基本資料:");

                foreach (string each in DicGraduate.Keys)
                {
                    GraduateUDT udt = DicGraduate[each];

                    sb.Append("班級「" + udt.ClassName + "」");
                    sb.Append("座號「" + (udt.SeatNo.HasValue ? udt.SeatNo.Value.ToString() : "") + "」");
                    sb.Append("學號「" + udt.StudentNumber + "」");
                    sb.AppendLine("姓名「" + udt.Name + "」");


                    RowData row = new RowData();
                    row.ID = each;
                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "學生系統編號": row.Add(field, "" + udt.StudentID); break;

                            case "學號": row.Add(field, "" + udt.StudentNumber); break;

                            case "身分證號": row.Add(field, "" + udt.IDNumber); break;

                            case "索引分類": row.Add(field, "" + udt.ArchiveNote); break;

                            case "畢業學年度": row.Add(field, udt.GraduateSchoolYear.HasValue ? udt.GraduateSchoolYear.Value.ToString() : ""); break;

                            case "畢業班級": row.Add(field, "" + udt.ClassName); break;

                            case "座號": row.Add(field, udt.SeatNo.HasValue ? udt.SeatNo.Value.ToString() : ""); break;

                            case "姓名": row.Add(field, "" + udt.Name); break;

                            case "性別": row.Add(field, "" + udt.Gender); break;

                            case "國籍": row.Add(field, "" + udt.Nationality); break;

                            case "出生地": row.Add(field, "" + udt.BirthPlace); break;

                            case "生日": row.Add(field, udt.Birthday.HasValue ? udt.Birthday.Value.ToShortDateString() : ""); break;

                            case "英文姓名": row.Add(field, "" + udt.EnglishName); break;

                            case "戶籍電話": row.Add(field, "" + udt.Permanent); break;

                            case "聯絡電話": row.Add(field, "" + udt.Contact); break;

                            case "手機": row.Add(field, "" + udt.Cell); break;

                            case "其它電話1": row.Add(field, "" + udt.Phone1); break;

                            case "其它電話2": row.Add(field, "" + udt.Phone2); break;

                            case "其它電話3": row.Add(field, "" + udt.Phone3); break;

                            case "戶籍地址郵遞區號": row.Add(field, "" + udt.PermanentZipCode); break;

                            case "戶籍地址": row.Add(field, "" + udt.PermanentAddress); break;

                            case "聯絡地址郵遞區號": row.Add(field, "" + udt.MailingZipCode); break;

                            case "聯絡地址": row.Add(field, "" + udt.MailingAddress); break;

                            case "其它地址郵遞區號": row.Add(field, "" + udt.OtherZipCode); break;

                            case "其它地址": row.Add(field, "" + udt.OtherAddresses); break;

                            //case "其它地址2": row.Add(field, "" + udt.OtherAddresses2); break;
                            //case "其它地址3": row.Add(field, "" + udt.OtherAddresses3); break;
                            case "備註": row.Add(field, "" + udt.Remarks); break;
                            }
                        }
                    }
                    e.Items.Add(row);
                }
                ApplicationLog.Log("畢業生檔案檢索.匯出索引基本資料", "匯出", sb.ToString());
            };
        }
Esempio n. 20
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            // 2018.09.05 [ischoolKingdom] Vicky依據 [02-01][03] 匯入評量成績 項目,移除文字描述。
            // 2018.09.05 [ischoolKingdom] Vicky依據 [12-01][01] 多學期成績排名 項目,增加 "領域", "科目", "節數(權重)", "學分" 。
            // 2018.09.07 [ischoolKingdom] Vicky依據新需求調整項目位置。
            wizard.ExportableFields.AddRange("學年度", "學期", "課程名稱", "領域", "科目", "節數(權重)", "學分", "評量名稱", "分數評量", "努力程度");

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                //學生資訊
                List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List);
                //學生修課資訊
                Dictionary <string, List <JHSCAttendRecord> > scattends = new Dictionary <string, List <JHSchool.Data.JHSCAttendRecord> >();
                //學生修習的課程
                Dictionary <string, JHCourseRecord> courses = new Dictionary <string, JHSchool.Data.JHCourseRecord>();
                //評量成績 key: SCAttendID
                Dictionary <string, List <KH.JHSCETakeRecord> > sces = new Dictionary <string, List <KH.JHSCETakeRecord> >();
                //試別資訊
                Dictionary <string, JHExamRecord> exams = new Dictionary <string, JHSchool.Data.JHExamRecord>();

                #region 取得修課記錄
                foreach (JHSCAttendRecord record in JHSCAttend.SelectByStudentIDAndCourseID(e.List, new string[] { }))
                {
                    if (!scattends.ContainsKey(record.RefStudentID))
                    {
                        scattends.Add(record.RefStudentID, new List <JHSchool.Data.JHSCAttendRecord>());
                    }
                    scattends[record.RefStudentID].Add(record);

                    if (!courses.ContainsKey(record.RefCourseID))
                    {
                        courses.Add(record.RefCourseID, null);
                    }
                }
                #endregion

                #region 取得課程資訊
                foreach (JHCourseRecord record in JHCourse.SelectByIDs(new List <string>(courses.Keys)))
                {
                    if (courses.ContainsKey(record.ID))
                    {
                        courses[record.ID] = record;
                    }
                }
                #endregion

                #region 取得試別資訊
                foreach (JHExamRecord exam in JHExam.SelectAll())
                {
                    if (!exams.ContainsKey(exam.ID))
                    {
                        exams.Add(exam.ID, exam);
                    }
                }
                #endregion

                #region 取得評量成績
                foreach (KH.JHSCETakeRecord record in JHSCETake.SelectByStudentAndCourse(new List <string>(scattends.Keys), new List <string>(courses.Keys)).AsKHJHSCETakeRecords())
                {
                    if (!sces.ContainsKey(record.RefSCAttendID))
                    {
                        sces.Add(record.RefSCAttendID, new List <KH.JHSCETakeRecord>());
                    }
                    sces[record.RefSCAttendID].Add(record);
                }
                #endregion



                #region 產生 Row Data
                foreach (JHStudentRecord stu in students)
                {
                    if (!scattends.ContainsKey(stu.ID))
                    {
                        //學生沒有任何修課記錄。
                        continue;
                    }

                    foreach (JHSCAttendRecord record in scattends[stu.ID])
                    {
                        if (!sces.ContainsKey(record.ID))
                        {
                            continue;
                        }

                        sces[record.ID].Sort(delegate(KH.JHSCETakeRecord x, KH.JHSCETakeRecord y)
                        {
                            return(x.RefExamID.CompareTo(y.RefExamID));
                        });

                        foreach (KH.JHSCETakeRecord sce in sces[record.ID])
                        {
                            string examName = sce.RefExamID;
                            if (exams.ContainsKey(sce.RefExamID))
                            {
                                examName = exams[sce.RefExamID].Name;
                            }

                            RowData row = new RowData();
                            row.ID = stu.ID;
                            foreach (string field in e.ExportFields)
                            {
                                if (wizard.ExportableFields.Contains(field))
                                {
                                    switch (field)
                                    {
                                    case "學年度": row.Add(field, "" + courses[record.RefCourseID].SchoolYear); break;

                                    case "學期": row.Add(field, "" + courses[record.RefCourseID].Semester); break;

                                    case "課程名稱": row.Add(field, courses[record.RefCourseID].Name); break;

                                    // 2018.09.05 [ischoolKingdom] Vicky依據 [02-01][03] 匯入評量成績 項目,移除文字描述。
                                    // 2018.09.05 [ischoolKingdom] Vicky依據 [12-01][01] 多學期成績排名 項目,增加 "領域", "科目", "節數(權重)", "學分" 項目資料。
                                    //case "文字描述": row.Add(field, sce.Text); break;
                                    case "領域": row.Add(field, courses[record.RefCourseID].Domain); break;

                                    case "科目": row.Add(field, courses[record.RefCourseID].Subject); break;

                                    case "節數(權重)": row.Add(field, "" + courses[record.RefCourseID].Period); break;

                                    case "學分": row.Add(field, "" + courses[record.RefCourseID].Credit); break;

                                    case "評量名稱": row.Add(field, examName); break;

                                    case "分數評量": row.Add(field, "" + sce.Score); break;

                                    case "努力程度": row.Add(field, "" + sce.Effort); break;
                                    }
                                }
                            }
                            e.Items.Add(row);
                        }

                        //2016/7/26 穎驊新增,因應高雄國中希望能加入匯出匯入"平時成績"的功能,因此在原本的匯出評量成績報表Excel中增加平時成績的項目,
                        // 基本邏輯跟 SCEtake 的定期評量一樣,另外意外發現平時成績、努力程度、Text在 JHSCAttendRecord裏頭就有了,不必在另外下SQL 找UDT 在用XElement 去解析Xml 檔填成績
                        string  examName2 = "平時評量";
                        RowData row2      = new RowData();
                        row2.ID = stu.ID;
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學年度": row2.Add(field, "" + courses[record.RefCourseID].SchoolYear); break;

                                case "學期": row2.Add(field, "" + courses[record.RefCourseID].Semester); break;

                                case "課程名稱": row2.Add(field, courses[record.RefCourseID].Name); break;

                                // 2018.09.05 [ischoolKingdom] Vicky依據 [02-01][03] 匯入評量成績 項目,移除文字描述。
                                // 2018.09.05 [ischoolKingdom] Vicky依據 [12-01][01] 多學期成績排名 項目,增加 "領域", "科目", "節數(權重)", "學分" 項目資料。
                                // case "文字描述": row2.Add(field, record.Text); break;
                                case "領域": row2.Add(field, courses[record.RefCourseID].Domain); break;

                                case "科目": row2.Add(field, courses[record.RefCourseID].Subject); break;

                                case "節數(權重)": row2.Add(field, "" + courses[record.RefCourseID].Period); break;

                                case "學分": row2.Add(field, "" + courses[record.RefCourseID].Credit); break;

                                case "評量名稱": row2.Add(field, examName2); break;

                                case "分數評量": row2.Add(field, "" + record.OrdinarilyScore); break;

                                case "努力程度": row2.Add(field, "" + record.OrdinarilyEffort); break;
                                }
                            }
                        }
                        e.Items.Add(row2);
                    }
                }
                #endregion

                FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出評量成績", "總共匯出" + e.Items.Count + "筆評量成績。");
            };
        }
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            SmartSchool.API.PlugIn.VirtualCheckBox filterRepeat = new SmartSchool.API.PlugIn.VirtualCheckBox("自動略過重讀成績", true);
            wizard.Options.Add(filterRepeat);
            wizard.ExportableFields.AddRange(
                "科目"
                , "科目級別"
                , "學年度"
                , "學期"
                , "英文名稱"
                , "學分數"
                , "分項類別"
                , "成績年級"
                , "必選修"
                , "校部訂"
                , "科目成績"
                , "原始成績"
                , "補考成績"
                , "重修成績"
                , "手動調整成績"
                , "學年調整成績"
                , "取得學分"
                , "不計學分"
                , "不需評分"
                , "註記"
                , "畢業採計-學分數"
                , "畢業採計-分項類別"
                , "畢業採計-必選修"
                , "畢業採計-校部訂"
                , "畢業採計-不計學分"
                , "畢業採計-說明"
                , "是否補修成績"
                , "補修學年度"
                , "補修學期"
                , "重修學年度"
                , "重修學期"
                , "修課及格標準"
                , "修課補考標準"
                , "修課備註"
                , "修課直接指定總成績"
                , "免修"
                , "抵免"
                );
            filterRepeat.CheckedChanged += delegate
            {
                if (filterRepeat.Checked)
                {
                    foreach (var item in new string[] { "畢業採計-學分數"
                                                        , "畢業採計-分項類別"
                                                        , "畢業採計-必選修"
                                                        , "畢業採計-校部訂"
                                                        , "畢業採計-不計學分"
                                                        , "畢業採計-說明" }
                             )
                    {
                        if (!wizard.ExportableFields.Contains(item))
                        {
                            wizard.ExportableFields.Add(item);
                        }
                    }
                }
                else
                {
                    foreach (var item in new string[] { "畢業採計-學分數"
                                                        , "畢業採計-分項類別"
                                                        , "畢業採計-必選修"
                                                        , "畢業採計-校部訂"
                                                        , "畢業採計-不計學分"
                                                        , "畢業採計-說明" }
                             )
                    {
                        if (wizard.ExportableFields.Contains(item))
                        {
                            wizard.ExportableFields.Remove(item);
                        }
                    }
                }
            };
            AccessHelper _AccessHelper = new AccessHelper();

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                List <StudentRecord> students = _AccessHelper.StudentHelper.GetStudents(e.List);
                if (filterRepeat.Checked)
                {
                    var gCheck = false;
                    foreach (var item in new string[] { "畢業採計-學分數"
                                                        , "畢業採計-分項類別"
                                                        , "畢業採計-必選修"
                                                        , "畢業採計-校部訂"
                                                        , "畢業採計-不計學分"
                                                        , "畢業採計-說明" }
                             )
                    {
                        if (e.ExportFields.Contains(item))
                        {
                            gCheck = true;
                            break;
                        }
                    }
                    if (gCheck)
                    {
                        new WearyDogComputer().FillStudentGradCheck(_AccessHelper, students);
                    }
                    //_AccessHelper.StudentHelper.FillSemesterSubjectScore(filterRepeat.Checked, students);
                    else
                    {
                        _AccessHelper.StudentHelper.FillSemesterSubjectScore(filterRepeat.Checked, students);
                    }
                }
                else
                {
                    _AccessHelper.StudentHelper.FillSemesterSubjectScore(false, students);
                }
                //if (e.ExportFields.Contains("計算規則-及格標準"))
                //    _AccessHelper.StudentHelper.FillField("及格標準", students);
                //if (e.ExportFields.Contains("計算規則-補考標準"))
                //    _AccessHelper.StudentHelper.FillField("補考標準", students);

                //// 取得學生課程代碼相關對照
                //CourseCodeTransfer cct = new CourseCodeTransfer();
                //// 取得學生課程代碼
                //Dictionary<string, StudentCourseCodeInfo> studCodeInfoDict = cct.GetStundetCourseCodeDict(e.List);

                string subjectCode = "";

                foreach (StudentRecord stu in students)
                {
                    foreach (SemesterSubjectScoreInfo var in stu.SemesterSubjectScoreList)
                    {
                        subjectCode = "";

                        //if (studCodeInfoDict.ContainsKey(stu.StudentID))
                        //{
                        //    StudentCourseCodeInfo item = studCodeInfoDict[stu.StudentID];

                        //    string req = var.Require ? "必修" : "選修";
                        //    subjectCode = item.GetCourseCode(var.Subject, var.Detail.GetAttribute("修課校部訂"), req);
                        //}
                        RowData row = new RowData();
                        row.ID = stu.StudentID;
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "科目": row.Add(field, var.Subject); break;

                                case "科目級別": row.Add(field, var.Level); break;

                                case "學年度": row.Add(field, "" + var.SchoolYear); break;

                                case "學期": row.Add(field, "" + var.Semester); break;

                                case "英文名稱": row.Add(field, var.Detail.GetAttribute("英文名稱")); break;

                                case "學分數": row.Add(field, "" + var.CreditDec()); break;

                                case "分項類別": row.Add(field, var.Detail.GetAttribute("開課分項類別")); break;

                                case "成績年級": row.Add(field, "" + var.GradeYear); break;

                                case "必選修": row.Add(field, var.Require ? "必修" : "選修"); break;

                                case "校部訂": row.Add(field, var.Detail.GetAttribute("修課校部訂")); break;

                                case "科目成績": row.Add(field, "" + var.Score); break;

                                case "原始成績": row.Add(field, var.Detail.GetAttribute("原始成績")); break;

                                case "補考成績": row.Add(field, var.Detail.GetAttribute("補考成績")); break;

                                case "重修成績": row.Add(field, var.Detail.GetAttribute("重修成績")); break;

                                case "手動調整成績": row.Add(field, var.Detail.GetAttribute("擇優採計成績")); break;

                                case "學年調整成績": row.Add(field, var.Detail.GetAttribute("學年調整成績")); break;

                                case "取得學分": row.Add(field, var.Pass ? "是" : "否"); break;

                                case "不計學分": row.Add(field, var.Detail.GetAttribute("不計學分") == "是" ? "是" : ""); break;

                                case "不需評分": row.Add(field, var.Detail.GetAttribute("不需評分") == "是" ? "是" : ""); break;

                                case "註記": row.Add(field, var.Detail.HasAttribute("註記") ? var.Detail.GetAttribute("註記") : ""); break;

                                //case "計算規則-及格標準":
                                //    if (stu.Fields.ContainsKey("及格標準") && stu.Fields["及格標準"] is Dictionary<int, decimal>)
                                //    {
                                //        Dictionary<int, decimal> applyLimit = (Dictionary<int, decimal>)stu.Fields["及格標準"];
                                //        if (applyLimit.ContainsKey(var.GradeYear))
                                //        {
                                //            row.Add(field, "" + applyLimit[var.GradeYear]);
                                //        }
                                //        else
                                //        {
                                //            row.Add(field, "無法判斷");
                                //        }
                                //    }
                                //    else
                                //    {
                                //        row.Add(field, "沒有成績計算規則");
                                //    }
                                //    break;

                                //case "計算規則-補考標準":
                                //    if (stu.Fields.ContainsKey("補考標準") && stu.Fields["補考標準"] is Dictionary<int, decimal>)
                                //    {
                                //        Dictionary<int, decimal> reexamLimit = (Dictionary<int, decimal>)stu.Fields["補考標準"];
                                //        if (reexamLimit.ContainsKey(var.GradeYear))
                                //        {
                                //            row.Add(field, "" + reexamLimit[var.GradeYear]);
                                //        }
                                //        else
                                //        {
                                //            row.Add(field, "無法判斷");
                                //        }
                                //    }
                                //    else
                                //    {
                                //        row.Add(field, "沒有成績計算規則");
                                //    }
                                //    break;

                                case "畢業採計-學分數":
                                case "畢業採計-分項類別":
                                case "畢業採計-必選修":
                                case "畢業採計-校部訂":
                                case "畢業採計-不計學分":
                                    if (var.Detail.GetAttribute(field) == "")
                                    {
                                        row.Add(field, "--");
                                    }
                                    else
                                    {
                                        row.Add(field, var.Detail.GetAttribute(field));
                                    }
                                    break;

                                case "畢業採計-說明":
                                    row.Add(field, var.Detail.GetAttribute(field));
                                    break;

                                case "是否補修成績": row.Add(field, var.Detail.GetAttribute("是否補修成績") == "是" ? "是" : ""); break;

                                case "重修學年度": row.Add(field, var.Detail.GetAttribute("重修學年度")); break;

                                case "重修學期": row.Add(field, var.Detail.GetAttribute("重修學期")); break;

                                case "補修學年度": row.Add(field, var.Detail.GetAttribute("補修學年度")); break;

                                case "補修學期": row.Add(field, var.Detail.GetAttribute("補修學期")); break;

                                case "修課及格標準": row.Add(field, var.Detail.GetAttribute("修課及格標準")); break;

                                case "修課補考標準": row.Add(field, var.Detail.GetAttribute("修課補考標準")); break;

                                //                                    case "修課科目代碼": row.Add(field, var.Detail.GetAttribute("修課科目代碼")); break;
                                case "修課備註": row.Add(field, var.Detail.GetAttribute("修課備註")); break;

                                case "修課直接指定總成績": row.Add(field, var.Detail.GetAttribute("修課直接指定總成績")); break;

                                //case "應修學期": row.Add(field, var.Detail.GetAttribute("應修學期")); break;
                                case "免修": row.Add(field, var.Detail.GetAttribute("免修") == "是" ? "是" : ""); break;

                                case "抵免": row.Add(field, var.Detail.GetAttribute("抵免") == "是" ? "是" : ""); break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }
                }
            };
        }
Esempio n. 22
0
        //覆寫
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            List <string> FieldList = new List <string>();

            FieldList.Add("科目");  //聯課活動
            FieldList.Add("科目級別");
            FieldList.Add("學年度"); //目前欄位
            FieldList.Add("學期");  //目前欄位
            FieldList.Add("學分數");
            FieldList.Add("必選修");
            FieldList.Add("分項類別");
            FieldList.Add("成績年級");
            FieldList.Add("校部訂");
            FieldList.Add("科目成績"); //目前欄位
            FieldList.Add("原始成績"); //目前欄位
            FieldList.Add("取得學分");

            FieldList.Add("社團名稱"); //目前欄位
            FieldList.Add("社團成績"); //目前欄位
            FieldList.Add("幹部記錄"); //目前欄位

            wizard.ExportableFields.AddRange(FieldList);

            wizard.ExportPackage += (sender, e) =>
            {
                //取得學生清單

                AccessHelper helper = new AccessHelper();

                string strCondition = string.Empty;

                foreach (string ID in e.List)
                {
                    strCondition += strCondition == string.Empty ? "'" + ID + "'" : ",'" + ID + "'";
                }

                List <ResultScoreRecord> records = helper.Select <ResultScoreRecord>("ref_student_id in (" + strCondition + ")");

                //取得學生學期歷程
                List <SemesterHistoryRecord> SemesterList = SemesterHistory.SelectByStudentIDs(e.List);

                //學生ID : SemesterHistoryRecord
                Dictionary <string, SemesterHistoryRecord> SemesterDic = new Dictionary <string, SemesterHistoryRecord>();
                foreach (SemesterHistoryRecord each in SemesterList)
                {
                    if (!SemesterDic.ContainsKey(each.RefStudentID))
                    {
                        SemesterDic.Add(each.RefStudentID, each);
                    }
                }

                //records.Sort();

                for (int i = 0; i < records.Count; i++)
                {
                    RowData row = new RowData();
                    row.ID = records[i].RefStudentID;

                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            string 取得學分 = "否";
                            string 科目級別 = "";
                            string 成績年級 = "";

                            if (records[i].ResultScore.HasValue)
                            {
                                if (records[i].ResultScore.Value >= 60)
                                {
                                    取得學分 = "是";
                                }
                            }

                            if (SemesterDic.ContainsKey(records[i].RefStudentID))
                            {
                                SemesterHistoryRecord shr = SemesterDic[records[i].RefStudentID];

                                foreach (SemesterHistoryItem each in shr.SemesterHistoryItems)
                                {
                                    if (records[i].SchoolYear == each.SchoolYear && records[i].Semester == each.Semester)
                                    {
                                        科目級別 = GetSchoolYearByGradeYear(each);
                                        成績年級 = each.GradeYear.ToString();
                                    }
                                }
                            }

                            switch (field)
                            {
                            case "科目": row.Add(field, "聯課活動"); break;

                            //需要依據學期歷程進行判斷
                            case "科目級別": row.Add(field, 科目級別); break;

                            case "學年度": row.Add(field, "" + records[i].SchoolYear); break;

                            case "學期": row.Add(field, "" + records[i].Semester); break;

                            case "學分數": row.Add(field, "0"); break;

                            case "必選修": row.Add(field, "必修"); break;

                            case "分項類別": row.Add(field, "學業"); break;

                            case "成績年級": row.Add(field, 成績年級); break;

                            case "校部訂": row.Add(field, "部訂"); break;

                            case "科目成績": row.Add(field, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break;

                            case "原始成績": row.Add(field, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break;

                            case "取得學分": row.Add(field, 取得學分); break;

                            case "社團名稱": row.Add(field, records[i].ClubName); break;

                            case "社團成績": row.Add(field, records[i].ResultScore.HasValue ? records[i].ResultScore.Value.ToString() : ""); break;

                            case "幹部記錄": row.Add(field, records[i].CadreName); break;
                            }
                        }
                    }
                    e.Items.Add(row);
                }
            };
        }
Esempio n. 23
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("姓名", "學號", "班級", "座號", "必選修", "校部訂", "學生狀態");
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                //課程資訊
                List <SHCourseRecord> courses = SHCourse.SelectByIDs(e.List);
                //學生修課資訊
                Dictionary <string, List <SHSCAttendRecord> > scattends = new Dictionary <string, List <SHSCAttendRecord> >();
                //課程修課學生
                Dictionary <string, SHStudentRecord> students = new Dictionary <string, SHStudentRecord>();

                #region 取得修課記錄
                foreach (SHSCAttendRecord record in SHSCAttend.SelectByStudentIDAndCourseID(new string[] { }, e.List))
                {
                    if (!scattends.ContainsKey(record.RefCourseID))
                    {
                        scattends.Add(record.RefCourseID, new List <SHSCAttendRecord>());
                    }
                    scattends[record.RefCourseID].Add(record);

                    if (!students.ContainsKey(record.RefStudentID))
                    {
                        students.Add(record.RefStudentID, null);
                    }
                }
                #endregion

                #region 取得學生資訊
                SHStudent.RemoveAll();
                foreach (SHStudentRecord record in SHStudent.SelectByIDs(new List <string>(students.Keys)))
                {
                    if (students.ContainsKey(record.ID))
                    {
                        students[record.ID] = record;
                    }
                }
                #endregion

                #region 產生 Row Data
                foreach (SHCourseRecord course in courses)
                {
                    //Debug
                    if (!scattends.ContainsKey(course.ID))
                    {
                        continue;
                    }

                    foreach (SHSCAttendRecord record in scattends[course.ID])
                    {
                        RowData row = new RowData();
                        row.ID = course.ID;
                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "姓名": row.Add(field, students[record.RefStudentID].Name); break;

                                case "學號": row.Add(field, students[record.RefStudentID].StudentNumber); break;

                                case "班級": row.Add(field, (students[record.RefStudentID].Class != null ? students[record.RefStudentID].Class.Name : "")); break;

                                case "座號": row.Add(field, "" + students[record.RefStudentID].SeatNo); break;

                                case "必選修":
                                    if (record.Required)
                                    {
                                        row.Add(field, "" + "必修");
                                    }
                                    else
                                    {
                                        row.Add(field, "" + "選修");
                                    }
                                    break;

                                case "校部訂":
                                    row.Add(field, "" + record.RequiredBy);
                                    break;

                                case "學生狀態": row.Add(field, "" + students[record.RefStudentID].Status.ToString()); break;
                                }
                            }
                        }
                        e.Items.Add(row);
                    }
                }
                #endregion

                ApplicationLog.Log("成績系統.匯入匯出", "匯出課程修課學生", "總共匯出" + e.Items.Count + "筆課程修課學生。");
            };
        }
Esempio n. 24
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("身分證號", "排名", "總分", "成績內容", "分發校系代碼", "分發學校", "分發科系", "確定分發結果", "組別", "梯次", "備註");
            wizard.PackageLimit   = 200;
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                FISCA.UDT.Condition.InCondition condition = new FISCA.UDT.Condition.InCondition();
                condition.Field = "RefStudentID";
                condition.Values.AddRange(e.List);
                var datas = _AccessHelper.Select <推甄學生資料>(condition);
                foreach (var refStudentID in e.List)
                {
                    SmartSchool.API.PlugIn.RowData rowData = new SmartSchool.API.PlugIn.RowData();
                    rowData.ID = refStudentID;
                    #region 寫入預設值
                    foreach (var field in e.ExportFields)
                    {
                        switch (field)
                        {
                        case "排名":
                            rowData.Add(field, "");
                            break;

                        case "總分":
                            rowData.Add(field, "");
                            break;

                        case "身分證號":
                            rowData.Add(field, "");
                            break;

                        case "成績內容":
                            rowData.Add(field, "");
                            break;

                        case "分發校系代碼":
                            rowData.Add(field, "");
                            break;

                        case "分發學校":
                            rowData.Add(field, "");
                            break;

                        case "分發科系":
                            rowData.Add(field, "");
                            break;

                        case "確定分發結果":
                            rowData.Add(field, "");
                            break;

                        case "組別":
                            rowData.Add(field, "");
                            break;

                        case "梯次":
                            rowData.Add(field, "");
                            break;

                        case "備註":
                            rowData.Add(field, "");
                            break;
                        }
                    }
                    #endregion
                    foreach (var item in datas)
                    {
                        if (item.StudentRecord.ID == refStudentID)
                        {
                            #region 填入真值
                            foreach (var field in e.ExportFields)
                            {
                                switch (field)
                                {
                                case "排名":
                                    rowData[field] = "" + item.排名;
                                    break;

                                case "總分":
                                    rowData[field] = "" + item.總分;
                                    break;

                                case "身分證號":
                                    rowData[field] = item.StudentRecord.IDNumber;
                                    break;

                                case "成績內容":
                                    rowData[field] = item.成績內容;
                                    break;

                                case "分發校系代碼":
                                    rowData[field] = (item.分發結果 == null ? "" : item.分發結果.代碼);
                                    break;

                                case "分發學校":
                                    rowData[field] = (item.分發結果 == null ? "" : item.分發結果.校名);
                                    break;

                                case "分發科系":
                                    rowData[field] = (item.分發結果 == null ? "" : item.分發結果.系名);
                                    break;

                                case "確定分發結果":
                                    rowData[field] = (item.確定分發結果 ? "是" : "否");
                                    break;

                                case "組別":
                                    rowData[field] = "" + item.組別;
                                    break;

                                case "梯次":
                                    rowData[field] = "" + item.梯次;
                                    break;

                                case "備註":
                                    rowData[field] = item.備註;
                                    break;
                                }
                            }
                            #endregion
                            break;
                        }
                    }
                    e.Items.Add(rowData);
                }
            };
        }
Esempio n. 25
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            List <string> FieldsList = GetList();

            wizard.ExportableFields.AddRange(FieldsList.ToArray());

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                #region 收集資料

                //取得所選社團
                List <string>        SelectCLUBIDList = e.List;
                List <ClubCadresObj> _startList       = new List <ClubCadresObj>();
                List <CLUBRecord>    clubList         = helper.Select <CLUBRecord>(SelectCLUBIDList);
                CLUBDic.Clear();
                foreach (CLUBRecord each in clubList)
                {
                    if (!CLUBDic.ContainsKey(each.UID))
                    {
                        CLUBDic.Add(each.UID, each);
                    }

                    #region 處理學生擔任之幹部
                    if (!string.IsNullOrEmpty(each.President))
                    {
                        ClubCadresObj obj = new ClubCadresObj();
                        obj._Club          = each;
                        obj.ref_student_id = each.President;
                        obj.CadreName      = "社長";
                        _startList.Add(obj);
                    }

                    if (!string.IsNullOrEmpty(each.VicePresident))
                    {
                        ClubCadresObj obj = new ClubCadresObj();
                        obj._Club          = each;
                        obj.ref_student_id = each.VicePresident;
                        obj.CadreName      = "副社長";
                        _startList.Add(obj);
                    }
                    #endregion
                }
                //取得社團學生的幹部記錄
                List <CadresRecord> newList = helper.Select <CadresRecord>(string.Format("ref_club_id in ('{0}')", string.Join("','", SelectCLUBIDList)));
                foreach (CadresRecord each in newList)
                {
                    if (CLUBDic.ContainsKey(each.RefClubID))
                    {
                        ClubCadresObj obj = new ClubCadresObj();
                        obj._Club          = CLUBDic[each.RefClubID];
                        obj.CadreName      = each.CadreName;
                        obj.ref_student_id = each.RefStudentID;
                        _startList.Add(obj);
                    }
                }

                List <string> StudentIDList = new List <string>();
                foreach (ClubCadresObj rsr in _startList)
                {
                    if (!StudentIDList.Contains(rsr.ref_student_id))
                    {
                        StudentIDList.Add(rsr.ref_student_id);
                    }
                }

                #endregion

                #region 取得學生基本資料

                StudentDic.Clear();
                List <StudentRecord> StudentRecordList = Student.SelectByIDs(StudentIDList);
                foreach (StudentRecord each in StudentRecordList)
                {
                    if (!StudentDic.ContainsKey(each.ID))
                    {
                        StudentDic.Add(each.ID, each);
                    }
                }


                foreach (ClubCadresObj Result in _startList)
                {
                    if (StudentDic.ContainsKey(Result.ref_student_id))
                    {
                        Result._Student = StudentDic[Result.ref_student_id];
                    }
                }

                #endregion

                _startList.Sort(SortResult);

                foreach (ClubCadresObj Result in _startList)
                {
                    StudentRecord sr = Result._Student;
                    if (sr == null)
                    {
                        continue;
                    }

                    //社團代碼
                    string CLUBCode = Result._Club.ClubNumber;

                    RowData row = new RowData();
                    row.ID = Result.ref_student_id;

                    foreach (string field in e.ExportFields)
                    {
                        #region row

                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "學年度": row.Add(field, "" + Result._Club.SchoolYear); break;

                            case "學期": row.Add(field, "" + Result._Club.Semester); break;

                            case "社團名稱": row.Add(field, "" + Result._Club.ClubName); break;

                            case "代碼": row.Add(field, CLUBCode); break;

                            case "班級": row.Add(field, string.IsNullOrEmpty(sr.RefClassID) ? "" : sr.Class.Name); break;

                            case "座號": row.Add(field, sr.SeatNo.HasValue ? sr.SeatNo.Value.ToString() : ""); break;

                            case "學號": row.Add(field, sr.StudentNumber); break;

                            case "姓名": row.Add(field, sr.Name); break;

                            case "幹部名稱": row.Add(field, Result.CadreName); break;
                            }
                        }

                        #endregion
                    }
                    e.Items.Add(row);
                }
            };
        }
Esempio n. 26
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            List <string> FieldsList = GetList();

            wizard.ExportableFields.AddRange(FieldsList.ToArray());

            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                #region 收集資料

                //取得所選社團
                List <string> SelectCLUBIDList = e.List;

                //取得參與學生的社團學期成績
                List <SCJoin> SCJoinList   = tool._A.Select <SCJoin>("ref_club_id in ('" + string.Join("','", SelectCLUBIDList) + "')");
                List <string> SCJoinIDList = new List <string>();
                foreach (SCJoin each in SCJoinList)
                {
                    if (!SCJoinIDList.Contains(each.UID))
                    {
                        SCJoinIDList.Add(each.UID);
                    }
                }

                List <ResultScoreRecord> ResultScoreList = tool._A.Select <ResultScoreRecord>("ref_scjoin_id in ('" + string.Join("','", SCJoinIDList) + "')");

                List <string> StudentIDList = new List <string>();

                foreach (ResultScoreRecord rsr in ResultScoreList)
                {
                    if (!StudentIDList.Contains(rsr.RefStudentID))
                    {
                        StudentIDList.Add(rsr.RefStudentID);
                    }
                }

                #endregion

                #region 取得學生基本資料

                StudentDic.Clear();
                if (StudentIDList.Count > 0)
                {
                    DataTable dt = tool._Q.Select(string.Format("select student.id,student.seat_no,student.student_number,student.name,class.class_name,class.id as class_id,class.grade_year from student join class on student.ref_class_id=class.id where student.id in('{0}')", string.Join("','", StudentIDList)));
                    foreach (DataRow each in dt.Rows)
                    {
                        demoStudent ds = new demoStudent(each);
                        if (!StudentDic.ContainsKey(ds.ref_student_id))
                        {
                            StudentDic.Add(ds.ref_student_id, ds);
                        }
                    }
                }

                #endregion

                ResultScoreList.Sort(SortResult);

                foreach (ResultScoreRecord Result in ResultScoreList)
                {
                    if (StudentDic.ContainsKey(Result.RefStudentID))
                    {
                        demoStudent sr = StudentDic[Result.RefStudentID];

                        #region 其它

                        string 取得學分 = "否";
                        if (Result.ResultScore.HasValue)
                        {
                            if (Result.ResultScore.Value >= 60)
                            {
                                取得學分 = "是";
                            }
                        }

                        string 科目級別 = "";
                        string 成績年級 = "";

                        if (!string.IsNullOrEmpty(sr.class_id))
                        {
                            int a;
                            if (int.TryParse(sr.grade_year, out a))
                            {
                                科目級別 = GetSchoolYearByGradeYear(a, Result.Semester);
                                成績年級 = sr.grade_year;
                            }
                        }

                        #endregion

                        RowData row = new RowData();
                        row.ID = Result.UID;

                        foreach (string field in e.ExportFields)
                        {
                            #region row

                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學生系統編號": row.Add(field, sr.ref_student_id); break;

                                case "學號": row.Add(field, sr.student_number); break;

                                case "班級": row.Add(field, sr.class_name); break;

                                case "座號": row.Add(field, sr.seat_no); break;

                                case "姓名": row.Add(field, sr.name); break;

                                case "科目": row.Add(field, "聯課活動"); break;

                                case "科目級別": row.Add(field, 科目級別); break;

                                case "學年度": row.Add(field, "" + Result.SchoolYear); break;

                                case "學期": row.Add(field, "" + Result.Semester); break;

                                case "學分數": row.Add(field, "0"); break;

                                case "必選修": row.Add(field, "必修"); break;

                                case "分項類別": row.Add(field, "學業"); break;

                                case "成績年級": row.Add(field, 成績年級); break;

                                case "校部訂": row.Add(field, "部訂"); break;

                                case "科目成績": row.Add(field, Result.ResultScore.HasValue ? Result.ResultScore.Value.ToString() : ""); break;

                                case "原始成績": row.Add(field, Result.ResultScore.HasValue ? Result.ResultScore.Value.ToString() : ""); break;

                                case "取得學分": row.Add(field, 取得學分); break;
                                }
                            }

                            #endregion
                        }
                        e.Items.Add(row);
                    }
                }
            };
        }
Esempio n. 27
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange("學年度", "學期", "課程名稱", "評量名稱", "定期分數", "平時分數", "文字描述");
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                //學生資訊
                List <JHStudentRecord> students = JHStudent.SelectByIDs(e.List);
                //學生修課資訊
                Dictionary <string, List <JHSCAttendRecord> > scattends = new Dictionary <string, List <JHSchool.Data.JHSCAttendRecord> >();
                //學生修習的課程
                Dictionary <string, JHCourseRecord> courses = new Dictionary <string, JHSchool.Data.JHCourseRecord>();
                //評量成績 key: SCAttendID
                Dictionary <string, List <HC.JHSCETakeRecord> > sces = new Dictionary <string, List <HC.JHSCETakeRecord> >();
                //試別資訊
                Dictionary <string, JHExamRecord> exams = new Dictionary <string, JHSchool.Data.JHExamRecord>();

                #region 取得修課記錄
                foreach (JHSCAttendRecord record in JHSCAttend.SelectByStudentIDAndCourseID(e.List, new string[] { }))
                {
                    if (!scattends.ContainsKey(record.RefStudentID))
                    {
                        scattends.Add(record.RefStudentID, new List <JHSchool.Data.JHSCAttendRecord>());
                    }
                    scattends[record.RefStudentID].Add(record);

                    if (!courses.ContainsKey(record.RefCourseID))
                    {
                        courses.Add(record.RefCourseID, null);
                    }
                }
                #endregion

                #region 取得課程資訊
                foreach (JHCourseRecord record in JHCourse.SelectByIDs(new List <string>(courses.Keys)))
                {
                    if (courses.ContainsKey(record.ID))
                    {
                        courses[record.ID] = record;
                    }
                }
                #endregion

                #region 取得試別資訊
                foreach (JHExamRecord exam in JHExam.SelectAll())
                {
                    if (!exams.ContainsKey(exam.ID))
                    {
                        exams.Add(exam.ID, exam);
                    }
                }
                #endregion

                #region 取得評量成績
                foreach (HC.JHSCETakeRecord record in JHSCETake.SelectByStudentAndCourse(new List <string>(scattends.Keys), new List <string>(courses.Keys)).AsHCJHSCETakeRecords())
                {
                    if (!sces.ContainsKey(record.RefSCAttendID))
                    {
                        sces.Add(record.RefSCAttendID, new List <HC.JHSCETakeRecord>());
                    }
                    sces[record.RefSCAttendID].Add(record);
                }
                #endregion

                #region 產生 Row Data
                foreach (JHStudentRecord stu in students)
                {
                    if (!scattends.ContainsKey(stu.ID))
                    {
                        continue;
                    }

                    foreach (JHSCAttendRecord record in scattends[stu.ID])
                    {
                        if (!sces.ContainsKey(record.ID))
                        {
                            continue;
                        }

                        sces[record.ID].Sort(delegate(HC.JHSCETakeRecord x, HC.JHSCETakeRecord y)
                        {
                            return(x.RefExamID.CompareTo(y.RefExamID));
                        });

                        foreach (HC.JHSCETakeRecord sce in sces[record.ID])
                        {
                            string examName = sce.RefExamID;
                            if (exams.ContainsKey(sce.RefExamID))
                            {
                                examName = exams[sce.RefExamID].Name;
                            }

                            RowData row = new RowData();
                            row.ID = stu.ID;
                            foreach (string field in e.ExportFields)
                            {
                                if (wizard.ExportableFields.Contains(field))
                                {
                                    switch (field)
                                    {
                                    case "學年度": row.Add(field, "" + courses[record.RefCourseID].SchoolYear); break;

                                    case "學期": row.Add(field, "" + courses[record.RefCourseID].Semester); break;

                                    case "課程名稱": row.Add(field, courses[record.RefCourseID].Name); break;

                                    case "評量名稱": row.Add(field, examName); break;

                                    case "定期分數": row.Add(field, "" + sce.Score); break;

                                    case "平時分數": row.Add(field, "" + sce.AssignmentScore); break;

                                    case "文字描述": row.Add(field, sce.Text); break;
                                    }
                                }
                            }
                            e.Items.Add(row);
                        }
                    }
                }
                #endregion

                FISCA.LogAgent.ApplicationLog.Log("成績系統.匯入匯出", "匯出評量成績", "總共匯出" + e.Items.Count + "筆評量成績。");
            };
        }
        //覆寫
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            #region 志願數

            int 學生選填志願數 = GetVolunteerData.GetVolumnteerCount();
            StudentDic = new Dictionary <string, StudentRecord>();
            #endregion

            //Dictionary<string, int> IndexDic = new Dictionary<string, int>();
            //int j = 1;
            List <string> FieldList = new List <string>();
            FieldList.Add("學年度"); //目前欄位
            FieldList.Add("學期");  //目前欄位
            for (int x = 1; x <= 學生選填志願數; x++)
            {
                FieldList.Add(string.Format("志願{0}", x)); //目前欄位
                //IndexDic.Add(string.Format("志願{0}", x), j);
                //j++;
            }
            List <CLUBRecord> ClubList = tool._A.Select <CLUBRecord>();
            Dictionary <string, CLUBRecord> CLUBDic = new Dictionary <string, CLUBRecord>();
            foreach (CLUBRecord each in ClubList)
            {
                if (!CLUBDic.ContainsKey(each.UID))
                {
                    CLUBDic.Add(each.UID, each);
                }
            }

            //取得所選學生之社團志願序(學年度/學期/學生 為單位)
            wizard.ExportableFields.AddRange(FieldList);

            wizard.ExportPackage += (sender, e) =>
            {
                List <VolunteerRecord> VolUnDic = GetVolunteerData.GetStudentVolunteerDic(e.List);
                //取得學生清單
                List <StudentRecord> StudentList = Student.SelectByIDs(e.List);

                StudentList = SortClassIndex.K12Data_StudentRecord(StudentList);
                foreach (StudentRecord each in StudentList)
                {
                    if (!StudentDic.ContainsKey(each.ID))
                    {
                        StudentDic.Add(each.ID, each);
                    }
                }

                VolUnDic.Sort(SortByStudent);

                for (int i = 0; i < VolUnDic.Count; i++)
                {
                    #region MyRegion

                    VolunteerRecord vr  = VolUnDic[i];
                    RowData         row = new RowData();
                    row.ID = VolUnDic[i].RefStudentID;
                    if (!string.IsNullOrEmpty(vr.Content))
                    {
                        Dictionary <string, string> dic = new Dictionary <string, string>();
                        DSXmlHelper dsx = new DSXmlHelper();
                        dsx.Load(vr.Content);
                        foreach (XmlElement each in dsx.BaseElement.SelectNodes("Club"))
                        {
                            string index  = each.GetAttribute("Index");
                            string clubID = each.GetAttribute("Ref_Club_ID");
                            if (CLUBDic.ContainsKey(clubID))
                            {
                                if (!dic.ContainsKey("志願" + index))
                                {
                                    dic.Add("志願" + index, CLUBDic[clubID].ClubName);
                                }
                            }
                        }

                        foreach (string field in e.ExportFields)
                        {
                            if (wizard.ExportableFields.Contains(field))
                            {
                                switch (field)
                                {
                                case "學年度": row.Add(field, "" + VolUnDic[i].SchoolYear); break;

                                case "學期": row.Add(field, "" + VolUnDic[i].Semester); break;
                                }

                                if (dic.ContainsKey(field))
                                {
                                    row.Add(field, dic[field]);
                                }
                            }
                        }
                    }

                    e.Items.Add(row);

                    #endregion
                }
            };
        }
Esempio n. 29
0
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            wizard.ExportableFields.AddRange(_ExportList);
            wizard.ExportPackage += delegate(object sender, SmartSchool.API.PlugIn.Export.ExportPackageEventArgs e)
            {
                // 取得異動代碼
                XElement      _UpdateCode    = DAL.DALTransfer.GetUpdateCodeList();
                List <string> UpdateCodeList = (from elm in _UpdateCode.Elements("異動") where elm.Element("分類").Value == "新生異動" select elm.Element("代號").Value).ToList();
                // 取得學生新生異動
                List <SHUpdateRecordRecord> updateRecList     = (from data in SHUpdateRecord.SelectByStudentIDs(e.List) where UpdateCodeList.Contains(data.UpdateCode) select data).ToList();
                Dictionary <string, string> StudentStatusDict = DAL.FDQuery.GetAllStudentStatus1Dict();

                foreach (SHUpdateRecordRecord rec in updateRecList)
                {
                    RowData row = new RowData();
                    row.ID = rec.StudentID;
                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "學年度":
                                if (rec.SchoolYear.HasValue)
                                {
                                    row.Add(field, rec.SchoolYear.Value.ToString());
                                }
                                break;

                            case "學期":
                                if (rec.Semester.HasValue)
                                {
                                    row.Add(field, rec.Semester.Value.ToString());
                                }
                                break;

                            case "年級": row.Add(field, rec.GradeYear); break;

                            case "異動代碼": row.Add(field, rec.UpdateCode); break;

                            case "原因及事項": row.Add(field, rec.UpdateDescription); break;

                            case "異動日期": row.Add(field, rec.UpdateDate); break;

                            case "備註": row.Add(field, rec.Comment); break;

                            case "班別": row.Add(field, rec.ClassType); break;

                            case "科別": row.Add(field, rec.Department); break;

                            case "特殊身分代碼": row.Add(field, rec.SpecialStatus); break;

                            case "入學資格證明文件": row.Add(field, rec.GraduateDocument); break;

                            case "異動姓名": row.Add(field, rec.StudentName); break;

                            case "異動學號": row.Add(field, rec.StudentNumber); break;

                            case "異動身分證字號": row.Add(field, rec.IDNumber); break;

                            case "異動生日": row.Add(field, rec.Birthdate); break;

                            case "異動身分證註記": row.Add(field, rec.IDNumberComment); break;

                            case "異動性別": row.Add(field, rec.Gender); break;

                            case "畢業國中": row.Add(field, rec.GraduateSchool); break;

                            case "畢業國中所在地代碼": row.Add(field, rec.GraduateSchoolLocationCode); break;

                            case "畢業國中學校代碼": row.Add(field, rec.GraduateSchoolCode); break;

                            case "國中畢業學年度": row.Add(field, rec.GraduateSchoolYear); break;

                            case "畢業國中入學資格註記": row.Add(field, rec.GraduateComment); break;

                            case "核准日期": row.Add(field, rec.ADDate); break;

                            case "核准文號": row.Add(field, rec.ADNumber); break;

                            case "狀態":
                                if (StudentStatusDict.ContainsKey(rec.StudentID))
                                {
                                    row.Add(field, StudentStatusDict[rec.StudentID]);
                                }
                                break;
                            }
                        }
                    }
                    e.Items.Add(row);
                }
            };
        }
Esempio n. 30
0
        //覆寫
        public override void InitializeExport(SmartSchool.API.PlugIn.Export.ExportWizard wizard)
        {
            List <string> FieldList = new List <string>();

            FieldList.Add("學年度");  //目前欄位
            FieldList.Add("學期");   //目前欄位
            FieldList.Add("社團名稱"); //目前欄位
            FieldList.Add("代碼");
            FieldList.Add("場地");
            FieldList.Add("類型");

            FieldList.Add("評等");
            FieldList.Add("老師1");
            FieldList.Add("老師2");
            FieldList.Add("老師3");
            FieldList.Add("簡介");
            FieldList.Add("限制:性別");
            FieldList.Add("限制:科別");
            FieldList.Add("限制:一年級人數");
            FieldList.Add("限制:二年級人數");
            FieldList.Add("限制:三年級人數");
            FieldList.Add("限制:人數上限");

            //取得教師
            TeacherDic = GetTeacher();



            wizard.ExportableFields.AddRange(FieldList);

            wizard.ExportPackage += (sender, e) =>
            {
                //取得學生清單

                AccessHelper helper = new AccessHelper();

                string            strCondition = string.Join("','", e.List);
                List <CLUBRecord> records      = helper.Select <CLUBRecord>("uid in ('" + strCondition + "')");

                for (int i = 0; i < records.Count; i++)
                {
                    RowData row = new RowData();
                    row.ID = records[i].UID;

                    string teacher1 = "";
                    string teacher2 = "";
                    string teacher3 = "";
                    if (TeacherDic.ContainsKey(records[i].RefTeacherID))
                    {
                        teacher1 = TeacherDic[records[i].RefTeacherID];
                    }

                    if (TeacherDic.ContainsKey(records[i].RefTeacherID2))
                    {
                        teacher2 = TeacherDic[records[i].RefTeacherID2];
                    }

                    if (TeacherDic.ContainsKey(records[i].RefTeacherID3))
                    {
                        teacher3 = TeacherDic[records[i].RefTeacherID3];
                    }

                    foreach (string field in e.ExportFields)
                    {
                        if (wizard.ExportableFields.Contains(field))
                        {
                            switch (field)
                            {
                            case "學年度": row.Add(field, "" + records[i].SchoolYear); break;

                            case "學期": row.Add(field, "" + records[i].Semester); break;

                            case "社團名稱": row.Add(field, records[i].ClubName); break;

                            case "代碼": row.Add(field, records[i].ClubNumber); break;

                            case "場地": row.Add(field, records[i].Location); break;

                            case "類型": row.Add(field, records[i].ClubCategory); break;

                            case "評等": row.Add(field, records[i].Level); break;

                            case "老師1": row.Add(field, teacher1); break;

                            case "老師2": row.Add(field, teacher2); break;

                            case "老師3": row.Add(field, teacher3); break;

                            case "簡介": row.Add(field, records[i].About); break;

                            case "限制:性別": row.Add(field, records[i].GenderRestrict); break;

                            case "限制:科別": row.Add(field, GetRestrict(records[i].DeptRestrict)); break;

                            case "限制:一年級人數": row.Add(field, records[i].Grade1Limit.HasValue ? "" + records[i].Grade1Limit.Value : ""); break;

                            case "限制:二年級人數": row.Add(field, records[i].Grade2Limit.HasValue ? "" + records[i].Grade2Limit.Value : ""); break;

                            case "限制:三年級人數": row.Add(field, records[i].Grade3Limit.HasValue ? "" + records[i].Grade3Limit.Value : ""); break;

                            case "限制:人數上限": row.Add(field, records[i].Limit.HasValue ? "" + records[i].Limit.Value : ""); break;
                            }
                        }
                    }
                    e.Items.Add(row);
                }
            };
        }