/// /////////////////////////////////////////////
        protected void AddProprietesArbre(CArbreDefinitionsDynamiques arbre,
                                          Hashtable tableOrigines,
                                          string strChemin)
        {
            if (strChemin != "")
            {
                strChemin += ".";
            }

            /*if (arbre.DefinitionPropriete is CDefinitionProprieteDynamiqueChampCustom)
             *      tableOrigines[strChemin + "RelationsChampsCustom"] = true;
             * else*/
            {
                string strNewChemin = strChemin;
                if (arbre.DefinitionPropriete != null)
                {
                    tableOrigines[strChemin + arbre.DefinitionPropriete.NomPropriete] = true;
                    strNewChemin = strChemin + arbre.DefinitionPropriete.NomPropriete;
                }
                foreach (CArbreDefinitionsDynamiques sousArbre in arbre.SousArbres)
                {
                    AddProprietesArbre(sousArbre, tableOrigines, strNewChemin);
                }
                foreach (string strAutreProp in arbre.AutresSousProprietesString)
                {
                    tableOrigines[strChemin + strAutreProp] = true;
                }
            }
        }
        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());
            }
        }
Example #3
0
 //-----------------------------------------------------------------------------------------
 public virtual void FillArbreProprietesAccedees(CArbreDefinitionsDynamiques arbre)
 {
     foreach (C2iWnd wnd in Childs)
     {
         wnd.FillArbreProprietesAccedees(arbre);
     }
 }
Example #4
0
 public override void FillArbreProprietesAccedees(CArbreDefinitionsDynamiques arbre)
 {
     base.FillArbreProprietesAccedees(arbre);
     if (m_expression != null)
     {
         m_expression.GetArbreProprietesAccedees(arbre);
     }
 }
 private void AddToChaine(CArbreDefinitionsDynamiques arbre, int nNiveau, ref string strChaine)
 {
     strChaine += "\r\n";
     for (int n = 0; n <= nNiveau; n++)
     {
         strChaine += "\t";
     }
     strChaine += arbre.DefinitionPropriete.NomPropriete;
     foreach (CArbreDefinitionsDynamiques sa in arbre.SousArbres)
     {
         AddToChaine(sa, nNiveau + 1, ref strChaine);
     }
 }
Example #6
0
 public static void PrepareArbre(
     CArbreDefinitionsDynamiques arbre,
     CContexteDonnee ctx)
 {
     foreach (Type tp in m_dicTypeToTransformateur.Values)
     {
         IPreparateurTransformationArbreDefinitionsEnArbreSousPropListeObjetDonnee preparateur = Activator.CreateInstance(tp) as IPreparateurTransformationArbreDefinitionsEnArbreSousPropListeObjetDonnee;
         if (preparateur != null)
         {
             preparateur.PrepareArbre(arbre, ctx);
         }
     }
 }
Example #7
0
 public override void FillArbreProprietesAccedees(CArbreDefinitionsDynamiques arbre)
 {
     base.FillArbreProprietesAccedees(arbre);
     if (m_property != null)
     {
         CArbreDefinitionsDynamiques sa = arbre.GetArbre(m_property);
         if (sa == null)
         {
             sa = new CArbreDefinitionsDynamiques(m_property);
             arbre.AddSousArbre(sa);
         }
     }
 }
        /// ////////////////////////////////////////
        ///Si l'arbre est basé sur un champ calculé, détaille les
        ///champs utilisés dans la formule
        public static void DetailleSousArbres(
            CArbreDefinitionsDynamiques arbre,
            CContexteDonnee contexteDonnee,
            Dictionary <CDefinitionProprieteDynamique, int> dicCountProfondeurParChamp)
        {
            //TESTDBKEYOK
            if (dicCountProfondeurParChamp == null)
            {
                dicCountProfondeurParChamp = new Dictionary <CDefinitionProprieteDynamique, int>();
            }
            ArrayList lstSousArbres = new ArrayList(arbre.SousArbres);

            foreach (CArbreDefinitionsDynamiques sousArbre in lstSousArbres)
            {
                if (sousArbre.DefinitionPropriete is CDefinitionProprieteDynamiqueChampCalcule)
                {
                    int nProfondeur = 0;
                    dicCountProfondeurParChamp.TryGetValue(sousArbre.DefinitionPropriete, out nProfondeur);
                    if (nProfondeur < 10)//En cas d'appel récursif, limite à 10 appels
                    {
                        CChampCalcule champCalc = new CChampCalcule(contexteDonnee);
                        if (champCalc.ReadIfExists(((CDefinitionProprieteDynamiqueChampCalcule)sousArbre.DefinitionPropriete).DbKeyChamp))
                        {
                            C2iExpression formule = champCalc.Formule;
                            if (formule != null)
                            {
                                CArbreDefinitionsDynamiques arbreDeFormule = new CArbreDefinitionsDynamiques(null);
                                formule.GetArbreProprietesAccedees(arbreDeFormule);
                                nProfondeur++;
                                dicCountProfondeurParChamp[sousArbre.DefinitionPropriete] = nProfondeur;
                                DetailleSousArbres(arbreDeFormule, contexteDonnee, dicCountProfondeurParChamp);
                                nProfondeur--;
                                dicCountProfondeurParChamp[sousArbre.DefinitionPropriete]--;
                                arbre.RemoveSousArbre(sousArbre);
                                foreach (CArbreDefinitionsDynamiques arbreTmp in arbreDeFormule.SousArbres)
                                {
                                    arbre.AddSousArbre(arbreTmp);
                                }
                            }
                        }
                    }
                }
                else
                {
                    DetailleSousArbres(sousArbre, contexteDonnee, dicCountProfondeurParChamp);
                }
            }
        }
