/// ///////////////////////////////////////////////////
        public override CResultAErreur GetComposantExpression(CFiltreDynamique filtre)
        {
            CResultAErreur result         = CResultAErreur.True;
            C2iExpression  expressionPrec = null;

            foreach (CComposantFiltreDynamique cp in ComposantsFils)
            {
                result = cp.GetComposantExpression(filtre);
                if (result)
                {
                    C2iExpression exp = result.Data as C2iExpression;
                    if (exp != null)
                    {
                        if (expressionPrec != null)
                        {
                            C2iExpression expLogique = GetExpressionOperateurLogique();
                            expLogique.Parametres.Add(expressionPrec);
                            expLogique.Parametres.Add(exp);
                            expressionPrec = expLogique;
                        }
                        else
                        {
                            expressionPrec = exp;
                        }
                    }
                }
                else
                {
                    return(result);
                }
            }
            result.Data = expressionPrec;
            return(result);
        }
Esempio n. 2
0
        //-----------------------------------------------------------------
        protected override CResultAErreur MyMajChamps()
        {
            CResultAErreur result = base.MyMajChamps();

            if (result)
            {
                CParametreDroitEditionType.CCoupleFormuleToGroupeRestrictions couple = CoupleEdite;
                if (couple != null)
                {
                    C2iExpression formule = m_txtFormule.Formule;
                    if (!m_txtFormule.ResultAnalyse)
                    {
                        result.EmpileErreur(result.Erreur);
                    }
                    else
                    {
                        couple.Formule = formule;
                    }
                    m_lblFormule.Text = formule != null?formule.GetString() : "";

                    couple.SetGroupeRestrictions(m_txtGroupe.ElementSelectionne as CGroupeRestrictionSurType);
                    if (result)
                    {
                        result = couple.VerifieDonnees();
                    }
                }
            }
            return(result);
        }
        /// //////////////////////////////////////////
        protected override sc2i.common.CResultAErreur MAJ_Champs()
        {
            CResultAErreur result = base.MAJ_Champs();

            if (!(m_cmbAction.SelectedValue is string))
            {
                result.EmpileErreur(I.T("Select an action|30014"));
                return(result);
            }
            ActionLancer.CodeAction = (string)m_cmbAction.SelectedValue;

            ActionLancer.ResetFormules();

            foreach (CFormuleForParametre formule in m_listeExpressions)
            {
                result = formule.UpdateFromEditeur();
                if (result)
                {
                    C2iExpression expression = formule.Formule;
                    if (expression != null)
                    {
                        ActionLancer.SetFormuleForParametre(formule.NomParametre, formule.Formule);
                    }
                }
                else
                {
                    result.EmpileErreur(I.T("Error in the formula @1|30013", formule.NomConvivial));
                    return(result);
                }
            }


            return(result);
        }
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            result = base.MySerialize(serializer);
            if (!result)
            {
                return(result);
            }

            I2iSerializable objet = (I2iSerializable)m_formuleImprimanteClient;

            result = serializer.TraiteObject(ref objet);
            m_formuleImprimanteClient = (C2iExpression)objet;

            objet  = (I2iSerializable)m_formuleImprimanteServeur;
            result = serializer.TraiteObject(ref objet);
            m_formuleImprimanteServeur = (C2iExpression)objet;


            return(result);
        }
Esempio n. 5
0
        private void m_textBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {
            m_formule = null;
            if (m_bCancelNextKeyPress)
            {
                e.Handled = true;
            }
            else
            {
                if (ListBox.Visible)
                {
                    if ((m_strSeparateurs + ".").IndexOf(e.KeyChar) >= 0)
                    {
                        //Le texte sélectionné ne doit pas contenir le caractère
                        if (ListBox.SelectedIndex >= 0 &&
                            ListBox.SelectedItem.ToString().IndexOf(e.KeyChar) < 0)
                        {
                            InsereFromListBox();
                        }
                    }
                }
            }
            m_bCancelNextKeyPress = false;

            //if (")}]".IndexOf(e.KeyChar) >= 0)
            //    ShowCouple(m_textBox.SelectionStart, e.KeyChar);

            /*if ( e.KeyChar == '.' && !ListBox.Visible )
             *      ShowListBox ( m_textBox.SelectionStart );*/
        }
