Tuesday, November 11, 2025

User wise get the location

 

if(!contract.parmlocation()) 

            { 

  

                while select forupdate  VendAgingReportTmp 

            notexists join rolelocation 

            where rolelocation.LocationId == VendAgingReportTmp.PMELocation 

            &&  rolelocation.UserId == curUserId() 

                { 

                    ttsbegin; 

                    VendAgingReportTmp.delete(); 

                    ttscommit; 

                } 

            } 

 

 

 

Lookup method: 

 

 

 

QueryBuildDataSource  queryBuildDataSource; 

        QueryBuildRange     queryBuildRange; 

        DimensionAttribute   dimAttr; 

        container  conUsers; 

        int userCount = 1; 

        dimAttr = DimensionAttribute::findByName("Location"); 

        str locations; 

        Query query = new Query(); 

        SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(DimensionAttributeValue), _formControl); 

        SecurityRole        role; 

        SecurityUserRole    userRole; 

        PMERoleLocation  roleLocation; 

        while select roleLocation 

                where roleLocation.UserId == curUserId() 

        { 

            conUsers = conIns(conUsers,userCount,roleLocation.LocationId); 

            userCount++; 

        } 

        locations = con2Str(conUsers,","); 

        query.addDataSource(tablenum(DimensionAttributeValue)).addRange(fieldNum(DimensionAttributeValue,DimensionAttribute)).value(queryValue(dimAttr.RecId)); 

  

        sysTableLookup.addLookupfield(fieldNum(DimensionAttributeValueDisplayValue), true); 

        query.dataSourceTable(tableNum(DimensionAttributeValue)).addRange(fieldnum(DimensionAttributeValueDisplayValue)).value(locations); 

  

        //this code is to add the ranges for filtering 

        sysTableLookup.parmQuery(query); 

        sysTableLookup.performFormLookup(); 

No comments:

Post a Comment