Пример #1
0
        private void tsDelete_Click(object sender, EventArgs e)
        {
            //删除确认
            IList <VcEffect> Effects = new List <VcEffect>();

            foreach (BaseEntity ety in MainGrdBind.SelectedObjects)
            {
                ExIList.Append <VcEffect>(this.grpMbrBF.EffectOfDelete(ety), Effects);
            }
            if (!ConfirmEffectFm.Confirm(Effects))
            {
                return;
            }

            //删除
            MainGrd.SelectionChanged -= MainGrd_SelectionChanged;
            try
            {
                IList <BaseEntity> SelectObjects = MainGrdBind.SelectedObjects;
                foreach (BaseEntity ety in SelectObjects)
                {
                    MainBF.Delete(ety);
                }

                MainGrdBind.Remove(SelectObjects);
            }
            finally
            {
                MainGrd.SelectionChanged += MainGrd_SelectionChanged;
            }

            //界面更新
            //if (MainGrd.RowCount == 0)  //删没了后不会触发SelectionChanged
            MainGrd_SelectionChanged(sender, e);
        }
Пример #2
0
        private void btnAttachRemove_Click(object sender, EventArgs e)
        {
            //数据准备
            BaseEntity MainEty = MainGrdBind.Current as BaseEntity;

            //删除确认
            IList <VcEffect> Effects = new List <VcEffect>();

            foreach (BaseEntity ety in AttachGrdBind.SelectedObjects)
            {
                ExIList.Append <VcEffect>(this.grpMbrBF.EffectOfReleaseRln(MainEty, ety), Effects);
            }
            if (!ConfirmEffectFm.Confirm(Effects))
            {
                return;
            }

            //删除
            foreach (Object obj in AttachGrdBind.SelectedObjects)
            {
                GrpMbrBF.ReleaseRln(MainEty, obj as BaseEntity);
            }

            //界面更新
            MainGrd_SelectionChanged(sender, e);
        }
Пример #3
0
        public IList <EnLsnAct> GetLsnActs(BaseEntity Ety)
        {
            Debug.Assert(Ety is EnSquad || Ety is EnTeacher, "只有班级或教师才有课表:" + Ety);

            IList <EnLsnAct> Result = new List <EnLsnAct>();

            if (Ety is EnTeacher)
            {
                foreach (EnClsLesson clsLsn in ThisModule.Dac.Lsn.eachClsLesson())
                {
                    if (clsLsn.Teacher.Id == Ety.Id)
                    {
                        ExIList.Append <EnLsnAct>(ThisModule.Dac.Lsn.GetLsnActs(clsLsn), Result);
                    }
                }
            }
            else
            {
                foreach (EnClsLesson clsLsn in ThisModule.Dac.Lsn.eachClsLesson())
                {
                    if (clsLsn.Squad.Id == Ety.Id)
                    {
                        ExIList.Append <EnLsnAct>(ThisModule.Dac.Lsn.GetLsnActs(clsLsn), Result);
                    }
                }
            }

            return(Result);
        }
Пример #4
0
        /// <summary>
        /// 某班级所有待安排的课
        /// </summary>
        public IList <EnLsnAct> GetFailLsnActs(EnSquad squad)
        {
            IList <EnLsnAct> Result = new List <EnLsnAct>();

            ExIList.Append <EnLsnAct>(SqdScheduleList[squad].FailLsnActs, Result);

            return(Result);
        }
        public void SetCourses(IList <BaseEntity> Crses)
        //此方法有问题的
        {
            IList <BaseEntity> CrsesCopy = new List <BaseEntity>();

            ExIList.Append <BaseEntity>(Crses, CrsesCopy);

            for (Int32 i = FcLsns.Count - 1; i >= 0; i--)
            {
                if (!CrsesCopy.Contains(FcLsns[i].course))
                {
                    FcLsns.RemoveAt(i);
                    this.Modify = true;
                }
                else
                {
                    CrsesCopy.Remove(FcLsns[i].course);
                }
            }


            if (CrsesCopy.Count == 0)
            {
                return;
            }

            IList <BaseEntity> Sqds = new GIListTypeChange <EnSquad, BaseEntity>(DataRule.Sqd.GetMembes(this.Grp));

            foreach (EnSubject crs in CrsesCopy)
            {
                FcLesson Lsn = new FcLesson(this);
                Lsn.course     = crs;
                Lsn.SharedTime = cSharedTime;
                foreach (EnSquad sqd in Sqds)
                {
                    FcClsLesson ClsLsn = new FcClsLesson(Lsn);
                    ClsLsn.squad      = sqd;
                    ClsLsn.SharedTime = Lsn.SharedTime;
                }
                FcLsns.Add(Lsn);
            }
        }
