/// //////////////////////////////////////////////////////////////////
        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);
        }
Example #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;
            }
        }
        /*/// //////////////////////////////////////////////////////////////////
         * 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);
        }