Esempio n. 1
0
        //----------------------------------------------------------------------------
        public void InitChamps(CActionSur2iLink action, CObjetPourSousProprietes objetPourSousProprietes)
        {
            m_actionEditee = action as CActionSur2iLinkAfficherListe;
            if (action == null)
            {
                Visible = false;
                return;
            }
            m_objetPourSousProprietes = objetPourSousProprietes;
            Visible = true;

            if (m_filtreEdite == null)
            {
                m_filtreEdite = m_actionEditee.Filtre;
                if (m_filtreEdite == null)
                {
                    m_filtreEdite = new CFiltreDynamique();
                }
                m_filtreEdite = (CFiltreDynamique)m_filtreEdite.Clone();
                if (m_objetPourSousProprietes != null)
                {
                    CActionSur2iLinkAfficherListe.AssureVariableElementCible(m_filtreEdite, m_objetPourSousProprietes);
                }
                m_panelEditFiltre.Init(m_filtreEdite);
                m_panelEditFiltre.MasquerFormulaire(true);
                m_wndAide.FournisseurProprietes = new CFournisseurPropDynStd(true);
                m_wndAide.ObjetInterroge        = m_objetPourSousProprietes;

                m_txtContexteListe.Init(m_wndAide.FournisseurProprietes, m_wndAide.ObjetInterroge);
                m_txtTitreListe.Init(m_wndAide.FournisseurProprietes, m_wndAide.ObjetInterroge);
                if (m_actionEditee.FormuleContexte != null)
                {
                    m_txtContexteListe.Text = m_actionEditee.FormuleContexte.GetString();
                }
                else
                {
                    m_txtContexteListe.Text = "";
                }
                if (m_actionEditee.FormuleTitre != null)
                {
                    m_txtTitreListe.Text = m_actionEditee.FormuleTitre.GetString();
                }
                else
                {
                    m_txtTitreListe.Text = "";
                }
                m_rbtnActionDetailEditElement.Checked = m_actionEditee.ActionSurDetail == null;
                m_rbtnActionDetailSpecifique.Checked  = !m_rbtnActionDetailEditElement.Checked;
                m_chkListeAvecAjouter.Checked         = m_actionEditee.ShowBoutonAjouter;
                m_chkListeAvecDetail.Checked          = m_actionEditee.ShowBoutonDetail;
                m_chkListeAvecRemove.Checked          = m_actionEditee.ShowBoutonSupprimer;
                m_imgFiltreSpecifiqueOnList.Visible   = m_actionEditee.IdFiltreDynamiqueAUtiliser >= 0;
                m_lnkOptionsFiltre.Visible            = m_actionEditee.IdFiltreDynamiqueAUtiliser >= 0;
            }
        }
