/// //////////////////////////////////////////////////////////////////
        protected static CResultAErreur ExecuteActionFormulaireCustom(CActionSur2iLinkAfficheFormulaireCustom action, object objetCible)
        {
            CResultAErreur result     = CResultAErreur.True;
            CFormulaire    formulaire = new CFormulaire(CSc2iWin32DataClient.ContexteCourant);

            if (formulaire.ReadIfExists(action.IdFormulaireInDb))
            {
                if (formulaire.Role != null)
                {
                    bool bObjetOk = false;
                    if (objetCible != null)
                    {
                        CRoleChampCustom role = CRoleChampCustom.GetRoleForType(objetCible.GetType());
                        if (role != null && formulaire.HasRole(role.CodeRole))
                        {
                            bObjetOk = true;
                        }
                    }
                    if (!bObjetOk)
                    {
                        result.EmpileErreur(I.T("The object does not correspond to the expected type of the form|30091"));
                        return(result);
                    }
                }
                CTimosApp.Navigateur.AffichePage(new CFormFormulaireCustom(formulaire, objetCible));
            }
            else
            {
                result.EmpileErreur(I.T("Form|30092") + action.IdFormulaireInDb + (I.T(" does not exist |30093")));
            }
            return(result);
        }
示例#2
0
        //--------------------------------------------------------------------------------------
        public void InitChamps(sc2i.formulaire.CActionSur2iLink action, sc2i.expression.CObjetPourSousProprietes objetPourSousProprietes)
        {
            m_actionEditee = action as CActionSur2iLinkAfficheFormulaireCustom;
            if (m_actionEditee == null)
            {
                Visible = false;
                return;
            }
            m_objetPourSousProprietes = objetPourSousProprietes;
            Visible = true;
            CFormulaire formulaire = new CFormulaire(CSc2iWin32DataClient.ContexteCourant);

            if (formulaire.ReadIfExists(m_actionEditee.IdFormulaireInDb))
            {
                m_cmbFormulaireCustom.SelectedValue = formulaire;
            }
        }
