private void m_btnTester_Click(object sender, EventArgs e) { CFiltreDynamique filtre = m_panelFiltre.FiltreDynamique; CResultAErreur result = filtre.GetFormuleEquivalente(); if (result) { C2iExpression formule = result.Data as C2iExpression; CListeObjetDonneeGenerique <CActeur> lst = new CListeObjetDonneeGenerique <CActeur>(CSc2iWin32DataClient.ContexteCourant); StringBuilder bl = new StringBuilder(); int nNbOk = 0; foreach (CActeur acteur in lst) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(acteur); if (formule == null) { result.Data = true; } else { result = formule.Eval(ctx); } if (result) { if (result.Data is bool && (bool)result.Data == true) { bl.Append(acteur.IdentiteComplete); nNbOk++; bl.Append("\r\n"); } } } MessageBox.Show(nNbOk + " elements\r\n" + bl.ToString()); } else { CFormAfficheErreur.Show(result.Erreur); } }