Filter Records on a form Through x++ EventHandler

Filter Records on a form Through x++ EventHandler


 /// <summary>

    /// This Event Handler is used to filtered out the Record on the base of Users

    /// </summary>

    /// <param name="sender"></param>

    /// <param name="e"></param>

[FormDataSourceEventHandler(formDataSourceStr(SalesTable, SalesTable), FormDataSourceEventType::QueryExecuting)]

    public static void SalesTable_OnQueryExecuting(FormDataSource sender, FormDataSourceEventArgs e)

    {

        

        CblSalesTypesSecurity       SalesTypesSecurity;

        UserInfo                    userInfo;

        boolean                     _flag = false;


        FormRun                     _formrun = sender.formRun();

        QueryBuildDataSource        qbds;

        QueryBuildRange             queryBuildRange;


        qbds = sender.query().dataSourceName(sender.name());


        queryBuildRange = qbds.addRange(fieldNum(SalesTable,bfpSalesTypeId));


        while select

                 SalesTypesSecurity

            join userInfo

                where SalesTypesSecurity.UserRef == UserInfo.RecId

                        && UserInfo.ID == curUserId()

        {

            queryBuildRange = qbds.addRange(fieldNum(SalesTable,bfpSalesTypeId));

            queryBuildRange.value(SalesTypesSecurity.SalesTypes);

            _flag = true;

        }


        if(_flag == false)

        {

            queryBuildRange.value('--GarbageValues--');

        }


        queryBuildRange.status(RangeStatus::Hidden);


    }

Comments

Popular posts from this blog

D365FO – AX – X++ –Refresh, Reread, Research, and ExecuteQuery

Create Inventory Journal through Code in D365FO X++

SalesLine Reservation in D365fo x++