Esempio n. 6
0
        /// //////////////////////////////////////////
        protected override sc2i.common.CResultAErreur MAJ_Champs()
        {
            CResultAErreur result = base.MAJ_Champs();

            ActionCreerEntite.TypeEntiteACreer = (Type)m_cmbTypeEntite.SelectedValue;
            if (ActionCreerEntite.TypeEntiteACreer == typeof(DBNull))
            {
                ActionCreerEntite.TypeEntiteACreer = null;
            }
            ActionCreerEntite.ResetFormules();

            foreach (CFormuleForPropriete formule in m_listeExpressions)
            {
                result = formule.UpdateFromEditeur();
                if (result)
                {
                    C2iExpression expression = formule.Formule;
                    if (expression != null)
                    {
                        ActionCreerEntite.SetFormuleForPropriete(formule.NomPropriete, formule.Formule);
                    }
                }
                else
                {
                    result.EmpileErreur(I.T("Error in  the formula of @1|30041", formule.NomConvivial));
                    return(result);
                }
            }


            return(result);
        }
Esempio n. 7
0
        //------------------------------------------------------------
        public CResultAErreur GetValue(object objet, string strPropriete)
        {
            CResultAErreur result = CResultAErreur.True;
            CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(objet);

            if (objet is CObjetDonnee)
            {
                contexte.AttacheObjet(typeof(CContexteDonnee), ((CObjetDonnee)objet).ContexteDonnee);
            }
            Type tpAnalyse = null;

            if (objet != null)
            {
                tpAnalyse = objet.GetType();
            }
            CContexteAnalyse2iExpression   ctx       = new CContexteAnalyse2iExpression(new CFournisseurPropDynStd(), tpAnalyse);
            CAnalyseurSyntaxiqueExpression analyseur = new CAnalyseurSyntaxiqueExpression(ctx);

            result = analyseur.AnalyseChaine(strPropriete);
            if (!result)
            {
                return(result);
            }
            C2iExpression formule = (C2iExpression)result.Data;

            result = formule.Eval(contexte);
            if (result)
            {
                return(result);
            }
            return(result);
        }
        //--------------------------------------------------------------------------
        public static void SetFormule(int nIdSession, string strKey, C2iExpression formule)
        {
            AssureRecepteurNotifications(nIdSession);
            CDataBaseRegistrePourClient reg = new CDataBaseRegistrePourClient(nIdSession);

            if (formule == null)
            {
                reg.SetValeurBlob("GLOBFOR_" + strKey, null);
            }
            else
            {
                MemoryStream           stream = new MemoryStream();
                BinaryWriter           writer = new BinaryWriter(stream);
                CSerializerSaveBinaire ser    = new CSerializerSaveBinaire(writer);
                CResultAErreur         res    = ser.TraiteObject <C2iExpression>(ref formule);
                if (res)
                {
                    reg.SetValeurBlob("GLOBFOR_" + strKey, stream.GetBuffer());
                    CDonneeNotificationResetCacheDatabaseRegistre notif = new CDonneeNotificationResetCacheDatabaseRegistre(nIdSession);
                    CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { notif });
                }
                writer.Close();
                stream.Close();
                stream.Dispose();
            }
        }
 ///Applique le paramètre à un élément
 public void ApplyOnElement(C2iSymbole element, CContexteEvaluationExpression ctxEval)
 {
     foreach (KeyValuePair <string, C2iExpression> kv in m_dicFormulesParPropriete)
     {
         string        strPropriete = kv.Key;
         C2iExpression formule      = kv.Value;
         if (formule != null)
         {
             //Trouve la propriete
             PropertyInfo info = element.GetType().GetProperty(strPropriete);
             if (info != null && info.GetSetMethod() != null)
             {
                 MethodInfo     methode = info.GetSetMethod();
                 CResultAErreur result  = formule.Eval(ctxEval);
                 if (result)
                 {
                     try
                     {
                         methode.Invoke(element, new object[] { result.Data });
                     }
                     catch
                     {
                     }
                 }
             }
         }
     }
 }
