Example #1
0
        /// //////////////////////////////////////////////////////
        private void m_btnOk_Click(object sender, System.EventArgs e)
        {
            if (m_cmbType.SelectedItem == null || !(m_cmbType.SelectedItem is C2iTypeDonnee))
            {
                CFormAlerte.Afficher(I.T("Enter a data type|30023"), EFormAlerteType.Exclamation);
                return;
            }
            C2iExpression expression = GetExpression();

            if (expression == null)
            {
                return;
            }

            DataTable table = (DataTable)m_gridValeurs.DataSource;
            //Vérifie que toutes les données sont bien du type
            C2iTypeDonnee typeDonnees = (C2iTypeDonnee)m_cmbType.SelectedItem;
            ArrayList     lstValeurs  = new ArrayList();

            foreach (DataRow row in new ArrayList(table.Rows))
            {
                if (!typeDonnees.IsDuBonType(typeDonnees.ObjectToType(row[c_strColValeurStockee], null)))
                {
                    CFormAlerte.Afficher(I.T("The value @1 is not from type @2|30023", row[c_strColValeurStockee].ToString(), typeDonnees.Libelle), EFormAlerteType.Erreur);
                    return;
                }
                object val = typeDonnees.StringToType(row[c_strColValeurStockee].ToString(), null);
                lstValeurs.Add(new CValeurVariableDynamiqueSaisie(val, (string)row[c_strColValeurAffichee]));
            }

            if (typeDonnees.TypeDonnee == TypeDonnee.tDouble)
            {
                IClasseUnite classe = m_cmbSelectClasseUnite.SelectedValue as IClasseUnite;
                m_variable.ClasseUnite          = classe;
                m_variable.FormatAffichageUnite = m_txtFormatUnite.Text;
            }
            else
            {
                m_variable.ClasseUnite          = null;
                m_variable.FormatAffichageUnite = "";
            }


            m_variable.Nom          = m_txtNomVariable.Text.Replace(" ", "_").Trim();
            m_variable.TypeDonnee2i = (C2iTypeDonnee)m_cmbType.SelectedItem;

            m_variable.ExpressionValidation = expression;
            m_variable.DescriptionFormat    = m_txtDescriptionFormat.Text;
            m_variable.Valeurs.Clear();
            foreach (CValeurVariableDynamiqueSaisie valeur in lstValeurs)
            {
                m_variable.Valeurs.Add(valeur);
            }

            if (m_txtValeurParDefaut.Text.Trim() == "")
            {
                m_variable.ExpressionValeurParDefaut = null;
            }
            else
            {
                CContexteAnalyse2iExpression ctxAnalyse = new CContexteAnalyse2iExpression(new CFournisseurPropDynStd(), null);
                CResultAErreur resultExp = new CAnalyseurSyntaxiqueExpression(ctxAnalyse).AnalyseChaine(m_txtValeurParDefaut.Text);
                if (!resultExp)
                {
                    resultExp.EmpileErreur(I.T("Error in default value formula|30024"));
                    CFormAlerte.Afficher(resultExp);
                    return;
                }
                m_variable.ExpressionValeurParDefaut = (C2iExpression)resultExp.Data;
            }

            m_elementAVariables.OnChangeVariable(m_variable);
            DialogResult = DialogResult.OK;
            Close();
        }