Microsoft_MVP_banner

Making string field a custom lookup on user selection

Sometimes we just compile our posts to keep the things at one place so we or someone can get it easily when we in need. This post belongs to the same concept 🙂 Requirement was to filter the records in grid according to the selection of base enum values from a lookup. Easy task 🙂 but then I had to make a string field a custom lookup on selection of first value from base enum and to make it a read only on selection of second value of the base enum. This is what I did; Filter: modified public boolean modified() {     boolean ret;     ret = super();     if(str2enum(enum_variable,this.valueStr()) == enum::firstvalue)     {         stringField.allowEdit(true);         stringField .text(‘ ‘);     }     else     {          stringField .allowEdit(False);          stringField .text(curuserid());                     }     return ret; } StringEdit: StringField // This lookup is populating users  Public void lookup() {     Query                   query = new Query();     QueryBuildDataSource    queryBuildDataSource;     QueryBuildRange         queryBuildRange;     SysTableLookup          sysTableLookup;     ;     //Create an instance of SysTableLookup with the form control passed in     sysTableLookup = SysTableLookup::newParameters(tablenum(UserInfo), this);     //Add the fields to be shown in the lookup form     sysTableLookup.addLookupfield(fieldnum(UserInfo, id), true);     sysTableLookup.addLookupfield(fieldnum(UserInfo, name), false);     //create the query datasource     queryBuildDataSource = query.addDataSource(tablenum(UserInfo));     queryBuildRange = queryBuildDataSource.addRange(fieldnum(UserInfo, Id));     queryBuildRange.value(element.getusers());     //add the query to the lookup form     sysTableLookup.parmQuery(query);     // Perform lookup     sysTableLookup.performFormLookup(); } // Method to get users str 100 getusers() {         str 100                     Users;     ;     While Select UsersTable where  UsersTable .UserId == Curuserid()     {         Select Firstonly SysCompanyUserInfo where SysCompanyUserInfo.EmplId ==  UsersTable.Emplid ;         Users+= SysCompanyUserInfo.UserId +’,’;     }     if(!Users)         Return ‘””‘ ;     Return Users ; }

FaisalFareed@2025. All rights reserved

Design by T3chDesigns