public void UpdateValeursCalculees() { foreach (Control ctrl in m_panelSousFormulaires.Controls) { CPanelChildElement sousFormulaire = ctrl as CPanelChildElement; if (sousFormulaire != null) { sousFormulaire.UpdateValeursCalculees(); } } }
public void AppliqueRestriction( CRestrictionUtilisateurSurType restrictionSurObjetEdite, CListeRestrictionsUtilisateurSurType listeRestriction, IGestionnaireReadOnlySysteme gestionnaireReadOnly) { if (listeRestriction == null || gestionnaireReadOnly == null) { return; } m_listeRestrictionsAppliquées = listeRestriction.Clone() as CListeRestrictionsUtilisateurSurType; m_restrictionSurObjetEditeParent = restrictionSurObjetEdite; m_gestionnaireReadOnly = gestionnaireReadOnly; bool bAllReadOnly = false; if ((restrictionSurObjetEdite.RestrictionGlobale & ERestriction.ReadOnly) == ERestriction.ReadOnly) { gestionnaireReadOnly.SetReadOnly(this, true); bAllReadOnly = true; } //Récupère la restriction sur le type des éléments if (m_zoneMultiple != null && m_zoneMultiple.SourceFormula != null) { C2iExpression source = m_zoneMultiple.SourceFormula; Type tp = source.TypeDonnee.TypeDotNetNatif; if (tp != null) { //Chope la restriction et l'envoie à tous ses fils CRestrictionUtilisateurSurType rest = listeRestriction.GetRestriction(tp); if (bAllReadOnly)//Si readonly forcé sur toute la zone { rest.RestrictionUtilisateur |= ERestriction.ReadOnly; } m_bPreventAddFromRestriction = (rest.RestrictionGlobale & ERestriction.NoCreate) == ERestriction.NoCreate; m_bPreventDeleteFromRestriction = (rest.RestrictionGlobale & ERestriction.NoDelete) == ERestriction.NoDelete; m_lnkAdd.Visible = !m_bPreventAddFromRestriction && m_zoneMultiple.HasAddButton; m_panelTop.Visible = m_nbPages > 1 || m_zoneMultiple.HasAddButton; foreach (Control ctrl in m_panelSousFormulaires.Controls) { CPanelChildElement sousFormulaire = ctrl as CPanelChildElement; if (sousFormulaire != null) { sousFormulaire.AppliqueRestrictions(rest, listeRestriction, gestionnaireReadOnly); if (m_bPreventDeleteFromRestriction) { sousFormulaire.DelegueSuppression = null; } } } } } }
//--------------------------------------------------------------- public void SetElementEditeSansChangerLesValeursAffichees(object elementEdite) { m_elementEdite = elementEdite; CResultAErreur result = CResultAErreur.True; foreach (Control ctrl in m_panelSousFormulaires.Controls) { CPanelChildElement sousFormulaire = ctrl as CPanelChildElement; if (sousFormulaire != null) { sousFormulaire.SetElementEditeSansChangerLesValeursAffichees(elementEdite); } } }
//----------------------------------------------------------------------------- public sc2i.common.CResultAErreur MajChamps(bool bControlerLesValeursAvantValidation) { CResultAErreur result = CResultAErreur.True; foreach (Control ctrl in m_panelSousFormulaires.Controls) { CPanelChildElement sousFormulaire = ctrl as CPanelChildElement; if (sousFormulaire != null) { CResultAErreur resTmp = sousFormulaire.MajChamps(bControlerLesValeursAvantValidation); if (!resTmp) { result += resTmp; } } } return(result); }
//------------------------------------- public void OnChangeParentModeEdition(bool bModeEdition) { switch (m_zoneMultiple.LockMode) { case C2iWnd.ELockMode.EnableOnEdit: LockEdition = !bModeEdition; break; case C2iWnd.ELockMode.DisableOnEdit: LockEdition = bModeEdition; break; } foreach (Control ctrl in m_panelSousFormulaires.Controls) { CPanelChildElement sousFormulaire = ctrl as CPanelChildElement; if (sousFormulaire != null) { sousFormulaire.OnChangeParentModeEdition(!LockEdition); } } }
//------------------------------------------------------------------------- private bool AffichePage(int nNumPage, bool bMajChampsAvantAffichage) { if (m_gestionnaireModeEdition.ModeEdition && bMajChampsAvantAffichage) { CResultAErreur result = MajChamps(true); if (!result) { CFormAlerte.Afficher(result.Erreur); return(false); } } this.SuspendDrawing(); m_nPageEnCours = nNumPage; //m_panelSousFormulaires.SuspendDrawing(); List <CPanelChildElement> reserveControles = new List <CPanelChildElement>(); ArrayList lstControles = new ArrayList(m_panelSousFormulaires.Controls); foreach (Control ctrl in lstControles) { CPanelChildElement sousForm = ctrl as CPanelChildElement; if (sousForm != null) { reserveControles.Add(sousForm); } } CPanelChildElement.DeleteElementDelegate delegueSuppression = null; if (m_elementEdite is IAllocateurSupprimeurElements && m_zoneMultiple.HasDeleteButton && !m_bPreventDeleteFromRestriction) { delegueSuppression = new CPanelChildElement.DeleteElementDelegate(OnDeleteElement); } Hashtable tableDejaMis = new Hashtable(); m_lblPageSurNbPages.Text = (m_nPageEnCours + 1).ToString() + "/" + m_nbPages.ToString(); for (int i = m_nPageEnCours * m_nbParPage; i < (m_nPageEnCours * m_nbParPage) + m_nbParPage; i++) { if (i < m_lstObjets.Count) { object data = m_lstObjets[i]; try { if (!tableDejaMis.ContainsKey(data)) { tableDejaMis[data] = true; CPanelChildElement panel = null; if (reserveControles.Count != 0) { panel = reserveControles[reserveControles.Count - 1]; reserveControles.RemoveAt(reserveControles.Count - 1); } else { panel = new CPanelChildElement(); panel.SizeChanged += new EventHandler(panelChild_SizeChanged); if (m_gestionnaireReadOnly != null) { m_gestionnaireReadOnly.AddControl(panel); } } panel.Init(this, m_zoneMultiple.FormulaireFils, m_createur); m_panelSousFormulaires.Controls.Add(panel); if (m_zoneMultiple.Orientation == EOrientaion.Horizontal) { panel.Dock = DockStyle.Left; } else { panel.Dock = DockStyle.Top; } panel.Visible = true; panel.LockEdition = !m_gestionnaireModeEdition.ModeEdition; panel.OnChangeParentModeEdition(m_gestionnaireModeEdition.ModeEdition); panel.SetElementEdite(data); panel.BringToFront(); panel.DelegueSuppression = delegueSuppression; } } catch { } } } //m_panelSousFormulaires.ResumeDrawing(); //Supprime les contrôles qui ne servent plus foreach (Control ctrl in reserveControles.ToArray()) { ctrl.Visible = false; m_panelSousFormulaires.Controls.Remove(ctrl); ctrl.Dispose(); } if (m_listeRestrictionsAppliquées != null && EditedElement != null) { AppliqueRestriction( m_restrictionSurObjetEditeParent, m_listeRestrictionsAppliquées, m_gestionnaireReadOnly); } RecalcAutoSize(); this.ResumeDrawing(); return(true); }