//---------------------------------------------------------------------- /// <summary> /// /// </summary> /// <returns></returns> public bool EvaluerFormuleConditionnelle(DateTime dt) { CElementAVariablesDynamiques elt = ElementPourEvaluerLaFormuleConditionnelle; elt.SetValeurChamp((IVariableDynamique)elt.ListeVariables[0], dt); CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(elt); C2iExpression formule = this.FormuleConditionnelle; if (formule != null) { CResultAErreur result = formule.Eval(contexte); if (result) { if (result.Data is bool && (bool)result.Data || result.Data is int && (int)result.Data != 0) { return(true); } } } return(false); }
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; } } } }