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(DimensionAttributeValue, DisplayValue), true);
query.dataSourceTable(tableNum(DimensionAttributeValue)).addRange(fieldnum(DimensionAttributeValue, DisplayValue)).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