Example #9
0
        public void AddProprietesAccedees(
            CArbreDefinitionsDynamiques arbre,
            Type typeSource,
            string strPropriete)
        {
            CContexteAnalyse2iExpression   ctx       = new CContexteAnalyse2iExpression(new CFournisseurPropDynStd(), typeSource);
            CAnalyseurSyntaxiqueExpression analyseur = new CAnalyseurSyntaxiqueExpression(ctx);
            CResultAErreur result  = analyseur.AnalyseChaine(strPropriete);
            C2iExpression  formule = null;

            if (result)
            {
                formule = result.Data as C2iExpression;
                formule.GetArbreProprietesAccedees(arbre);
                CDefinitionProprieteDynamiqueChampCalcule.DetailleSousArbres(arbre, CContexteDonneeSysteme.GetInstance());
            }
        }
Example #10
0
        //-------------------------------------------
        private void UpdateFromSource()
        {
            object        datas     = Source;
            List <object> lstObjets = new List <object>();

            IPreloadableFromArbreProprietesDynamiques preloadable = Source as IPreloadableFromArbreProprietesDynamiques;

            if (preloadable != null && m_wndGrid.PreloadDatas)
            {
                CArbreDefinitionsDynamiques arbre = new CArbreDefinitionsDynamiques(null);
                if (m_wndGrid != null)
                {
                    foreach (C2iWndDataGridColumn col in m_wndGrid.Columns)
                    {
                        if (col.Control != null)
                        {
                            col.Control.FillArbreProprietesAccedees(arbre);
                        }
                    }
                }
                preloadable.Preload(arbre);
            }



            if (datas != null)
            {
                IEnumerable collection = datas as IEnumerable;
                if (collection != null)
                {
                    foreach (object obj in collection)
                    {
                        lstObjets.Add(obj);
                    }
                }
                else
                {
                    lstObjets.Add(datas);
                }
                m_grid.Init(this, m_wndGrid, EditedElement, lstObjets, m_fournisseur);
            }
            CUtilControlesWnd.DeclencheEvenement(C2iWnd.c_strIdEvenementOnInit, this);
        }
        /// /////////////////////////////////////////////
        public override void AddProprietesOrigineToTable(Type typeSource, Hashtable tableOrigines, string strChemin, CContexteDonnee contexteDonnee)
        {
            if (Expression != null)
            {
                CArbreDefinitionsDynamiques arbre = new CArbreDefinitionsDynamiques(null);
                Expression.GetArbreProprietesAccedees(arbre);
                CDefinitionProprieteDynamiqueChampCalcule.DetailleSousArbres(arbre, contexteDonnee);

                AddProprietesArbre(arbre, tableOrigines, strChemin);

                /*string[] strProps = arbre.GetListeProprietesAccedees ( );
                 * if ( strChemin != "" )
                 *      strChemin += ".";
                 * foreach ( string strProp in strProps )
                 * {
                 *      string strOrigine = strProp;
                 *      tableOrigines[strChemin+strOrigine] = true;
                 * }*/
            }
        }
        private void m_lnkTest_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            C2iExpression formule = m_txtFormule.Formule;

            if (formule == null)
            {
                return;
            }
            CArbreDefinitionsDynamiques arbre = new CArbreDefinitionsDynamiques(null);

            formule.GetArbreProprietesAccedees(arbre);

            string strChaine = "";

            foreach (CArbreDefinitionsDynamiques sa in arbre.SousArbres)
            {
                AddToChaine(sa, 1, ref strChaine);
            }
            Clipboard.SetDataObject(strChaine);
            MessageBox.Show(strChaine);
            int n = arbre.SousArbres.Length;
        }
 public void PrepareArbre(CArbreDefinitionsDynamiques arbre, CContexteDonnee contexte)
 {
     CDefinitionProprieteDynamiqueChampCalcule.DetailleSousArbres(arbre, contexte);
 }
 public static void DetailleSousArbres(
     CArbreDefinitionsDynamiques arbre,
     CContexteDonnee contexteDonnee)
 {
     DetailleSousArbres(arbre, contexteDonnee, null);
 }