Esempio n. 10
0
        /// //////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            if (result)
            {
                result = base.MySerialize(serializer);
            }

            serializer.TraiteString(ref m_strFormatAffichage);

            I2iSerializable objet = m_expression;

            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_expression = (C2iExpression)objet;

            // Ajout des propriétés pour le web
            if (nVersion >= 1)
            {
                serializer.TraiteString(ref m_strLibelleWeb);
                serializer.TraiteInt(ref m_nNumOrdreWeb);
            }

            return(result);
        }
        //--------------------------------------------------------------------------
        public static C2iExpression GetFormule(int nIdSession, string strKey)
        {
            AssureRecepteurNotifications(nIdSession);
            C2iExpression formule = null;

            if (m_cacheFormule.TryGetValue(strKey, out formule))
            {
                return(formule);
            }
            CDataBaseRegistrePourClient reg = new CDataBaseRegistrePourClient(nIdSession);

            byte[] bts = reg.GetValeurBlob("GLOBFOR_" + strKey);
            if (bts != null)
            {
                MemoryStream           stream = new MemoryStream(bts);
                BinaryReader           reader = new BinaryReader(stream);
                CSerializerReadBinaire ser    = new CSerializerReadBinaire(reader);
                CResultAErreur         result = ser.TraiteObject <C2iExpression>(ref formule);
                if (result)
                {
                    m_cacheFormule[strKey] = formule;
                }
                reader.Close();
                stream.Close();
                stream.Dispose();
            }
            return(formule);
        }
        private CResultAErreur MajChamps()
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_parametre == null)
            {
                m_parametre = new CParametreRemplissageActiviteParIntervention();
            }
            m_parametre.ListeRemplissage.Clear();
            foreach (CFormuleForParametre formule in m_listeExpressions)
            {
                result = formule.UpdateFromEditeur();
                if (result)
                {
                    C2iExpression expression = formule.Formule;
                    if (expression != null)
                    {
                        CRemplisssageChampActiviteActeur remplissage = new CRemplisssageChampActiviteActeur();
                        remplissage.IdChampCustom = formule.ChampCustom.Id;
                        remplissage.Formule       = formule.Formule;
                        m_parametre.ListeRemplissage.Add(remplissage);
                    }
                }
                else
                {
                    result.EmpileErreur(I.T("Error in the formula of @1|30192", formule.ChampCustom.Nom));
                    return(result);
                }
            }
            return(result);
        }
        /// //////////////////////////////////////////////////////////////
        protected override sc2i.common.CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;
            IDeclencheurActionSurServeur declencheur = (IDeclencheurActionSurServeur)C2iFactory.GetNewObjetForSession("CDeclencheurActionSurServeur", typeof(IDeclencheurActionSurServeur), contexte.IdSession);

            if (declencheur == null)
            {
                result.EmpileErreur(I.T("Release action allocation server fail|187"));
                return(result);
            }

            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process);

            contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);

            Hashtable valeursParametres = new Hashtable();

            foreach (DictionaryEntry entry in m_tableValeursParametres)
            {
                string        strProp    = (string)entry.Key;
                C2iExpression expression = (C2iExpression)entry.Value;

                //Cherche la propriété
                result = expression.Eval(contexteEval);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error during @1 value evaluation|188", entry.Key.ToString()));
                    return(result);
                }
                valeursParametres[entry.Key] = result.Data;
            }

            return(declencheur.ExecuteAction(m_strCodeActionServeur, valeursParametres));
        }
Esempio n. 14
0
        //--------------------------------------
        public C2iExpression GetFormuleFor(CDefinitionProprieteDynamique definition)
        {
            C2iExpression formule = null;

            m_dicAffectations.TryGetValue(definition, out formule);
            return(formule);
        }
        public void AddProprietesAccedees(
            CArbreDefinitionsDynamiques arbre,
            Type typeSource,
            string strPropriete)
        {
            //TESTDBKEYOK
            CDbKey key = CDbKey.CreateFromStringValue(strPropriete);

            /*int nIdChamp = -1;
             *          try
             *          {
             *                  nIdChamp = Int32.Parse ( strPropriete );
             *          }
             *          catch
             *          {
             *          }*/
            CChampCalcule champCalcule = new CChampCalcule(CContexteDonneeSysteme.GetInstance());
            C2iExpression formule      = null;

            if (champCalcule.ReadIfExists(key))
            {
                formule = champCalcule.Formule;
                formule.GetArbreProprietesAccedees(arbre);
                CDefinitionProprieteDynamiqueChampCalcule.DetailleSousArbres(arbre, CContexteDonneeSysteme.GetInstance());
            }
        }
