示例#1
0
文件: Program.cs 项目: ykebaili/Timos
        private static void ImporterChamps()
        {
            StreamReader reader   = new StreamReader("C:\\Partage\\Import Orange\\Champs controles.txt", Encoding.Default);
            string       strLigne = reader.ReadLine();

            strLigne = reader.ReadLine();
            using (CContexteDonnee contexte = new CContexteDonnee(CSessionClient.GetSessionUnique().IdSession, true, false))
            {
                while (strLigne != null)
                {
                    CRoleChampCustom roleSite            = CRoleChampCustom.GetRole(CSite.c_roleChampCustom);
                    CRoleChampCustom roleWorkBook        = CRoleChampCustom.GetRole(CDossierSuivi.c_roleChampCustom);
                    CRoleChampCustom roleCaracteristique = CRoleChampCustom.GetRole(CCaracteristiqueEntite.c_roleChampCustom);
                    string[]         datas = strLigne.Split('\t');
                    if (datas.Length >= 1)
                    {
                        CChampCustom champ = new CChampCustom(contexte);
                        if (!champ.ReadIfExists(new CFiltreData(CChampCustom.c_champNom + "=@1",
                                                                datas[0])))
                        {
                            champ.CreateNewInCurrentContexte();
                        }
                        champ.Nom = datas[0];
                        C2iTypeDonnee tp = new C2iTypeDonnee(TypeDonnee.tString);
                        if (datas.Length > 1)
                        {
                            if (datas[1].ToUpper() == "BOOL")
                            {
                                tp = new C2iTypeDonnee(TypeDonnee.tBool);
                            }
                            else if (datas[1].ToUpper() == "DATE")
                            {
                                tp = new C2iTypeDonnee(TypeDonnee.tDate);
                            }
                        }
                        champ.TypeDonneeChamp = tp;
                        champ.Categorie       = "";
                        if (datas.Length > 2)
                        {
                            champ.Categorie = datas[2];
                        }
                        CRoleChampCustom role = roleCaracteristique;
                        champ.Role = role;
                    }
                    strLigne = reader.ReadLine();
                }
                reader.Close();
                CResultAErreur result = contexte.SaveAll(true);
                if (!result)
                {
                    CFormAfficheErreur.Show(result.Erreur);
                }
            }
        }
        private void CFormEditVariableFiltreCalculee_Load(object sender, System.EventArgs e)
        {
            // Lance la traduction du formulaire
            sc2i.win32.common.CWin32Traducteur.Translate(this);

            m_cmbOperation.ValueMember   = "Valeur";
            m_cmbOperation.DisplayMember = "Libelle";
            m_cmbOperation.DataSource    = CUtilSurEnum.GetCouplesFromEnum(typeof(OperationsAgregation));
            m_cmbOperation.SelectedValue = (int)m_champ.OperationAgregation;

            //Types finaux
            m_cmbTypeFinal.Items.Clear();
            List <CInfoClasseDynamique> lstTypes = new List <CInfoClasseDynamique>();

            lstTypes.Add(new CInfoClasseDynamique(typeof(DBNull), I.T("Default|20007")));
            lstTypes.Add(new CInfoClasseDynamique(typeof(int), C2iTypeDonnee.GetLibelleType(TypeDonnee.tEntier)));
            lstTypes.Add(new CInfoClasseDynamique(typeof(string), C2iTypeDonnee.GetLibelleType(TypeDonnee.tString)));
            lstTypes.Add(new CInfoClasseDynamique(typeof(bool), C2iTypeDonnee.GetLibelleType(TypeDonnee.tBool)));
            lstTypes.Add(new CInfoClasseDynamique(typeof(DateTime), C2iTypeDonnee.GetLibelleType(TypeDonnee.tDate)));
            lstTypes.Add(new CInfoClasseDynamique(typeof(double), C2iTypeDonnee.GetLibelleType(TypeDonnee.tDouble)));
            m_cmbTypeFinal.DataSource    = lstTypes;
            m_cmbTypeFinal.ValueMember   = "Classe";
            m_cmbTypeFinal.DisplayMember = "Nom";

            Type tp = m_champ.TypeDonneeFinalForce;

            if (tp == null)
            {
                tp = typeof(DBNull);
            }
            try
            {
                m_cmbTypeFinal.SelectedValue = tp;
            }
            catch
            { }

            m_chkGrouper.Checked = m_champ.GroupBy;
            //m_lblSource.Text = m_champ.Source;
            m_txtNomChamp.Text    = m_champ.NomChamp;
            m_txtFonctionSql.Text = m_champ.FonctionSql;

            int nIndex = 0;

            foreach (CSourceDeChampDeRequete source in m_champ.Sources)
            {
                CPanelSourceDeRequete panel = new CPanelSourceDeRequete();
                panel.Dock = DockStyle.Top;
                m_panelSources.Controls.Add(panel);
                panel.BringToFront();
                panel.Init(source, nIndex++, m_typeSource, m_defRacineDeChamps);
            }
        }