Esempio n. 2
0
        //----------------------------------------------------------------------------
        private void m_lnkAffectations_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            CActionSur2iLinkAfficherListe actionLst = m_actionEditee as CActionSur2iLinkAfficherListe;

            if (actionLst != null && m_panelEditFiltre.FiltreDynamique != null)
            {
                List <CAffectationsProprietes> lstAffectations = new List <CAffectationsProprietes>();
                lstAffectations.AddRange(actionLst.Affectations);
                lstAffectations = CFormEditProprieteAffectationsProprietes.EditeLesAffectations(lstAffectations,
                                                                                                m_objetPourSousProprietes != null ? m_objetPourSousProprietes.TypeAnalyse : null,
                                                                                                m_panelEditFiltre.FiltreDynamique.TypeElements,
                                                                                                new CFournisseurPropDynStd());
                actionLst.Affectations = lstAffectations;
            }
        }
        /// //////////////////////////////////////////////////////////////////
        protected static CResultAErreur ExecuteActionListe(CActionSur2iLinkAfficherListe action, object objetCible)
        {
            CResultAErreur   result = CResultAErreur.True;
            CFiltreDynamique filtre = action.Filtre;

            if (filtre == null || filtre.TypeElements == null)
            {
                result.EmpileErreur(I.T("Link parameter error : filter is null|30077"));
                return(result);
            }

            if (objetCible != null)
            {
                CObjetPourSousProprietes objetPourSousProp = null;
                objetPourSousProp = new CObjetPourSousProprietes(objetCible);
                IVariableDynamique variable = CActionSur2iLinkAfficherListe.AssureVariableElementCible(filtre, objetPourSousProp);

                /*if ( variable.TypeDonnee.TypeDotNetNatif != objetCible.GetType() )
                 * {
                 *      result.EmpileErreur(I.T("Expected type in the filter does not correspond to object type|30078"));
                 *      return result;
                 * }*/
                if (variable != null)
                {
                    filtre.SetValeurChamp(variable.IdVariable, objetCible);
                }
            }
            result = filtre.GetFiltreData();
            if (!result)
            {
                result.EmpileErreur(I.T("Filter error|30079"));
                return(result);
            }
            CFiltreData filtreData = (CFiltreData)result.Data;
            Type        tp         = CFormFinder.GetTypeFormToList(filtre.TypeElements);

            try
            {
                if (tp != null || tp.IsSubclassOf(typeof(CFormListeStandard)))
                {
                    CFormListeStandard            form    = ( CFormListeStandard )Activator.CreateInstance(tp, new object[0]);
                    CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(objetCible);
                    ctxEval.AttacheObjet(typeof(CContexteDonnee), CSc2iWin32DataClient.ContexteCourant);
                    if (action.FormuleContexte != null)
                    {
                        result = action.FormuleContexte.Eval(ctxEval);
                        if (!result)
                        {
                            result.EmpileErreur(I.T("Form context evaluation error|30080"));
                            return(result);
                        }
                        if (result.Data != null)
                        {
                            form.ContexteUtilisation = result.Data.ToString();
                        }
                    }
                    if (action.FormuleTitre != null)
                    {
                        result = action.FormuleTitre.Eval(ctxEval);
                        if (!result)
                        {
                            result.EmpileErreur(I.T("Form title evaluation error|30081"));
                            return(result);
                        }
                        if (result.Data != null)
                        {
                            form.TitreForce = result.Data.ToString();
                        }
                    }
                    form.FiltreDeBase = filtreData;
                    form.AffectationsPourNouveauxElements        = action.Affectations;
                    form.ObjetReferencePourAffectationsInitiales = objetCible;

                    form.BoutonAjouterVisible   = action.ShowBoutonAjouter;
                    form.BoutonModifierVisible  = action.ShowBoutonDetail;
                    form.BoutonSupprimerVisible = action.ShowBoutonSupprimer;
                    if (action.IdFiltreDynamiqueAUtiliser >= 0)
                    {
                        CFiltreDynamiqueInDb filtretoUse = new CFiltreDynamiqueInDb(CContexteDonneeSysteme.GetInstance());
                        if (filtretoUse.ReadIfExists(action.IdFiltreDynamiqueAUtiliser))
                        {
                            CFiltreDynamique filtreDyn = filtretoUse.Filtre;
                            if (filtreDyn != null)
                            {
                                CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetCible);
                                foreach (CFormuleNommee formule in action.ValeursVariablesFiltre)
                                {
                                    if (formule.Formule != null)
                                    {
                                        CResultAErreur res = formule.Formule.Eval(ctx);
                                        if (res)
                                        {
                                            try
                                            {
                                                string strId = formule.Id;
                                                filtreDyn.SetValeurChamp(strId, res.Data);
                                            }
                                            catch { }
                                        }
                                    }
                                }
                                form.FiltrePrefere = filtreDyn;
                            }
                        }
                    }
                    if (action.ActionSurDetail != null)
                    {
                        CExecuteurActionSurPanelListeSpeedStandard executeur = new CExecuteurActionSurPanelListeSpeedStandard(action.ActionSurDetail, form);
                        form.SetModifierElementDelegate(new CPanelListeSpeedStandard.ModifierElementDelegate(executeur.ExecuteAction));
                    }
                    CTimosApp.Navigateur.AffichePage(form);
                }
                else
                {
                    result.EmpileErreur(I.T("Not avaliable|30082"));
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }