/// <summary> /// //////////////////////////////////////////////////////////// /// </summary> /// <param name="nodes"></param> /// <param name="objetParent"></param> /// <param name="nNbSousNiveauToFill"></param> protected virtual void FillNodes(TreeNode nodeParent, CObjetDonneeAIdNumeriqueAuto objetParent) { TreeNodeCollection nodes = null; if (nodeParent == null) { nodes = Nodes; } else { if (((CInfoNode)nodeParent.Tag).AreChildsLoaded) { return; } nodes = nodeParent.Nodes; ((CInfoNode)nodeParent.Tag).AreChildsLoaded = true; } nodes.Clear(); CListeObjetsDonnees listeFils = null; if (objetParent == null) { CContexteDonnee contexte = CSc2iWin32DataClient.ContexteCourant; if (m_objetRoot != null) { contexte = m_objetRoot.ContexteDonnee; } listeFils = new CListeObjetsDonnees(contexte, m_typeObjets); if (m_objetRoot != null) { listeFils.Filtre = new CFiltreData(m_objetRoot.GetChampId() + "=@1", m_objetRoot.Id); } else { listeFils.Filtre = CFiltreData.GetAndFiltre(m_filtreRacine, new CFiltreData(m_strChampParent + " is null")); } } else { listeFils = (CListeObjetsDonnees)CInterpreteurTextePropriete.GetValue(objetParent, m_strProprieteListeFils); if (!m_bAutoriserFilsDesAutorises || !IsInFiltre(objetParent)) { listeFils.Filtre = CFiltreData.GetAndFiltre(listeFils.Filtre, m_filtreRacine); } } foreach (CObjetDonneeAIdNumeriqueAuto objetFils in listeFils) { bool bVoir = IsVisible(objetFils); /*if ( m_tableCodesVisibles != null && objetFils is IObjetHierarchiqueACodeHierarchique ) * bVoir = m_tableCodesVisibles.Contains(((IObjetHierarchiqueACodeHierarchique)objetFils).CodeSystemeComplet);*/ if (m_bAutoriserFilsDesAutorises && !bVoir) { if (objetParent != null && IsInFiltre(objetParent)) { if (objetFils is IObjetHierarchiqueACodeHierarchique && m_tableCodesVisibles != null) { m_tableCodesVisibles.Add(((IObjetHierarchiqueACodeHierarchique)objetFils).CodeSystemeComplet, true); } bVoir = true; } } if (bVoir) { TreeNode node = new TreeNode(); FillNode(node, objetFils); nodes.Add(node); node.Nodes.Add(new TreeNode("__")); //Noeud bidon if (!IsInFiltre(objetFils)) { node.ForeColor = ForeColorNonSelectionnable; node.Expand(); } } } }
/// ////////////////////////////////////////////////////////////// public CResultAErreur Supprimer(ArrayList listeElementsASupprimer) { using (CWaitCursor waiter = new CWaitCursor()) { CResultAErreur result = CResultAErreur.True; if (listeElementsASupprimer.Count <= 0) { return(result); } string strListeIds = ""; CObjetDonneeAIdNumeriqueAuto objetPourSuppressionGlobale = null; //Crée une liste de tous les ids éléments à supprimer try { foreach (CObjetDonneeAIdNumeriqueAuto objet in listeElementsASupprimer) { strListeIds += objet.Id.ToString() + ","; if (objetPourSuppressionGlobale == null) { objetPourSuppressionGlobale = objet; } } strListeIds = strListeIds.Substring(0, strListeIds.Length - 1); using (CContexteDonnee contexteToDelete = new CContexteDonnee(objetPourSuppressionGlobale.ContexteDonnee.IdSession, true, false)) { result = contexteToDelete.SetVersionDeTravail(objetPourSuppressionGlobale.ContexteDonnee.IdVersionDeTravail, true); if (!result) { return(result); } contexteToDelete.BeginModeDeconnecte(); CListeObjetsDonnees liste = new CListeObjetsDonnees(contexteToDelete, objetPourSuppressionGlobale.GetType(), false); liste.Filtre = new CFiltreData( objetPourSuppressionGlobale.GetChampId() + " in (" + strListeIds + ")"); result = CObjetDonneeAIdNumeriqueAuto.Delete(liste); if (!result) { contexteToDelete.CancelModifsEtEndModeDeconnecte(); result.EmpileErreur(I.T("Error while deleting element|30032")); return(result); } else { result = contexteToDelete.CommitModifsDeconnecte(); } } } catch { foreach (CObjetDonnee objet in listeElementsASupprimer) { result = objet.Delete(); if (!result) { CSc2iWin32DataClient.ContexteCourant.CancelModifsEtEndModeDeconnecte(); result.EmpileErreur(I.T("Error while deleting element|30032")); break; } } if (result) { result = CSc2iWin32DataClient.ContexteCourant.CommitModifsDeconnecte(); } } return(result); } }