示例#3
0
        /// //////////////////////////////////////////////////////
        protected C2iExpression GetExpression()
        {
            if (m_cmbType.SelectedItem == null || !(m_cmbType.SelectedItem is C2iTypeDonnee))
            {
                CFormAlerte.Afficher(I.T("Enter a data type|30023"), EFormAlerteType.Exclamation);
                return(null);
            }
            C2iTypeDonnee typeDonnees              = (C2iTypeDonnee)m_cmbType.SelectedItem;
            CContexteAnalyse2iExpression ctx       = new CContexteAnalyse2iExpression(new CFournisseurPropDynStd(true), CObjetForTestValeurChampCustom.GetNewForTypeDonnee(typeDonnees.TypeDonnee, null, null).GetType());
            CAnalyseurSyntaxique         analyseur = new CAnalyseurSyntaxiqueExpression(ctx);
            CResultAErreur result = analyseur.AnalyseChaine(m_txtFormuleValidation.Text);

            if (!result)
            {
                CFormAlerte.Afficher(result);
                return(null);
            }
            return((C2iExpression)result.Data);
        }
示例#4
0
        ///////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CChampCustom champ = (CChampCustom)objet;

                if (champ.Nom == "")
                {
                    result.EmpileErreur(I.T("The custom field name cannot be empty|108"));
                }
                if (!CObjetDonneeAIdNumerique.IsUnique(champ, CChampCustom.c_champNom, champ.Nom))
                {
                    result.EmpileErreur(I.T("A custom field with this name already exist|109"));
                }

                if (champ.Role == null)
                {
                    result.EmpileErreur(I.T("The field usage cannot be empty|110"));
                }

                //Vérifie que toutes les valeurs sont du type du champ et qu'elles sont uniques
                C2iTypeDonnee typeDonnee   = champ.TypeDonneeChamp;
                Hashtable     tableValeurs = new Hashtable();
                Hashtable     tableDisplay = new Hashtable();
                foreach (CValeurChampCustom valeur in champ.ListeValeurs)
                {
                    object val = valeur.Value;
                    if (val == null)
                    {
                        val = DBNull.Value;
                    }
                    if (tableValeurs[val] != null)
                    {
                        result.EmpileErreur(I.T("The value '@1' appear several times in the value list|111", val.ToString()));
                    }
                    else
                    {
                        tableValeurs[val] = valeur;
                    }

                    if (tableDisplay[valeur.Display] != null)
                    {
                        result.EmpileErreur(I.T("The displayed value '@1' appear several times in the displayed values list|112", valeur.Display));
                    }
                    else
                    {
                        tableDisplay[valeur.Display] = valeur;
                    }

                    if (!typeDonnee.IsDuBonType(valeur.Value))
                    {
                        result.EmpileErreur(I.T("The value '@1' is not a @2 type|113", valeur.Value.ToString(), typeDonnee.Libelle));
                    }
                }

                //Vérifie que la valeur par défaut fait bien partie des valeurs possibles et qu'elle est du bon type
                if (champ.ValeurParDefaut != null && champ.ValeurParDefaut.ToString() != C2iTypeDonnee.c_ConstanteNull)
                {
                    if (!typeDonnee.IsDuBonType(champ.ValeurParDefaut))
                    {
                        result.EmpileErreur(I.T("The default value '@1' is not a @2 type|114", champ.ValeurParDefaut.ToString(), typeDonnee.Libelle));
                    }
                    if (tableValeurs[champ.ValeurParDefaut] == null && (tableValeurs.Count > 0))
                    {
                        result.EmpileErreur(I.T("The default value is not in the possible values list|115"));
                    }
                }

                if (champ.TypeDonneeChamp.TypeDonnee == TypeDonnee.tObjetDonneeAIdNumeriqueAuto)
                {
                    if (champ.LibellePourObjetParent.Trim() == "")
                    {
                        result.EmpileErreur(I.T("Indicate the label for the field seen by the parental object|116"));
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
示例#5
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();
        }
示例#6
0
        /// //////////////////////////////////////////////////////
        private void UpdateAffichagePanelUnite()
        {
            C2iTypeDonnee type = m_cmbType.SelectedItem as C2iTypeDonnee;

            m_panelUnite.Visible = type != null && type.TypeDonnee == TypeDonnee.tDouble;
        }