//------------------------------------------------------- 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; } } } }