Esempio n. 16
0
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            if (result)
            {
                result = base.MySerialize(serializer);
            }

            serializer.TraiteString(ref m_strFormatAffichage);

            I2iSerializable objet = m_expression;

            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_expression = (C2iExpression)objet;


            return(result);
        }
Esempio n. 17
0
        /// ////////////////////////////////////////////////////////////////////////////
        private void m_btnOk_Click(object sender, System.EventArgs e)
        {
            if (m_champ == null)
            {
                CFormAlerte.Afficher(I.T("Select a field to test|30014"), EFormAlerteType.Exclamation);
                return;
            }
            CContexteAnalyse2iExpression   ctx       = new CContexteAnalyse2iExpression(m_filtre, typeof(CFiltreDynamique));
            CAnalyseurSyntaxiqueExpression analyseur = new CAnalyseurSyntaxiqueExpression(ctx);

            CResultAErreur result = analyseur.AnalyseChaine(m_txtCondition.Text);

            if (!result)
            {
                result.EmpileErreur(I.T("Error in condition formula|30016"));
                CFormAlerte.Afficher(result);
                return;
            }
            C2iExpression expressionCondition = (C2iExpression)result.Data;



            m_composant.Champ = m_champ;
            m_composant.ConditionApplication = expressionCondition;
            m_composant.TestNull             = m_btnEstNull.Checked;
            DialogResult = DialogResult.OK;
            Close();
        }
Esempio n. 18
0
        public static C2iExpression EditeFormule(string strFormule,
                                                 IFournisseurProprietesDynamiques fournisseur,
                                                 CObjetPourSousProprietes objetAnalyse)
        {
            CFormStdEditeFormule form = new CFormStdEditeFormule();

            form.m_strFormule   = strFormule;
            form.m_objetAnalyse = objetAnalyse;
            form.m_fournisseur  = fournisseur;
            C2iExpression formule = null;

            if (form.ShowDialog() == DialogResult.OK)
            {
                formule = form.m_txtFormule.Formule;
            }
            else
            {
                CContexteAnalyse2iExpression ctx = new CContexteAnalyse2iExpression(fournisseur, objetAnalyse);
                CResultAErreur result            = new CAnalyseurSyntaxiqueExpression(ctx).AnalyseChaine(strFormule);
                if (result)
                {
                    formule = result.Data as C2iExpression;
                }
            }
            form.Dispose();
            return(formule);
        }
Esempio n. 19
0
        ////////////////////////////////////////////
        private void OnChangeExpression(string strTexte, ref C2iExpression expToSet, CComboboxAutoFilled combo)
        {
            CContexteAnalyse2iExpression ctx = new CContexteAnalyse2iExpression(ActionSynchronisme.Process, typeof(CProcess));
            CResultAErreur result            = new CAnalyseurSyntaxiqueExpression(ctx).AnalyseChaine(strTexte);

            if (result)
            {
                ArrayList lstChamps = new ArrayList();
                expToSet = (C2iExpression)result.Data;
                Type            tp        = expToSet.TypeDonnee.TypeDotNetNatif;
                CStructureTable structure = null;
                try
                {
                    structure = CStructureTable.GetStructure(tp);
                    ArrayList lst = new ArrayList();
                    foreach (CInfoChampTable champ in structure.Champs)
                    {
                        if (champ.TypeDonnee == typeof(DateTime) || champ.TypeDonnee == typeof(DateTime?))
                        {
                            lst.Add(champ);
                        }
                    }
                    //Cherche les champs custom
                    if (typeof(CElementAChamp).IsAssignableFrom(tp))
                    {
                        //Crée les infos champ custom pour le type
                        using (CContexteDonnee contexte = new CContexteDonnee(
                                   CSessionClient.GetSessionUnique().IdSession,
                                   true, false))
                        {
                            string strCodeRole = CRoleChampCustom.GetRoleForType(tp).CodeRole;
                            CListeObjetsDonnees listeChamps = CChampCustom.GetListeChampsForRole(
                                contexte, strCodeRole);
                            new CListeObjetsDonnees(contexte, typeof(CChampCustom));
                            listeChamps.Filtre = new CFiltreData(
                                CChampCustom.c_champType + "=@1",
                                (int)TypeDonnee.tDate);
                            foreach (CChampCustom champ in listeChamps)
                            {
                                CInfoChampTable info = new CInfoChampTable(
                                    CSynchronismeDonnees.c_idChampCustom + champ.Id.ToString(),
                                    typeof(DateTime),
                                    0,
                                    false,
                                    false,
                                    true,
                                    false,
                                    true);
                                info.NomConvivial = champ.Nom;
                                lst.Add(info);
                            }
                        }
                    }
                    combo.ListDonnees = lst;
                }
                catch
                {
                }
            }
        }
