示例#1
0
        //-------------------------------------------------------
        private C2iExpression GetFormuleValideElementEdite(CTextBoxZoomFormule editeur)
        {
            C2iExpression formule    = editeur.Formule;
            bool          bHasErreur = true;

            if (formule != null)
            {
                CTypeResultatExpression typeResultat = formule.TypeDonnee;
                if (typeResultat != null &&
                    !typeResultat.IsArrayOfTypeNatif &&
                    typeof(CObjetDonneeAIdNumerique).IsAssignableFrom(typeResultat.TypeDotNetNatif))
                {
                    bHasErreur = false;
                }
            }
            if (!bHasErreur)
            {
                return(formule);
            }
            return(null);
        }
        //-------------------------------------------------------
        private void InitSelectFormulaire(CTextBoxZoomFormule editeur)
        {
            if (editeur == null)
            {
                return;
            }
            C2iExpression          formule       = GetFormuleValideElementEdite(editeur);
            CFormulaire            formulaireSel = null;
            C2iTextBoxFiltreRapide selecteur     = null;

            if (editeur == m_txtFormuleElementSecondaire)
            {
                formulaireSel = m_txtSelectFormulaireSecondaire.ElementSelectionne as CFormulaire;
                selecteur     = m_txtSelectFormulaireSecondaire;
            }
            if (formule != null && selecteur != null)
            {
                Type        tpEdite = formule.TypeDonnee.TypeDotNetNatif;
                CFiltreData filtre  = new CFiltreData(CFormulaire.c_champTypeElementEdite + "=@1",
                                                      tpEdite.ToString());
                CRoleChampCustom role = CRoleChampCustom.GetRoleForType(tpEdite);
                if (role != null)
                {
                    filtre = CFiltreData.GetOrFiltre(filtre,
                                                     CFormulaire.GetFiltreFormulairesForRole(role.CodeRole));
                }

                selecteur.InitAvecFiltreDeBase(typeof(CFormulaire),
                                               "Libelle",
                                               filtre, true);
                if (formulaireSel != null && formulaireSel.TypeElementEdite == tpEdite)
                {
                    selecteur.ElementSelectionne = formulaireSel;
                }
                else
                {
                    selecteur.ElementSelectionne = null;
                }
            }
        }