//-------------------------------------------------------
        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;
                }
            }
        }
 protected override void OnChangeElementEdite(object element)
 {
     if (element != null &&
         WndFiltreRapide != null)
     {
         CFiltreData filtreData;
         if (WndFiltreRapide.Filter != null)
         {
             CElementAVariablesDynamiques eltAVar = new CElementAVariablesDynamiques();
             CVariableDynamiqueStatique   var     = new CVariableDynamiqueStatique(eltAVar);
             var.Nom        = "EditedElement";
             var.IdVariable = "0";
             var.SetTypeDonnee(new CTypeResultatExpression(element.GetType(), false));
             eltAVar.AddVariable(var);
             eltAVar.SetValeurChamp(var, element);
             CFiltreDynamique filtreDyn = WndFiltreRapide.Filter;
             filtreDyn.ElementAVariablesExterne = eltAVar;
             filtreData = (CFiltreData)filtreDyn.GetFiltreData().Data;
         }
         else
         {
             filtreData = null;
         }
         Type typePropriete = null;
         if (WndFiltreRapide.Property != null)
         {
             typePropriete = WndFiltreRapide.Property.TypeDonnee.TypeDotNetNatif;
         }
         else if (WndFiltreRapide.Filter != null)
         {
             typePropriete = WndFiltreRapide.Filter.TypeElements;
         }
         if (typePropriete != null)
         {
             string strDesc = DescriptionFieldAttribute.GetDescriptionField(typePropriete, "DescriptionElement");
             C2iTextBoxFiltreRapide txtRapide = m_selectionneur as C2iTextBoxFiltreRapide;
             if (txtRapide != null)
             {
                 txtRapide.InitAvecFiltreDeBase(typePropriete, strDesc, filtreData, true);
             }
             else
             {
                 CComboBoxListeObjetsDonnees cmb = m_selectionneur as CComboBoxListeObjetsDonnees;
                 cmb.NullAutorise = true;
                 cmb.TextNull     = I.T("None|19");
                 if (cmb != null)
                 {
                     cmb.Init(
                         typePropriete,
                         filtreData,
                         strDesc,
                         true);
                 }
             }
             if (WndFiltreRapide.Property != null)
             {
                 CObjetDonnee valeur = CInterpreteurProprieteDynamique.GetValue(EditedElement, WndFiltreRapide.Property).Data as CObjetDonnee;
                 m_selectionneur.ElementSelectionne = valeur;
             }
         }
     }
 }
Ejemplo n.º 3
0
 public static void Autoexec()
 {
     C2iTextBoxFiltreRapide.SetGlobalSelectObjectDelegate(new SelectObjectFiltreRapideDelegate(MySelectionneurObjetRapide));
 }