Пример #6
0
        public IList <VcRuleCell> GetRules(BaseEntity Ety)
        {
            IList <VcRuleCell> Result = new List <VcRuleCell>();

            List <KindIdent> KindIdents;
            Int32            RulesIdx;

            if (Find(Ety, out KindIdents, out RulesIdx))
            {
                ExIList.Append <VcRuleCell>(KindIdents[RulesIdx].Rules, Result);
                return(Result);
            }
            else
            {
                KindIdent ki = new KindIdent(Ety.GetType().Name);
                foreach (OleDbDataReader Reader in ThisModule.OleDB.EachRows("select FRule, FTime from TRule "
                                                                             + " where FKind = '" + ki.Kind + "'"
                                                                             + " and FId = " + Ety.Id))
                {
                    VcRuleCell rt = new VcRuleCell();
                    //rt.Rule = (eRule)ExMath.Bound(Convert.ToInt32(Reader[0]), (Int32)eRule.crisscross, (Int32)eRule.excellent, (Int32)eRule.common);

                    var rd = ExConvert.TryToInt32(Reader[0], 0);
                    rt.Rule = rd <(Int32)eRule.crisscross || rd> (Int32) eRule.excellent ? eRule.common : (eRule)rd;
                    rt.Time = VcTimeLogic.GetTimeFromInt32(Convert.ToInt32(Reader[1]));
                    ki.Rules.Add(rt);
                }
                if (KindIdents == null)
                {
                    KindIdents = new List <KindIdent>();
                    KindIdents.Add(ki);
                    RuleBuf.Add(Ety.Id, KindIdents);
                }
                else
                {
                    KindIdents.Add(ki);
                }

                ExIList.Append <VcRuleCell>(ki.Rules, Result);
                return(Result);
            }
        }
Пример #7
0
        public void SetRules(BaseEntity Ety, IList <VcRuleCell> Value)
        {
            List <KindIdent> KindIdents;
            Int32            RulesIdx;

            if (Find(Ety, out KindIdents, out RulesIdx))
            {
                KindIdents[RulesIdx].Rules.Clear();
                ExIList.Append <VcRuleCell>(Value, KindIdents[RulesIdx].Rules);
            }
            else
            {
                KindIdent ki = new KindIdent(Ety.GetType().Name);
                ExIList.Append <VcRuleCell>(Value, ki.Rules);
                if (KindIdents == null)
                {
                    KindIdents = new List <KindIdent>();
                    KindIdents.Add(ki);
                    RulesIdx = KindIdents.Count - 1;
                    RuleBuf.Add(Ety.Id, KindIdents);
                }
            }

            ThisModule.OleDB.ExecuteNonQuery("Delete from TRule "
                                             + " where FKind = '" + Ety.GetType().Name + "'"
                                             + " and FId = " + Ety.Id);

            foreach (VcRuleCell rt in KindIdents[RulesIdx].Rules)
            {
                ThisModule.OleDB.ExecuteNonQuery("insert into TRule"
                                                 + " (FKind, FId, FRule, FTime) values ("
                                                 + "'" + Ety.GetType().Name + "'"
                                                 + ", " + Ety.Id
                                                 + ", " + (Int32)rt.Rule
                                                 + ", " + VcTimeLogic.TimeToInt32(rt.Time)
                                                 + ")");
            }
        }
Пример #8
0
        private void tsAttachAdd_Click(object sender, EventArgs e)
        {
            //数据准备
            BaseEntity         MainEty = MainGrdBind.Current as BaseEntity;
            IList <BaseEntity> OldRlns = new List <BaseEntity>();

            ExIList.Append <BaseEntity>(GrpMbrBF.GetRlns(MainEty), OldRlns);
            IList <BaseEntity> NewRlns = new List <BaseEntity>();

            ExIList.Append <BaseEntity>(OldRlns, NewRlns);

            //交互:用户选择
            if (!this.mainDataIsGroup)
            {
                NewRlns = SelectIF.GroupSelectMulti(GrpMbrBF, NewRlns);
                if (NewRlns == null)
                {
                    return;
                }
            }
            else
            {
                NewRlns = SelectIF.MemberSelectMulti(GrpMbrBF, NewRlns);
                if (NewRlns == null)
                {
                    return;
                }
            }

            //删除/增加确认
            IList <VcEffect> Effects = new List <VcEffect>();

            foreach (BaseEntity ety in OldRlns)
            {
                if (!NewRlns.Contains(ety))
                {
                    ExIList.Append <VcEffect>(this.grpMbrBF.EffectOfReleaseRln(MainEty, ety), Effects);
                }
            }
            foreach (BaseEntity ety in NewRlns)
            {
                if (!OldRlns.Contains(ety))
                {
                    ExIList.Append <VcEffect>(this.grpMbrBF.EffectOfCreateRln(MainEty, ety), Effects);
                }
            }
            if (!ConfirmEffectFm.Confirm(Effects))
            {
                return;
            }

            //删除/增加
            foreach (BaseEntity ety in OldRlns)
            {
                if (!NewRlns.Contains(ety))
                {
                    GrpMbrBF.ReleaseRln(MainEty, ety);
                }
            }
            foreach (BaseEntity ety in NewRlns)
            {
                if (!OldRlns.Contains(ety))
                {
                    GrpMbrBF.CreateRln(MainEty, ety);
                }
            }

            //界面更新
            MainGrd_SelectionChanged(sender, e);
        }