Addin active screen

Addin active screen

i am trying to get the active screen name from the runtime. the below is the code witch i crated for alarm filtering but it will work only for one screen mentioned in the code but i want the code to run for all the screens based on calling.
using Scada.AddIn.Contracts;
using Scada.AddIn.Contracts.Function;
using Scada.AddIn.Contracts.Screen;
using System;

namespace AMLFilter
{
    /// <summary>
    /// Description of Project Wizard Extension.
    /// </summary>
    [AddInExtension("AML Filter", "This Wizard adapts the Filter settings for the AML screen switch")]
    public class ProjectWizardExtension : IProjectWizardExtension
    {
        #region IProjectWizardExtension implementation
        IFunction zFunction;
        IProject zProject;
        IScreen zDetails;

        public void Run(IProject context, IBehavior behavior)
        {

            zProject = context;
            zDetails = zProject.ScreenCollection["PopUp_T_BCU_1_SLDScreen"];
            if (zDetails.IsScreenActive)
            {
                string Varname = zDetails.ScreenElementCollection["NAME"].GetVariable(0).Name.ToString();
                string baynumber = Varname.Substring(0, 4);

                zFunction = zProject.FunctionCollection["Scr_PopAlarms_BAY"];
                zFunction.SetDynamicProperty("PictFilter[0].VarFilter", "*" + baynumber + "*");

                zFunction.Execute();
            }


        }

        #endregion
    }

}