Tuesday, November 11, 2025

User assign Location get as lookup

 


public void lookupLocation(FormStringControl _formControl) 

    { 

  

        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(); 

  

  

    } 

ttsbegin; 

  

        while select forupdate CustAgingReportTmp 

        { 

            select firstonly custTrans 

                where custTrans.Voucher == CustAgingReportTmp.Voucher; 

  

            if (CustAgingReportTmp.Voucher != "") 

            { 

                DimensionAttributeValueSetItemView dimensionAttributeValueSetItemView; 

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

                select DisplayValue from dimensionAttributeValueSetItemView 

                    where dimensionAttributeValueSetItemView.DimensionAttributeValueSet == custTrans.DefaultDimension 

                        && dimensionAttributeValueSetItemView.DimensionAttribute    == location.RecId; 

  

                CustAgingReportTmp.Location = dimensionAttributeValueSetItemView.DISPLAYVALUE; 

                CustAgingReportTmp.update(); 

            } 

        } 

        ttscommit; 

        if(!contract.parmlocation()) 

        { 

  

            while select forupdate  CustAgingReportTmp 

            notexists join rolelocation 

            where rolelocation.LocationId == CustAgingReportTmp.Location 

            &&  rolelocation.UserId == curUserId() 

            { 

                ttsbegin; 

                CustAgingReportTmp.delete(); 

                ttscommit; 

            } 

        } 

No comments:

Post a Comment