Beispiel #1
0
        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);
            }
        }