/// /////////////////////////////////////////////// public override bool InsertComposantFils(CComposantFiltreDynamique composant, int nIndex) { if (nIndex >= m_listeComposantsFils.Count) { return(AddComposantFils(composant)); } m_listeComposantsFils.Insert(nIndex, composant); return(true); }
/// /////////////////////////////////////////////////// public override CResultAErreur GetComposantFiltreData(CFiltreDynamique filtre, CFiltreData filtreData) { CResultAErreur result = CResultAErreur.True; try { if (m_listeComposantsFils.Count < 1) { return(result); } result = ((CComposantFiltreDynamique)m_listeComposantsFils[0]).GetComposantFiltreData(filtre, filtreData); if (!result) { result.EmpileErreur(I.T("Error in element @1|136", ((CComposantFiltreDynamique)m_listeComposantsFils[0]).Description)); result.Data = null; return(result); } CComposantFiltre composantAvant = (CComposantFiltre)result.Data; for (int nComposant = 1; nComposant < m_listeComposantsFils.Count; nComposant++) { CComposantFiltreDynamique composantDynamique = (CComposantFiltreDynamique)m_listeComposantsFils[nComposant]; result = composantDynamique.GetComposantFiltreData(filtre, filtreData); if (!result) { result.EmpileErreur(I.T("Error in element @1|136", ((CComposantFiltreDynamique)m_listeComposantsFils[nComposant]).Description)); result.Data = null; return(result); } if (result.Data != null) { if (composantAvant != null) { CComposantFiltreOperateur parenthesesNew = new CComposantFiltreOperateur(CComposantFiltreOperateur.c_IdOperateurParentheses); CComposantFiltreOperateur parenthesesOld = new CComposantFiltreOperateur(CComposantFiltreOperateur.c_IdOperateurParentheses); parenthesesNew.Parametres.Add(result.Data); parenthesesOld.Parametres.Add(composantAvant); CComposantFiltreOperateur operateur = new CComposantFiltreOperateur(GetIdComposantFiltreOperateur()); operateur.Parametres.Add(parenthesesOld); operateur.Parametres.Add(parenthesesNew); composantAvant = operateur; } else { composantAvant = (CComposantFiltre)result.Data; } } } result.Data = composantAvant; return(result); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); return(result); } }
/// /////////////////////////////////////////////// public override int RemoveComposantFils(CComposantFiltreDynamique composant) { try { int nIndex = m_listeComposantsFils.IndexOf(composant); m_listeComposantsFils.RemoveAt(nIndex); return(nIndex); } catch { return(m_listeComposantsFils.Count); } }
/// ////////////////////////////////////////////////// public override int RemoveComposantFils(CComposantFiltreDynamique composant) { return(0); }
/// ////////////////////////////////////////////////// public override bool InsertComposantFils(CComposantFiltreDynamique composant, int nIndex) { return(false); }
/// ////////////////////////////////////////////////// public override bool AddComposantFils(CComposantFiltreDynamique composant) { return(false); }
//////////////////////////////////////////////////////////////////////// /// <summary> /// Retourne un filtre dynamique pour la table associée en /// prenant en compte les filtres des parents /// </summary> /// <returns></returns> public CFiltreDynamique GetFiltreToElementPrincipal() { if (TouteLaTable) { return(null); } CFiltreDynamique filtreDynamiqueParent = null; if (FiltreParent != null) { filtreDynamiqueParent = FiltreParent.GetFiltreToElementPrincipal(); } Type typeElements = CContexteDonnee.GetTypeForTable(NomTable); CStructureTable structure = CStructureTable.GetStructure(typeElements); CFiltreDynamique filtreFinal = (CFiltreDynamique)FiltreDynamique.Clone(); CDefinitionProprieteDynamique defToParent = null; //Trouve la propriété qui amène sur le parent if (RelationToParent != null) { if (RelationToParent.TableFille == NomTable) { if (filtreDynamiqueParent != null && filtreDynamiqueParent.ComposantPrincipal != null) { Type tp = CContexteDonnee.GetTypeForTable(RelationToParent.TableParente); string strNomConvivial = DynamicClassAttribute.GetNomConvivial(tp); //Nous somme dans une relation fille foreach (CInfoRelation relationParente in structure.RelationsParentes) { if (relationParente.RelationKey == RelationToParent.RelationKey) { defToParent = new CDefinitionProprieteDynamiqueDotNet( strNomConvivial, relationParente.Propriete, new CTypeResultatExpression(CContexteDonnee.GetTypeForTable(relationParente.TableParente), false), true, true, ""); break; } } if (defToParent == null) { defToParent = new CDefinitionProprieteDynamique( strNomConvivial, RelationToParent.RelationKey, new CTypeResultatExpression(tp, false), true, true, ""); } } } else { //Nous sommes dans une relation parente foreach (CInfoRelation relationFille in structure.RelationsFilles) { if (relationFille.RelationKey == RelationToParent.RelationKey) { defToParent = new CDefinitionProprieteDynamiqueDotNet( relationFille.NomConvivial, relationFille.Propriete, new CTypeResultatExpression(CContexteDonnee.GetTypeForTable(relationFille.TableFille), true), true, true, ""); break; } } if (defToParent == null) { Type tp = CContexteDonnee.GetTypeForTable(RelationToParent.TableFille); defToParent = new CDefinitionProprieteDynamique( DynamicClassAttribute.GetNomConvivial(tp) + "(" + RelationToParent.NomConvivial + ")", RelationToParent.RelationKey, new CTypeResultatExpression(tp, false), true, true); } if (filtreDynamiqueParent == null) { filtreDynamiqueParent = new CFiltreDynamiqueParentTablePleine(NomTable, RelationToParent); } } } if (filtreDynamiqueParent != null && filtreDynamiqueParent.ComposantPrincipal != null) { filtreDynamiqueParent.ComposantPrincipal.InsereDefinitionToObjetFinal(defToParent); if (FiltreDynamique == null || FiltreDynamique.ComposantPrincipal == null) { return(filtreDynamiqueParent); } CComposantFiltreDynamique composantEt = null; if (!(filtreDynamiqueParent.ComposantPrincipal is CComposantFiltreDynamiqueEt)) { composantEt = new CComposantFiltreDynamiqueEt(); composantEt.AddComposantFils(filtreDynamiqueParent.ComposantPrincipal); } else { composantEt = (CComposantFiltreDynamiqueEt)filtreDynamiqueParent.ComposantPrincipal; } composantEt.AddComposantFils(filtreFinal.ComposantPrincipal); filtreFinal.ComposantPrincipal = composantEt; } if (filtreFinal.ComposantPrincipal == null) { return(null); } return(filtreFinal); }
/// ///////////////////////////////////////////// public CResultAErreur Serialize(C2iSerializer serializer) { int nVersion = GetNumVersion(); CResultAErreur result = serializer.TraiteVersion(ref nVersion); if (!result) { return(result); } try { serializer.AttacheObjet(typeof(IElementAVariablesDynamiquesBase), this); serializer.TraiteType(ref m_typeElementsFiltres); result = serializer.TraiteArrayListOf2iSerializable(m_listeVariables); I2iSerializable obj = m_composantFiltre; result = serializer.TraiteObject(ref obj); m_composantFiltre = (CComposantFiltreDynamique)obj; serializer.TraiteInt(ref m_nNextIdVariable); obj = m_formulaireEdition; result = serializer.TraiteObject(ref obj); if (!result) { return(result); } m_formulaireEdition = (C2iWnd)obj; if (nVersion >= 1) { //Serialize les valeurs des variables foreach (CVariableDynamique variable in m_listeVariables) { if (variable.IsChoixUtilisateur()) { object valeur = m_tableValeursChamps[variable.IdVariable]; if (valeur != null && variable.TypeDonnee.IsArrayOfTypeNatif) { IList lst = (IList)valeur; result = serializer.TraiteListeObjetsSimples(ref lst); valeur = lst; } else { result = serializer.TraiteObjetSimple(ref valeur); } if (!result) { return(result); } if (serializer.Mode == ModeSerialisation.Lecture) { SetValeurChamp(variable, valeur); } } } } if (nVersion >= 2 && nVersion < 4) { bool bTmp = false; serializer.TraiteBool(ref bTmp); if (bTmp) { FormuleIntegrerParentsHierarchiques = new C2iExpressionConstante(true); } else { FormuleIntegrerParentsHierarchiques = new C2iExpressionConstante(false); } serializer.TraiteBool(ref bTmp); if (bTmp) { FormuleNeConserverQueLesRacines = new C2iExpressionConstante(true); } else { FormuleNeConserverQueLesRacines = new C2iExpressionConstante(false); } } if (nVersion >= 3 && nVersion < 4) { bool bTmp = false; serializer.TraiteBool(ref bTmp); if (bTmp) { FormuleIntegrerFilsHierarchiques = new C2iExpressionConstante(true); } else { FormuleIntegrerFilsHierarchiques = new C2iExpressionConstante(false); } } if (nVersion >= 4) { serializer.TraiteObject <C2iExpression>(ref m_formuleIntegrerParentsHierarchiques); serializer.TraiteObject <C2iExpression>(ref m_formuleNeConserverQueLesRacines); serializer.TraiteObject <C2iExpression>(ref m_formuleIntegrerFilsHierarchiques); } serializer.DetacheObjet(typeof(IElementAVariablesDynamiquesBase), this); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Error while reading dynamic filter|172")); } return(result); }
/// ////////////////////////////////////////////////// //Retourne la position du fils enlevé public abstract int RemoveComposantFils(CComposantFiltreDynamique composant);
/// ////////////////////////////////////////////////// public abstract bool InsertComposantFils(CComposantFiltreDynamique composant, int nIndex);
/// ////////////////////////////////////////////////// public abstract bool AddComposantFils(CComposantFiltreDynamique composant);
/// /////////////////////////////////////////////// public override bool AddComposantFils(CComposantFiltreDynamique composant) { m_listeComposantsFils.Add(composant); return(true); }