project BLF > class Session > method FixEntityFilters
Parameters
icReportClass | input | character | |
icReference | input | character | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program3/session.p)
assign vcEntityList = "".
if can-find(first tBusinessFields where
tBusinessFields.tcFcFieldType = "F" and
(tBusinessFields.tcFcFieldName matches "*_CANDO" or
tBusinessFields.tcControlType = "ComboBox") and
lookup("IsEntityCode", tBusinessFields.tcValidationMask, chr(2)) > 0)
then do:
/* BLF-3888: first check QRF */
vcQRef = "urn:qad-report:c1:QAD_" + icreportClass + "_" + icreference.
<Q-93 run ResourceByURIUsr (all) (Read) (NoCache)
(input ?, (CompanyId)
input vcQRef, (ResourceURI)
input viUsrId, (UsrId)
input ?, (CompanyIsActive)
output dataset tqResourceByURIUsr) in BResource>
if not can-find (first tqResourceByURIUsr)
then do:
vcQRef = "urn:qad-report:c1:QAD_" + icreference.
<Q-44 run ResourceByURIUsr (all) (Read) (NoCache)
(input ?, (CompanyId)
input vcQRef, (ResourceURI)
input viUsrId, (UsrId)
input ?, (CompanyIsActive)
output dataset tqResourceByURIUsr) in BResource>
end.
if not can-find (first tqResourceByURIUsr)
then do:
/* When not QRF check Crystal */
vcQRef = "urn:cbf:" + icReportClass + "." + icreference.
<Q-90 run ResourceByURIUsr (all) (Read) (NoCache)
(input ?, (CompanyId)
input vcQRef, (ResourceURI)
input viUsrId, (UsrId)
input ?, (CompanyIsActive)
output dataset tqResourceByURIUsr) in BResource>
end.
for each tqResourceByURIUsr where
tqResourceByURIUsr.tiUsr_ID = viUsrId and
tqResourceByURIUsr.tcResourceURI = vcQRef
break by tqResourceByURIUsr.tcCompanyCode:
if first-of(tqResourceByURIUsr.tcCompanyCode)
then do:
if vcEntityList <> ""
then assign vcEntityList = vcEntityList + chr(2).
assign vcEntityList = vcEntityList +
tqResourceByURIUsr.tcCompanyCode + " (" + tqResourceByURIUsr.tcDomainCode + ")" + chr(2) +
tqResourceByURIUsr.tcCompanyCode.
end.
end.
end.
for each tBusinessFields where
tBusinessFields.tcFcFieldType = "F" and
lookup("IsEntityCode", tBusinessFields.tcValidationMask, chr(2)) > 0:
if tBusinessFields.tcControlType = "ComboBox"
then do:
if tBusinessFields.tcValueList = "" or
tBusinessFields.tcValueList = ?
then assign tBusinessFields.tcValueList = vcEntityList.
else do:
assign vcEntityListToSet = "".
do viFcCount1 = num-entries(tBusinessFields.tcValueList, chr(2)) to 2 by -2:
assign vcEntityCode = entry(viFcCount1, tBusinessFields.tcValueList, chr(2)).
do viFcCount2 = num-entries(vcEntityList, chr(2)) to 2 by -2:
if entry(viFcCount2, vcEntityList, chr(2)) = vcEntityCode
then do:
if vcEntityListToSet <> ""
then assign vcEntityListToSet = vcEntityListToSet + chr(2).
assign vcEntityListToSet = vcEntityListToSet +
entry(viFcCount1 - 1, tBusinessFields.tcValueList, chr(2)) + chr(2) +
entry(viFcCount1, tBusinessFields.tcValueList, chr(2)).
end.
end.
end.
assign tBusinessFields.tcValueList = vcEntityListToSet.
end.
end.
else assign tBusinessFields.tcLookupFilterField = "tCompany.CompanyCode"
tBusinessFields.tcLookupQuery = "BCompanySAO.SelectCompanyForUser"
tBusinessFields.tcLookupReturnField = "tqSelectCompanyForUser.tcCompanyCode".
end.