[Form]
public class EmployeePayrollDetails extends FormRun
{
SysLookupMultiSelectCtrl msLookupCtrl;
List selectedCompanies;
[Control("String")]
class CompanyName
{
/// <summary>
///
/// </summary>
public void lookup()
{
super();
OMUserRoleOrganization omOrg;
SecurityUserRole securityUserRole,securityUserRole1;
SecurityRole securityRole,securityRole1;
while select firstonly securityUserRole
join securityRole
where securityUserRole.SecurityRole == securityRole.RecId
&& securityUserRole.User == curUserId()
&& (securityRole.Name == 'HR & Payroll Consolidated Reports'
|| securityRole.Name == 'HR Consolidated Reports' )
{
select firstonly omOrg
where omOrg.User == curUserId()
&& omOrg.SecurityRole == securityUserRole.SecurityRole;
if(omOrg.RecId)
break;
}
Query query = new Query();
QueryBuildDataSource qbdsCompany = query.addDataSource(tablenum(CompanyInfo));
qbdsCompany.addSelectionField(fieldNum(CompanyInfo, DataArea));
qbdsCompany.addSelectionField(fieldNum(CompanyInfo, Name));
if(securityUserRole && omOrg)
{
QueryBuildDataSource qbdsOrg = qbdsCompany.addDataSource(tablenum(OMUserRoleOrganization));
qbdsOrg.relations(false);
qbdsOrg.joinMode(JoinMode::ExistsJoin);
qbdsOrg.addLink(
fieldnum(OMUserRoleOrganization, omInternalOrganization),
fieldnum(CompanyInfo, RecId));
qbdsOrg.addRange(fieldnum(OMUserRoleOrganization, User)).value(queryValue(curUserId()));
qbdsOrg.addRange(fieldnum(OMUserRoleOrganization, SecurityRole)).value(queryValue(securityUserRole.SecurityRole));
}
msLookupCtrl = SysLookupMultiSelectCtrl::constructWithQuery(this.formRun(), this, query);
msLookupCtrl.set(msLookupCtrl.getSelectedFieldValues());
}
}
}