Esempio n. 20
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            result = base.MySerialize(serializer);
            if (result)
            {
                I2iSerializable tmp = m_formuleTableAImporter;
                result = serializer.TraiteObject(ref tmp);
                m_formuleTableAImporter = (C2iExpression)tmp;
            }
            if (result)
            {
                I2iSerializable tmp = m_formuleFichierSource;
                result = serializer.TraiteObject(ref tmp);
                m_formuleFichierSource = (C2iExpression)tmp;
            }

            int nTmp = (int)m_modeImport;

            serializer.TraiteInt(ref nTmp);
            m_modeImport = (EImportTableParametrableMode)nTmp;

            return(result);
        }
Esempio n. 21
0
        /// /////////////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            CResultAErreur result   = CResultAErreur.True;
            int            nVersion = GetNumVersion();

            result = serializer.TraiteVersion(ref nVersion);
            if (!result)
            {
                return(result);
            }
            result = base.MySerialize(serializer);
            if (!result)
            {
                return(result);
            }


            I2iSerializable objet = m_formuleMessage;

            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                return(result);
            }
            m_formuleMessage = (C2iExpression)objet;

            result = serializer.TraiteArrayListOf2iSerializable(m_listeFormulesDestinataires);
            if (!result)
            {
                return(result);
            }

            return(result);
        }
Esempio n. 22
0
        public string GetNextValue(object source)
        {
            C2iExpression formule = FormuleCle;
            string        strCle  = "";

            if (formule != null)
            {
                Type typeSource = TypeSource;
                CContexteEvaluationExpression ctx = null;
                if (typeSource != null)
                {
                    //Vérifie que la source est du bon type
                    if (source == null || !typeSource.IsAssignableFrom(source.GetType()))
                    {
                        throw new Exception(I.T("Source type is invalide for sequence @1 (@2)",
                                                Libelle,
                                                source == null?"Null":source.GetType().ToString()));
                    }
                    ctx = new CContexteEvaluationExpression(source);
                }
                else
                {
                    ctx = new CContexteEvaluationExpression(null);
                }
                CResultAErreur result = formule.Eval(ctx);
                if (!result)
                {
                    throw new Exception(I.T("Error while evaluating key formula for sequence @1|20131",
                                            Libelle));
                }
                if (result.Data != null)
                {
                    strCle = result.Data.ToString();
                }
                else
                {
                    strCle = "";
                }
            }
            //Cherche la dernière valeur pour cette clé
            CValeurSequenceNumerotation valeur = new CValeurSequenceNumerotation(ContexteDonnee);

            if (!valeur.ReadIfExists(new CFiltreData(CValeurSequenceNumerotation.c_champCle + "=@1 and " +
                                                     CSequenceNumerotation.c_champId + "=@2",
                                                     strCle,
                                                     Id)))
            {
                valeur.CreateNewInCurrentContexte();
                valeur.SequenceNumerotation = this;
                valeur.DerniereValeur       = ValeurDepart;
                valeur.Cle = strCle;
            }
            else
            {
                valeur.DerniereValeur++;
            }
            string strValeur = strCle + FormatNumerotation.GetReference(valeur.DerniereValeur).Data.ToString();

            return(strValeur);
        }