示例#3
0
        public sc2i.common.CResultAErreur InitFromContexte(CContexteFormNavigable contexte)
        {
            if (contexte["ID_FORMULAIRE"] != null)
            {
                int nIdFormulaire = (int)contexte["ID_FORMULAIRE"];
                m_formulaire = new CFormulaire(CSc2iWin32DataClient.ContexteCourant);
                if (!m_formulaire.ReadIfExists(nIdFormulaire))
                {
                    m_formulaire = null;
                }
            }
            if (contexte["OBJET_EDITE"] is CReferenceObjetDonnee)
            {
                m_objetEdite = ((CReferenceObjetDonnee)contexte["OBJET_EDITE"]).GetObjet(CSc2iWin32DataClient.ContexteCourant);
            }
            List <CReferenceObjetDonnee> lstRefs = contexte["OBJETS_EDITES"] as List <CReferenceObjetDonnee>;

            if (lstRefs != null)
            {
                List <CObjetDonnee> lst = new List <CObjetDonnee>();
                foreach (CReferenceObjetDonnee reference in lstRefs)
                {
                    CObjetDonnee obj = reference.GetObjet(CSc2iWin32DataClient.ContexteCourant);
                    if (obj != null)
                    {
                        lst.Add(obj);
                    }
                }
                m_objetEdite = lst.ToArray();
            }
            if (AfterInitFromContexte != null)
            {
                AfterInitFromContexte(this, contexte);
            }
            return(CResultAErreur.True);
        }
        /*/// //////////////////////////////////////////////////////////////////
         * private static void CCreateur2iFormulaire_AfterCreateControl ( Control ctrl, C2iWnd wnd, object elementEdite )
         * {
         *      if ( wnd is C2iWndLink && ctrl is LinkLabel )
         *      {
         *              ctrl.Tag = new CInfoLinkLabel((C2iWndLink)wnd, elementEdite);
         *              ((LinkLabel)ctrl).LinkClicked += new LinkLabelLinkClickedEventHandler(CExecuteurActionSur2iLink_Click);
         *      }
         * }
         *
         * static void CCreateur2iFormulaire_AfterChangeElementEdite(Control ctrl, C2iWnd wnd, object elementEdite)
         * {
         *      if (wnd is C2iWndLink && ctrl is LinkLabel)
         *      {
         *              ctrl.Tag = new CInfoLinkLabel((C2iWndLink)wnd, elementEdite);
         *      }
         * }*/

        /*/// //////////////////////////////////////////////////////////////////
         * private static void CExecuteurActionSur2iLink_Click ( object sender, LinkLabelLinkClickedEventArgs args )
         * {
         *      if (sender is LinkLabel && ((LinkLabel)sender).Tag is CInfoLinkLabel)
         *      {
         *              CInfoLinkLabel info = (CInfoLinkLabel)((LinkLabel)sender).Tag;
         *              C2iWndLink link = info.WndLink;
         *              object cible = info.Cible;
         *              CResultAErreur result = CResultAErreur.True;
         *              if ( link.ActionAssociee != null )
         *              {
         *                      Form frm = ((Control)sender).FindForm();
         *                      if (cible == null)
         *                      {
         *                              if (frm != null && frm is IFormEditObjetDonnee)
         *                                      cible = ((IFormEditObjetDonnee)frm).GetObjetEdite();
         *                      }
         *                      if (frm != null && frm is CFormEditionStandard)
         *                      {
         *                              if (((CFormEditionStandard)frm).EtatEdition)
         *                              {
         *                                      if (CFormAlerte.Afficher(I.T("This action will save your data. Continue ?|1253"),
         *                                              EFormAlerteType.Question) == DialogResult.No)
         *                                              return;
         *                                      if (!((CFormEditionStandard)frm).OnClickValider())
         *                                              return;
         *                                      ((CFormEditionStandard)frm).OnClickModifier();
         *                              }
         *
         *                      }
         *                      if ( frm != null && frm is CFormListeStandard )
         *                      {
         *                              if ( link.ActionAssociee.GetType() == typeof ( CActionSur2iLinkAfficheFormulaireCustom ) ||
         *                                      link.ActionAssociee.GetType() == typeof ( CActionSur2iLinkAfficherFormulaire ) ||
         *                                      link.ActionAssociee.GetType() == typeof ( CActionSur2iLinkAfficherListe ))
         *                                              cible = ((CFormListeStandard)frm).ElementSelectionne;
         *                              else if ( link.ActionAssociee.GetType() == typeof ( CActionSur2iLinkExecuterProcess ) )
         *                                              cible = ((CFormListeStandard)frm).ElementsCoches;
         *                      }
         *                      result = ExecuteAction(link.ActionAssociee, cible);
         *                      if ( !result )
         *                              CFormAlerte.Afficher ( result.Erreur );
         *              }
         *      }
         * }*/

        /// <summary>
        /// //////////////////////////////////////////////////////////////////
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        public static CResultAErreur ExecuteAction(object sender, CActionSur2iLink action, object objetCible)
        {
            CResultAErreur result = CResultAErreur.True;
            Form           frm    = null;

            if (!action.AutoriserEnEdition && sender != null && sender is Control)
            {
                frm = ((Control)sender).FindForm();
                object cible = objetCible;
                if (cible == null)
                {
                    if (frm != null && frm is IFormEditObjetDonnee)
                    {
                        cible = ((IFormEditObjetDonnee)frm).GetObjetEdite();
                    }
                }
                if (frm != null && frm is IFormEditObjetDonnee)
                {
                    if (((IFormEditObjetDonnee)frm).EtatEdition)
                    {
                        if (CFormAlerte.Afficher(I.T("This action will save your data. Continue ?|1253"),
                                                 EFormAlerteType.Question) == DialogResult.No)
                        {
                            return(result);
                        }
                        if (!((IFormEditObjetDonnee)frm).ValiderModifications())
                        {
                            return(result);
                        }
                        CObjetDonnee obj = ((IFormEditObjetDonnee)frm).GetObjetEdite();
                        if (obj != null)
                        {
                            if (cible is CObjetDonnee)
                            {
                                cible = ((CObjetDonnee)cible).GetObjetInContexte(obj.ContexteDonnee);
                            }
                        }
                        //((CFormEditionStandard)frm).OnClickModifier();
                    }
                }
                if (frm != null && frm is CFormListeStandard)
                {
                    if (
                        action.GetType() == typeof(CActionSur2iLinkAfficherFormulaire) ||
                        action.GetType() == typeof(CActionSur2iLinkAfficherListe))
                    {
                        cible = ((CFormListeStandard)frm).ElementSelectionne;
                    }
                    else
                    {
                        CActionSur2iLinkAfficheFormulaireCustom actionForm = action as CActionSur2iLinkAfficheFormulaireCustom;
                        if (actionForm != null)
                        {
                            cible = ((CFormListeStandard)frm).ElementSelectionne;
                            CFormulaire formulaire = new CFormulaire(CContexteDonneeSysteme.GetInstance());
                            if (formulaire.ReadIfExists(actionForm.IdFormulaireInDb))
                            {
                                if (formulaire.ElementEditeIsArray)
                                {
                                    cible = ((CFormListeStandard)frm).ElementsCoches;
                                }
                            }
                        }
                        else if (action.GetType() == typeof(CActionSur2iLinkExecuterProcess))
                        {
                            cible = ((CFormListeStandard)frm).ElementsCoches;
                        }
                    }
                }
                objetCible = cible;
            }
            if (action is CActionSur2iLinkAfficherFormulaire)
            {
                return(ExecuteActionFormulaire((CActionSur2iLinkAfficherFormulaire)action, objetCible));
            }
            else if (action is CActionSur2iLinkAfficherListe)
            {
                return(ExecuteActionListe((CActionSur2iLinkAfficherListe)action, objetCible));
            }
            else if (action is CActionSur2iLinkExecuterProcess)
            {
                result = ExecuteActionProcess((CActionSur2iLinkExecuterProcess)action, objetCible);
                CFormEditionStandard frmStd = frm as CFormEditionStandard;
                if (frmStd != null)
                {
                    try//La fenêtre peut être fermée par le process, donc ça peut faire des erreurs
                    {
                        frmStd.RefillDialog();
                    }
                    catch { }
                }
                else if (frm == CFormMain.GetInstance())
                {
                    CFormMain.GetInstance().RefreshPanelEtapeWorkflow();
                }
                return(result);
            }
            else if (action is CActionSur2iLinkAfficheFormulaireCustom)
            {
                return(ExecuteActionFormulaireCustom((CActionSur2iLinkAfficheFormulaireCustom)action, objetCible));
            }
            else if (action is CActionSur2iLinkAfficherEntite)
            {
                return(ExecuteActionAfficherEntite((CActionSur2iLinkAfficherEntite)action, objetCible));
            }
            else if (action is CActionSur2iLinkMenuDeroulant)
            {
                return(ExecuteActionMenuDeroulant((CActionSur2iLinkMenuDeroulant)action, sender, objetCible));
            }
            else if (action is CActionSur2iLinkFormulairePopup)
            {
                return(ExecuteActionFormulairePopup((CActionSur2iLinkFormulairePopup)action, sender, objetCible));
            }

            result = CResultAErreur.True;
            result.EmpileErreur(I.T("Action not managed|30076"));
            return(result);
        }
        //----------------------------------------------------
        private void Init()
        {
            Visible = m_etapeEnCours != null;
            CBlocWorkflowFormulaire blocFormulaire = m_etapeEnCours != null &&
                                                     m_etapeEnCours.TypeEtape != null ?
                                                     m_etapeEnCours.TypeEtape.Bloc as CBlocWorkflowFormulaire : null;

            SetSecondaireEdite(null);
            if (blocFormulaire == null)
            {
                return;
            }
            if (blocFormulaire.HideAfterValidation && m_etapeEnCours.EtatCode == (int)EEtatEtapeWorkflow.Terminée)
            {
                SetEtapeEnCours(null, null);
                return;
            }
            ResetClignote();
            this.SuspendDrawing();
            m_lblNomEtape.Text = m_etapeEnCours.Libelle;
            if (blocFormulaire.FormuleInstructions != null)
            {
                C2iExpression expInstructions         = blocFormulaire.FormuleInstructions;
                CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(m_etapeEnCours);
                CResultAErreur result = expInstructions.Eval(ctxEval);
                if (result && result.Data != null)
                {
                    m_lblInstructions.Text = result.Data.ToString();
                }
                else
                {
                    m_lblInstructions.Text = m_etapeEnCours.Libelle + Environment.NewLine +
                                             result.Erreur.ToString();
                }
            }
            //m_btnTerminer.Visible = m_etapeEnCours.EtatCode == (int)EEtatEtapeWorkflow.Démarrée;
            if (m_formulaire != null)
            {
                bool bConsultationOnly = m_etapeEnCours.EtatCode != (int)EEtatEtapeWorkflow.Démarrée;
                if (m_etapeEnCours.EtatCode == (int)EEtatEtapeWorkflow.Terminée &&
                    !blocFormulaire.LockerElementEditeEnFinDEtape)
                {
                    bConsultationOnly = false;
                }
                m_formulaire.ConsultationOnly = bConsultationOnly;
            }
            m_bIsCollapse = false;
            UpdateImagePanelBas();
            m_btnTerminer.Visible = m_etapeEnCours.DateFin == null && m_etapeEnCours.DateDebut != null;
            m_btnTerminer.Enabled = !m_etapeEnCours.EstGelee;
            m_btnAnnuler.Visible  = !blocFormulaire.MasquerSurChangementDeFormulaire || m_etapeEnCours.DateFin != null;
            m_btnActions.Visible  = CRecuperateurDeclencheursActions.GetActionsManuelles(m_etapeEnCours, true).Count() > 0;

            Image imgTask = m_etapeEnCours.EtatCode == (int)EEtatEtapeWorkflow.Terminée ?
                            Resources._1346738948_taskok : Resources._1346738948_task;

            if (m_etapeEnCours.EstGelee)
            {
                imgTask = Resources._1346738948_task_pending;
            }
            SetImageTask(imgTask);

            int nHeight = m_panelTop.Height + m_panelInstructions.Height + m_panelBas.Height +
                          ClientSize.Height - Size.Height;
            bool bShowFormulaireSecondaire = false;

            if (blocFormulaire.DbKeyFormulaireSecondaire != null &&
                blocFormulaire.FormuleElementEditeSecondaire != null)
            {
                CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(m_etapeEnCours);
                CResultAErreur result = blocFormulaire.FormuleElementEditeSecondaire.Eval(ctxEval);
                CObjetDonnee   objet  = result.Data as CObjetDonnee;
                if (result && objet != null)
                {
                    CFormulaire formulaire = new CFormulaire(m_etapeEnCours.ContexteDonnee);
                    if (formulaire.ReadIfExists(blocFormulaire.DbKeyFormulaireSecondaire))
                    {
                        C2iWnd wnd = formulaire.Formulaire;
                        if (wnd != null)
                        {
                            Size = new Size(Size.Width,
                                            nHeight +
                                            wnd.Size.Height + 2);
                            if (blocFormulaire.SecondaireEnEdition)
                            {
                                objet.BeginEdit();
                            }
                            m_panelFormulalire.InitPanel(wnd, objet);
                            SetSecondaireEdite(blocFormulaire.SecondaireEnEdition ? objet : null);
                            if (!blocFormulaire.SecondaireEnEdition)
                            {
                                m_panelFormulalire.LockEdition = true;
                            }
                            else
                            {
                                m_panelFormulalire.LockEdition = m_etapeEnCours.DateFin != null;
                            }

                            bShowFormulaireSecondaire = true;
                        }
                    }
                }
            }
            if (!bShowFormulaireSecondaire)
            {
                Size = new Size(Size.Width, nHeight);
            }
            m_nSizeUncollapse = Size.Height;
            this.ResumeDrawing();
        }
