public void AddRelatedField(Field field)
 {
     if (!RelatedFields.Contains(field))
     {
         RelatedFields.Add(field);
     }
 }
Example #2
0
        private void Init(ActivityConfig.ACSeriesRow acsr)
        {
            this.SuspendLayout();
            //flowLayoutPanel1.Controls.Clear();
            if (myRF != null)
            {
                myRF.Dispose();
            }
            myRF                 = null;
            MyACE                = new ACEngine(FM);
            MyACE.myAcSeries     = acsr;
            MyACE.myActivityCode = acsr.ActivityCodeRow;
            MyACE.DoRelFields();
            MyACE.DoStep(ACEngine.Step.RelatedFields0, true);
            MyACE.DoStep(ACEngine.Step.RelatedFields1, true);
            MyACE.DoStep(ACEngine.Step.RelatedFields2, true);
            MyACE.DoStep(ACEngine.Step.RelatedFields3, true);
            MyACE.DoStep(ACEngine.Step.RelatedFields4, true);
            MyACE.DoStep(ACEngine.Step.RelatedFields5, true);
            MyACE.DoStep(ACEngine.Step.RelatedFields6, true);

            BuildForm(acsr);
            if (first)
            {
                foreach (DataView dv in MyACE.relTables.Values)
                {
                    DataTable dt = dv.Table;
                    dt.ColumnChanged += new DataColumnChangeEventHandler(dt_ColumnChanged);
                    atLogic.ObjectBE obe = FM.GetBEFromTable(dt);
                    obe.OnUpdate += new atLogic.UpdateEventHandler(ucSSTCase_OnUpdate);
                }
                first = false;
            }
            this.ResumeLayout();
        }
        public void UpdateIndependentFieldsList(IFieldDependenciesRepository repository, FormGeneratorContext context)
        {
            var allDependFields     = repository.GetAllDependFields();
            var allIndependedFields = context.Field.AsNoTracking()
                                      .ToList()
                                      .Where(f => {
                return((!allDependFields.Contains(f)) && (f.Name != SuperiorFieldName) &&
                       (!RelatedFields.Contains(f)));
            });

            AllIndependentFieldsName = JsonConvert.SerializeObject(allIndependedFields.Select(f => f.Name).ToList());
        }
        public string Valid(FormGeneratorContext _context)
        {
            if (DependencyType == "FieldDuplication" && !int.TryParse(ActivationValue, out _))
            {
                return("Maksymalna wartość musi być liczbą! Popraw błędy");
            }

            if (RelatedFields.FirstOrDefault(f => f.Name == SuperiorFieldName) != null)
            {
                return("Pole nadrzędne nie może być polem podrzędnym w jednej relacji!");
            }
            if (_context.Field.AsNoTracking().FirstOrDefault(f => f.Name == this.CurrentFieldName) == null &&
                this.DependencyType == "FieldVisibly")
            {
                return("Wpisane pole zależne nie istnieje w systemie!");
            }
            if (_context.Field.AsNoTracking().FirstOrDefault(f => f.Name == this.SuperiorFieldName) == null)
            {
                return("Wpisane pole nadrzędne nie istnieje");
            }
            if (this.RelatedFields?.Count != 0 && this.DependencyType == "FieldDuplication")
            {
                return("Niezany błąd. Spróbuj jeszcze raz");
            }
            //nie można edytować zależności ilościowej
            string test            = FieldFieldDependencyType.FieldDuplication.ToString();
            var    dependencyExist = _context.Dependencies
                                     .AsNoTracking()
                                     .FirstOrDefault(dep => (dep.DependencyType.ToString() == this.DependencyType) &&
                                                     (dep.ThisField.Name == this.CurrentFieldName));

            if (dependencyExist != null)
            {
                return("Zależność ilościowa już została zdefiniowana na tym polu.");
            }

            if (_context.Field.FirstOrDefault(f => f.Name == this.SuperiorFieldName).Type != "number" &&
                this.DependencyType == "FieldDuplication")
            {
                return("Tylko pole typu 'number' może być polem nadrzędnym w relacji ilościowej");
            }
            return(null);
        }
Example #5
0
        public void BuildForm(ActivityConfig.ACSeriesRow acsr)
        {
            if (myRF == null)
            {
                myRF = new RelatedFields(MyACE, this, secReadOnly, false);
            }

            myRF.BeginLayout();


            DoBlock(acsr, MyACE.HasRel0, 0);
            DoBlock(acsr, MyACE.HasRel1, 1);
            DoBlock(acsr, MyACE.HasRel2, 2);
            DoBlock(acsr, MyACE.HasRel3, 3);
            DoBlock(acsr, MyACE.HasRel4, 4);
            DoBlock(acsr, MyACE.HasRel5, 5);
            DoBlock(acsr, MyACE.HasRel6, 6);
            DoBlock(acsr, MyACE.HasRel7, 7);
            DoBlock(acsr, MyACE.HasRel8, 8);
            DoBlock(acsr, MyACE.HasRel9, 9);

            myRF.FinishLayout();
        }