/// ///////////////////////////////////////////// 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()); } }
//----------------------------------------------------------------------------------------- public virtual void FillArbreProprietesAccedees(CArbreDefinitionsDynamiques arbre) { foreach (C2iWnd wnd in Childs) { wnd.FillArbreProprietesAccedees(arbre); } }
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); } }
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); } } }
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); } } }
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()); } }
//------------------------------------------- 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); }