Esempio n. 23
0
        /// //////////////////////////////////////////
        private void OnChangeVariable()
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_variableEnCoursEdition != null)
            {
                if (m_txtFormuleVariable.Text.Trim() != "")
                {
                    result = GetFormule(m_txtFormuleVariable);
                    if (!result)
                    {
                        CFormAlerte.Afficher(result.Erreur);
                        return;
                    }
                    m_tableIdVariableToFormule[m_variableEnCoursEdition.IdVariable] = result.Data;
                }
                else
                {
                    m_tableIdVariableToFormule[m_variableEnCoursEdition.IdVariable] = null;
                }
            }
            if (m_wndListeVariables.SelectedItems.Count != 1)
            {
                m_variableEnCoursEdition     = null;
                m_txtFormuleVariable.Visible = true;
                return;
            }

            m_variableEnCoursEdition = (IVariableDynamique)m_wndListeVariables.SelectedItems[0].Tag;
            m_lblNomVariable.Text    = m_variableEnCoursEdition.Nom;
            C2iExpression expression = (C2iExpression)m_tableIdVariableToFormule[m_variableEnCoursEdition.IdVariable];

            m_txtFormuleVariable.Text = expression == null?"":expression.GetString();
        }
Esempio n. 24
0
        /// //////////////////////////////////////////////////////
        private void m_btnTester_Click(object sender, System.EventArgs e)
        {
            C2iExpression expression = GetExpression();

            if (expression == null)
            {
                return;
            }
            if (m_cmbType.SelectedItem == null || !(m_cmbType.SelectedItem is C2iTypeDonnee))
            {
                CFormAlerte.Afficher(I.T("Select a data type|30026"), EFormAlerteType.Exclamation);
                return;
            }
            TypeDonnee tp  = ((C2iTypeDonnee)m_cmbType.SelectedItem).TypeDonnee;
            object     obj = CObjetForTestValeurChampCustom.GetNewForTypeDonnee(tp,
                                                                                null, m_txtTest.Text);
            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(obj);
            CResultAErreur result             = expression.Eval(ctx);

            if (!result)
            {
                result.EmpileErreur(I.T("Error during validation formula evaluation|30027"));
                CFormAlerte.Afficher(result);
                return;
            }
            if ((result.Data is bool && (bool)result.Data) || result.Data.ToString() == "1")
            {
                CFormAlerte.Afficher(I.T("Accepted value|30028"));
            }
            else
            {
                CFormAlerte.Afficher(I.T("Rejected value|30029"), EFormAlerteType.Erreur);
            }
        }
        public CResultAErreur Init(
            Type typeObjets,
            string strProprieteListeFils,
            string strChampParent,
            string strProprieteAffichee,
            CFiltreData filtre,
            CFiltreData filtreRacine)
        {
            m_typeObjets              = typeObjets;
            m_strProprieteListeFils   = strProprieteListeFils;
            m_strChampParent          = strChampParent;
            m_strDefProprieteAffichee = strProprieteAffichee;
            string[] strProp = strProprieteAffichee.Split('|');
            m_strProprieteAffichee = strProp[0];
            if (strProp.Length > 1 && CFormulesGlobaleParametrage.GetDefinition(strProp[1]) != null)
            {
                m_formuleLibelle = CFormulesGlobaleParametrage.GetFormule(CSc2iWin32DataClient.ContexteCourant.IdSession, strProp[1]);
            }

            m_filtre       = filtre;
            m_filtreRacine = filtreRacine;
            //Force la réinitialisation des controles
            LockEdition = m_bIsLock;
            return(CResultAErreur.True);
        }