示例#6
0
        /// ///////////////////////////////////////////////////
        public void AppliqueRestrictions(CListeRestrictionsUtilisateurSurType restrictions, IGestionnaireReadOnlySysteme gestionnaireReadOnly)
        {
            if (restrictions == null || gestionnaireReadOnly == null)
            {
                return;
            }
            m_listeRestrictions    = restrictions.Clone() as CListeRestrictionsUtilisateurSurType;
            m_gestionnaireReadOnly = gestionnaireReadOnly;

            //Gère la visibilité des formulaires
            if (m_elementEdite != null)
            {
                CRestrictionUtilisateurSurType rest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType());
                rest.ApplyToObjet(m_elementEdite);
                if (rest.HasRestrictions)
                {
                    foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, int> kv in m_tablePageToIdFormulaire)
                    {
                        CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee);
                        if (formulaire.ReadIfExists(kv.Value))
                        {
                            ERestriction r = rest.GetRestriction(formulaire.CleRestriction);
                            if ((r & ERestriction.Hide) == ERestriction.Hide)
                            {
                                if (TabPages.Contains(kv.Key))
                                {
                                    TabPages.Remove(kv.Key);
                                    m_tablePagesInit[kv.Key] = false;
                                }
                            }
                        }
                    }
                }
            }


            //Update les pages initialisées
            foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, bool> kv in m_tablePagesInit)
            {
                if (kv.Value)
                {
                    CCreateur2iFormulaireObjetDonnee createur = null;
                    if (m_tableCreateurs.TryGetValue(kv.Key, out createur))
                    {
                        CRestrictionUtilisateurSurType oldRest = null;

                        if (m_elementEdite != null)
                        {
                            CRestrictionUtilisateurSurType restriction = m_listeRestrictions.GetRestriction(m_elementEdite.GetType());
                            oldRest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType());
                            restriction.ApplyToObjet(m_elementEdite);
                            int nIdFormulaire;
                            if (m_tablePageToIdFormulaire.TryGetValue(kv.Key, out nIdFormulaire))
                            {
                                CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee);
                                if (formulaire.ReadIfExists(nIdFormulaire))
                                {
                                    ERestriction rest = restriction.GetRestriction(formulaire.CleRestriction);
                                    if ((rest & ERestriction.ReadOnly) == ERestriction.ReadOnly)
                                    {
                                        restriction.AddRestrictionsHorsPriorite(new CRestrictionUtilisateurSurType(restriction.TypeAssocie, ERestriction.ReadOnly));
                                        //force readonly sur tous les contrôles
                                        restriction.RestrictionUtilisateur = ERestriction.ReadOnly;
                                        m_listeRestrictions.SetRestriction(restriction);
                                    }
                                }
                            }
                        }
                        createur.AppliqueRestrictions(m_listeRestrictions, m_gestionnaireReadOnly);
                        if (oldRest != null)
                        {
                            m_listeRestrictions.SetRestriction(oldRest);
                        }
                    }
                }
            }
        }
