/// <summary> /// Le data du result contient un CArbreTable /// </summary> /// <returns></returns> public CResultAErreur CalculeArbre(CArbreTable arbre) { CResultAErreur result = CResultAErreur.True; //Identifie les relations à mettre en jeu ArrayList lstChamps = new ArrayList(); if (m_strTableInterrogee == "") { result.EmpileErreur(I.T("Request table is not defined|106")); return(result); } if (arbre == null) { arbre = new CArbreTableParente(m_strTableInterrogee); } foreach (C2iChampDeRequete champ in ListeChamps) { try { foreach (CSourceDeChampDeRequete source in champ.Sources) { CComposantFiltreChamp composant = new CComposantFiltreChamp(source.Source, m_strTableInterrogee); CArbreTable arbreEnCours = arbre; foreach (CInfoRelationComposantFiltre relation in composant.Relations) { //Stef 08/08/2013 : toutes les relations sont integrées //en leftouter : en effet, on doit prendre toutes les valeurs //de la table source, même si elles n'ont pas de valeur liées dans la //table fille arbreEnCours = arbreEnCours.IntegreRelation(relation, true, composant.IdChampCustom); if (arbreEnCours == null) { result.EmpileErreur(I.T("Itegration error of the relation @1|107", relation.RelationKey)); return(result); } } source.ChampDeTable = composant.NomChamp; source.Alias = arbreEnCours.Alias; } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Error in field @1|108", champ.NomChamp)); return(result); } } result.Data = arbre; return(result); }
/// //////////////////////////////////////////////////////////////// /// Le data du result contient un CInfoRelationComposantFiltre[] public CResultAErreur GetArbreTables() { CResultAErreur result = CResultAErreur.True; if (m_composantPrincipal == null) { result = CalculeComposantPrincipal(); } if (!result) { return(result); } CArbreTableParente arbre = new CArbreTableParente(m_strTablePrincipale); result = GetRelations(m_composantPrincipal, arbre, false); foreach (CComposantFiltreChamp champ in ChampsAAjouterAArbreTable) { GetRelations(champ, arbre, true); } result.Data = arbre; return(result); }
public CResultAErreur CalculeArbre() { CArbreTableParente arbre = new CArbreTableParente(m_strTableInterrogee); return(CalculeArbre(arbre)); }