Esempio n. 26
0
        public CResultAErreurType <CParametresInitialisationEtape> MajChamps()
        {
            CParametresInitialisationEtape parametre = new CParametresInitialisationEtape();
            CResultAErreurType <CParametresInitialisationEtape> result = new CResultAErreurType <CParametresInitialisationEtape>();

            foreach (CFormuleNommee formuleNommée in m_panelFormules.GetFormules())
            {
                if (formuleNommée.Formule == null) //|| !typeof(IAffectableAEtape).IsAssignableFrom(formuleNommée.Formule.TypeDonnee.TypeDotNetNatif))
                {
                    result.EmpileErreur(I.T("Formula @1 is invalid (should return an object that can be assigned to a step)|20066",
                                            formuleNommée.Libelle));
                }
            }
            C2iExpression formule = m_txtFormuleInitialisation.Formule;

            if (formule == null && !m_txtFormuleInitialisation.ResultAnalyse)
            {
                result.EmpileErreur(m_txtFormuleInitialisation.ResultAnalyse.Erreur);
            }
            if (formule != null)
            {
                parametre.FormuleInitialisation = formule;
            }
            if (result)
            {
                parametre.Affectations.Formules = m_panelFormules.GetFormules();
                result.DataType = parametre;
            }
            parametre.RecalculerAffectationsSurRedemarrage  = m_chkRecalculerAffectations.Checked;
            parametre.ReevaluerInitialisationSurRedemarrage = m_chkReevaluerFormuleSurRedemarrage.Checked;
            return(result);
        }
Esempio n. 27
0
        /// //////////////////////////////////////////////////
        public override CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            I2iSerializable obj = m_champ;

            serializer.TraiteObject(ref obj);
            m_champ = (CDefinitionProprieteDynamique)obj;

            obj    = m_expressionValeur;
            result = serializer.TraiteObject(ref obj);
            if (!result)
            {
                return(result);
            }
            m_expressionValeur = (C2iExpression)obj;

            obj    = m_expressionConditionApplication;
            result = serializer.TraiteObject(ref obj);
            if (!result)
            {
                return(result);
            }
            m_expressionConditionApplication = (C2iExpression )obj;
            return(result);
        }
Esempio n. 28
0
        /// //////////////////////////////////////////
        protected override CResultAErreur ProtectedEval(CContexteEvaluationExpression ctx)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                C2iExpression[] parametresFiltre = new C2iExpression[Parametres.Count - 2];
                for (int nIndex = 2; nIndex < Parametres.Count; nIndex++)
                {
                    parametresFiltre[nIndex - 2] = Parametres2i[nIndex];
                }
                result = GetFiltre(ctx, Parametres2i[0], Parametres2i[1], parametresFiltre);
                if (!result)
                {
                    return(result);
                }
                if (!(ctx.ObjetSource is CObjetDonnee))
                {
                    result.EmpileErreur(I.T("SelectSql cannot be applied here|229"));
                    return(result);
                }
                CFiltreDataAvance   filtre = (CFiltreDataAvance)result.Data;
                CListeObjetsDonnees liste  = new CListeObjetsDonnees(((CObjetDonnee)ctx.ObjetSource).ContexteDonnee,
                                                                     CContexteDonnee.GetTypeForTable(filtre.TablePrincipale));
                liste.Filtre = filtre;
                result.Data  = liste;
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("Error in SelectSql|228"));
            }
            return(result);
        }
Esempio n. 29
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            result = base.MySerialize(serializer);
            if (!result)
            {
                return(result);
            }
            I2iSerializable objet = m_expressionCondition;

            result = serializer.TraiteObject(ref objet);
            if (!result)
            {
                result.EmpileErreur(I.T("Serialisation error in the condition formula|132"));
                return(result);
            }
            m_expressionCondition = (C2iExpression)objet;
            return(result);
        }
Esempio n. 30
0
        //----------------------------------
        private C2iExpression GetFormuleValeur(object valeur)
        {
            C2iExpression formule = null;

            if (valeur is CObjetDonneeAIdNumerique)
            {
                formule = new C2iExpressionGetEntite();
                formule.Parametres.Add(new C2iExpressionConstante(valeur.GetType().ToString()));
                formule.Parametres.Add(new C2iExpressionConstante(((CObjetDonneeAIdNumerique)valeur).Id));
            }
            else if (valeur == null)
            {
                formule = new C2iExpressionNull();
            }
            else
            {
                if (valeur is CDateTimeEx)
                {
                    valeur = ((CDateTimeEx)valeur).DateTimeValue;
                }
                if (C2iExpressionConstante.CanManage(valeur))
                {
                    formule = new C2iExpressionConstante(valeur);
                }
            }
            return(formule);
        }