示例#7
0
        //------------------------------------------------------------------------------------------------
        public CResultAErreur FillDataSet(DataSet ds)
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_etape == null)
            {
                result.EmpileErreur("m_etape is null");
                return(result);
            }
            if (ObjetEditePrincipal == null)
            {
                result.EmpileErreur("ObjetEditePrincipal is null");
                return(result);
            }
            CBlocWorkflowFormulaire blocFormulaire = m_etape.TypeEtape != null ? m_etape.TypeEtape.Bloc as CBlocWorkflowFormulaire : null;

            if (blocFormulaire == null)
            {
                result.EmpileErreur("m_etape.Id = " + m_etape.Id + ". Cette Etape n'a pas de formulaire associé dans Timos");
                return(result);
            }

            CListeRestrictionsUtilisateurSurType lstRestrictions = blocFormulaire.Restrictions;
            CRestrictionUtilisateurSurType       restriction     = lstRestrictions.GetRestriction(ObjetEditePrincipal.GetType());

            // Traite la liste des formulaires associés pour trouver les champs customs
            foreach (CDbKey keyForm in blocFormulaire.ListeDbKeysFormulaires)
            {
                CFormulaire formulaire = new CFormulaire(m_etape.ContexteDonnee);
                if (formulaire.ReadIfExists(keyForm))
                {
                    bool bGroupeEditable = true;
                    if (restriction != null)
                    {
                        ERestriction rest = restriction.GetRestriction(formulaire.CleRestriction);
                        if ((rest & ERestriction.ReadOnly) == ERestriction.ReadOnly)
                        {
                            bGroupeEditable = false;
                        }
                    }
                    CGroupeChamps groupe = new CGroupeChamps(ds, formulaire, this, false, bGroupeEditable);
                    result = groupe.FillDataSet(ds, formulaire.Formulaire, ObjetEditePrincipal, lstRestrictions);
                }
            }
            // Formulaire d'informations secondaires
            if (ObjetEditeSecondaire != null)
            {
                CDbKey keyFormSecondaire = blocFormulaire.DbKeyFormulaireSecondaire;
                if (keyFormSecondaire != null)
                {
                    CFormulaire formulaireSecondaire = new CFormulaire(m_etape.ContexteDonnee);
                    if (formulaireSecondaire.ReadIfExists(keyFormSecondaire))
                    {
                        CGroupeChamps groupe = new CGroupeChamps(ds, formulaireSecondaire, this, true, false);
                        result = groupe.FillDataSet(ds, formulaireSecondaire.Formulaire, ObjetEditeSecondaire, lstRestrictions);
                    }
                }
            }

            // Gestion des documents attendus
            CCaracteristiqueEntite[] liste = GetDocumentsAttendus();
            foreach (CCaracteristiqueEntite caracDoc in liste)
            {
                CDocumentAttendu doc = new CDocumentAttendu(ds, caracDoc);
                result += doc.FillDataSet(ds);
            }

            // Gestion des Actions disponibles
            string strStepId = m_etape.TypeEtape.UniversalId;

            CProcessInDb[] actionsDisponibles = GetActionsDisponibles();
            foreach (CProcessInDb action in actionsDisponibles)
            {
                List <string> lstNommages = new List <string>(action.GetSrongNames());
                lstNommages = lstNommages.Where(nom => nom.Contains(strStepId)).ToList();
                if (lstNommages.Count > 0)
                {
                    CActionWeb actionWeb = new CActionWeb(ds, action, false);
                    result += actionWeb.FillDataSet(ds);
                }
            }

            return(result);
        }
        //-------------------------------------------------------------------------------
        private static void EditeFormulaire(Form frm, string strOnglet)
        {
            Control ctrl = frm;

            //Chope l'image du formulaire
            if (strOnglet != "")
            {
                ctrl = GetTabPage(frm, strOnglet);
            }
            bool bAvecImage = true;

            if (strOnglet != "" && ctrl == null)
            {
                if (strOnglet == c_idBas || strOnglet == c_idHaut || strOnglet == c_idGauche ||
                    strOnglet == c_idGauche)
                {
                    ctrl       = frm;
                    bAvecImage = false;
                }
            }
            if (ctrl == null)
            {
                CFormAlerte.Afficher(I.T("Impossible to find page @1|30075", strOnglet), EFormAlerteType.Erreur);
                return;
            }


            Bitmap bmp = null;

            if (bAvecImage)
            {
                bmp = CScreenCopieur.GetWindowImage(ctrl);
            }
            CFormulaire formulaire = new CFormulaire(CSc2iWin32DataClient.ContexteCourant);

            if (!formulaire.ReadIfExists(new CFiltreData(
                                             CFormulaire.c_champLibelle + "=@1",
                                             GetIdentifiantForm(frm, strOnglet))))
            {
                formulaire.CreateNew();
                formulaire.Role    = CRoleChampCustom.GetRole(CRoleFormulaireSurImpressionWin32.c_roleChampCustom);
                formulaire.Libelle = GetIdentifiantForm(frm, strOnglet);
                C2iWndFenetre wnd = formulaire.Formulaire;
                wnd.BackColor         = ctrl.BackColor;
                formulaire.Formulaire = wnd;
            }
            Type tp = null;

            if (frm is CFormEditionStdTimos)
            {
                try
                {
                    tp = ((CFormEditionStdTimos)frm).GetObjetEdite().GetType();
                }
                catch
                {
                }
            }
            if (frm is CFormListeStandardTimos)
            {
                try
                {
                    tp = ((CFormListeStandardTimos)frm).ListeObjets.TypeObjets;
                }
                catch {}
            }

            /* if (formulaire.IsNew())
             *   formulaire.TypeElementEdite = tp;*/
            List <IControleFormulaireExterne> lstControles = CEncapsuleurControleToControleFormulaireExterne.GetControlesFormulaireExterne(ctrl);

            CTimosApp.Navigateur.AffichePage(new CFormEditionFormulaireAvance(formulaire, bmp, lstControles, tp));
        }
        private void InitChamps()
        {
            m_bIsInitializing = true;
            m_txtFormuleElementEdite.Init(new CFournisseurPropDynStd(), typeof(CEtapeWorkflow));
            m_txtFormuleElementEdite.Formule = m_blocFormulaire.FormuleElementEditePrincipal;
            m_txtFormuleElementSecondaire.Init(new CFournisseurPropDynStd(), typeof(CEtapeWorkflow));
            m_txtFormuleElementSecondaire.Formule = m_blocFormulaire.FormuleElementEditeSecondaire;
            m_txtFormuleInstructions.Init(new CFournisseurPropDynStd(), typeof(CEtapeWorkflow));
            m_txtFormuleInstructions.Formule   = m_blocFormulaire.FormuleInstructions;
            m_rbtnStandard.Checked             = m_blocFormulaire.IsStandardForm;
            m_rbtnFormulaireSpecifique.Checked = !m_blocFormulaire.IsStandardForm;
            InitSelectFormulaire(m_txtFormuleElementEdite);
            InitSelectFormulaire(m_txtFormuleElementSecondaire);

            m_listeDbKeysFormulaires.Clear();
            foreach (CDbKey nKeyForm in m_blocFormulaire.ListeDbKeysFormulaires)
            {
                m_listeDbKeysFormulaires.Add(nKeyForm);
            }

            if (m_blocFormulaire.DbKeyFormulaireSecondaire != null)
            {
                CFormulaire form = new CFormulaire(CContexteDonneeSysteme.GetInstance());
                if (form.ReadIfExists(m_blocFormulaire.DbKeyFormulaireSecondaire))
                {
                    m_txtSelectFormulaireSecondaire.ElementSelectionne = form;
                }
                m_formulaireSecondaireSelectionne = form;
            }
            m_wndListeFormules.Init(m_blocFormulaire.FormulesConditionFin.ToArray(),
                                    typeof(CEtapeWorkflow),
                                    new CFournisseurPropDynStd());
            m_lnkSelectFormulaires.Visible = m_rbtnFormulaireSpecifique.Checked;
            m_panelRestrictions.Init(m_blocFormulaire.Restrictions);

            CParametresInitialisationEtape parametres = m_blocFormulaire.TypeEtape != null ? m_blocFormulaire.TypeEtape.ParametresInitialisation : new CParametresInitialisationEtape();

            m_panelAffectations.Init(parametres);
            m_chkHideOnChangeForm.Checked       = m_blocFormulaire.MasquerSurChangementDeFormulaire;
            m_chkLockItemWhenComplete.Checked   = m_blocFormulaire.LockerElementEditeEnFinDEtape;
            m_chkMasquerApresValidation.Checked = m_blocFormulaire.HideAfterValidation;
            m_chkSecondaireEnEdition.Checked    = m_blocFormulaire.SecondaireEnEdition;

            m_chkPromptToEnd.Checked       = m_blocFormulaire.PromptForEndWhenAllConditionsAreOk;
            m_chkPasserSiPasErreur.Checked = m_blocFormulaire.NePasExecuterSiToutesConditionsRemplies;

            m_chkUseStopHandler.Checked = m_blocFormulaire.ParametreDeclencheurStop != null;
            if (m_blocFormulaire.ParametreDeclencheurStop != null)
            {
                m_panelParametreDeclenchement.Visible = true;
                m_panelParametreDeclenchement.Init(m_blocFormulaire.ParametreDeclencheurStop);
            }
            else
            {
                m_panelParametreDeclenchement.Visible = false;
            }

            UpdateVisuLinkFormulaires();

            InitPanelGestionErreur();
            m_panelChamps.ElementEdite = m_blocFormulaire.TypeEtape;

            m_txtExceptionRestriction.Text = m_blocFormulaire.RestrictionExceptionContext;

            m_bIsInitializing = false;
        }