Exemple #1
0
/// <summary>
/// Reset form for change in source column type if needed
/// </summary>
/// <param name="sourceColumnType"></param>

        public void SetSourceColumnType(
            int sourceColumnTypeInt)
        {
            MetaColumnType sourceColumnType = (MetaColumnType)sourceColumnTypeInt;

            SetupFormForColumnType(sourceColumnType);             // setup form
            CalcField.SourceColumnType = sourceColumnType;
            CalcField.SetDerivedValues();

            CondFormatRules rules = new CondFormatRules();

            CondFormatRulesCtl.SetupControl(CalcField.PreclassificationlResultType, rules.ColoringStyle);

            rules.Add(new CondFormatRule());             // include initial rule
            CondFormatRulesCtl.SetupControl(CalcField.PreclassificationlResultType, rules);
            return;
        }
Exemple #2
0
        /// <summary>
        /// Set contents of calculated field form
        /// </summary>
        /// <param name="cf"></param>

        void SetupForm()
        {
            InSetup = true;
            CalcField              cf = CalcField;
            CalcFieldColumn        cfc;
            CalcFieldColumnControl cfcc;
            CondFormatRules        rules;
            int ci, cci;

            MetaColumnType mcType = MetaColumnType.Number;             // be sure source column type is set
            MetaColumn     cfMc   = null;

            Tabs.SelectedTabPageIndex = 0;             // be sure first tab is selected
            SetupControlVisibility();

            foreach (CalcFieldColumnControl cfc0 in CfColCtls)                               // clear field selector controls on form
            {
                cfc0.FieldSelectorControl.Query      = QueriesControl.Instance.CurrentQuery; // cfc0.CfCol.Query = QueriesControl.Instance.CurrentQuery;
                cfc0.FieldSelectorControl.MetaColumn = null;
            }

            AdvancedExpr.Text = "";
            FormatAdvancedExpr(cf.AdvancedExpr, out AdvancedEditorPseudoQuery);             // setup advanced field menu

            if (cf.CalcType == CalcTypeEnum.Basic)
            {
                cfMc = cf.MetaColumn1;

                BasicOptionButton.Checked = true;

                if (cf.Operation != "")
                {
                    Operation.Text = cf.Operation;
                }
                else
                {
                    Operation.Text = "/ (Division)";
                }

                cf.SetDerivedValues();
            }

            else             // advanced type
            {
                AdvancedOptionButton.Checked = true;
                AdvancedExpr.Text            = FormatAdvancedExpr(cf.AdvancedExpr, out AdvancedEditorPseudoQuery);

                List <MetaColumn> mcList = cf.GetInputMetaColumnList();
                if (mcList.Count > 0)
                {
                    cfMc = mcList[0];
                }

                // Setup result type

                if (cf.PreclassificationlResultType == MetaColumnType.Unknown)
                {
                    cf.PreclassificationlResultType = MetaColumnType.Number;
                }
                string txt = cf.PreclassificationlResultType.ToString();
                if (Lex.Eq(txt, "String"))
                {
                    txt = "Text";                                        // fixup
                }
                ResultDataType.Text = txt;

                // Setup outer join table

                JoinAnchorComboBox.Text = "";

                if (Lex.IsDefined(cf.OuterJoinRoot))
                {
                    for (ci = 0; ci < cf.CfCols.Count; ci++)
                    {
                        cfc = cf.CfCols[ci];
                        if (cfc.MetaColumn == null)
                        {
                            continue;
                        }
                        MetaTable mt = cfc.MetaColumn.MetaTable;

                        if (Lex.Eq(cf.OuterJoinRoot, cfc.MetaColumn.MetaTable.Name))
                        {
                            JoinAnchorComboBox.Text = cfc.MetaColumn.MetaTable.Label;
                            break;
                        }
                    }
                }
            }

// Setup column controls for source column type

            if (cfMc != null)
            {
                cf.SourceColumnType = cfMc.DataType;
            }
            else
            {
                cf.SourceColumnType = MetaColumnType.Number;
            }

            SetupFormForColumnType(cf.SourceColumnType);

// Add column controls MetaColumn references and function info

            cci = -1;             // col control index

            for (ci = 0; ci < cf.CfCols.Count; ci++)
            {
                cfc = cf.CfCols[ci];

                cci++;
                if (cci >= CfColCtls.Count)
                {
                    throw new Exception("Number of calculated field columns exceeds limit of: " + CfColCtls.Count);
                }
                cfcc = CfColCtls[cci];

                cfcc.FieldSelectorControl.MetaColumn = cfc.MetaColumn;

                if (Lex.IsDefined(cfc.Function))
                {
                    cfcc.Function.Text = cfc.Function;
                }
                else
                {
                    cfcc.Function.Text = "None";
                }

                cfcc.Constant.Text    = cfc.Constant;
                cfcc.Constant.Enabled = Lex.Contains(cfc.Function, "constant");
            }


            CalcField.ColumnLabel = FieldColumnName.Text;
            Description.Text      = cf.Description;

            if (cf.Operation != "")
            {
                Operation.SelectedItem = cf.Operation;
            }

            if (cf.Classification != null)
            {
                rules = cf.Classification.Rules;
            }
            else
            {
                rules = new CondFormatRules();
            }

            if (rules.Count == 0)
            {
                rules.Add(new CondFormatRule());                 // include initial rule
            }
            CondFormatRulesCtl.SetupControl(CalcField.PreclassificationlResultType, rules.ColoringStyle);
            CondFormatRulesCtl.SetupControl(CalcField.PreclassificationlResultType, rules);

            InSetup = false;
            return;
        }