| icReportName | input | character | Report name equals the activity code linked to the report. This can be different from the business method name. |
| icLanguageCode | input | character | |
| tFilter | input | temp-table | |
| tqHeader | output | temp-table | |
| tqFilter | output | temp-table | |
| tqText | output | temp-table | |
| oiReturnStatus | output | integer | Return status of the method. |
BLF
QadFinancials
if oiReturnStatus = 0
then oiReturnStatus = -98.
empty temp-table tqHeader.
empty temp-table tqFilter.
empty temp-table tqText.
if icLanguageCode = ""
or icLanguageCode = ?
then assign icLanguageCode = current-language.
create tqText.
assign tqText.tcCode = "LanguageCode"
tqText.tcText = icLanguageCode.
/* GetBusinessFields uses method name, which can be different from activity code */
do while program-name(viMCount) begins "GetReportLabels":
viMCount = viMCount + 1.
end.
if program-name(viMCount) begins "ApiGetReportStructure"
then vcMethodName = icReportName.
else vcMethodName = entry (1,program-name(viMCount)," ").
<M-1 run GetBusinessFields
(input vcMethodName (icReference),
output tBusinessFields (tBusinessFields),
output tCustomRelation (tCustomRelation),
output viFcReturnSuper (oiReturnStatus)) in breport>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
for each tFilter:
find first tBusinessFields where
tBusinessFields.tcFcFieldName = tFilter.tcBusinessFieldName
no-error.
if available tBusinessFields and
lookup("IsEntityCode", tBusinessFields.tcValidationMask, chr(2)) > 0 and
tFilter.tcParameterValue <> ? and
trim(tFilter.tcParameterValue) <> ""
then do:
/* Remove the entities in which the user is not allowed to run this report */
assign vcFilterValue = "".
/* first check QRF */
vcQRef = "urn:qad-report:c1:QAD_" + vcFcComponentName + "_" + icReportName.
<Q-38 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_" + icReportName.
<Q-40 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:" + vcFcComponentName + "." + icReportName.
<Q-96 run ResourceByURIUsr (all) (Read) (NoCache)
(input ?, (CompanyId)
input vcQRef, (ResourceURI)
input viUsrId, (UsrId)
input ?, (CompanyIsActive)
output dataset tqResourceByURIUsr) in BResource>
end.
do viFcCount1 = num-entries(tFilter.tcParameterValue) to 1 by -1:
if can-find(first tqResourceByURIUsr where
tqResourceByURIUsr.tiUsr_ID = viUsrId and
tqResourceByURIUsr.tcCompanyCode = entry(viFcCount1, tFilter.tcParameterValue) and
tqResourceByURIUsr.tcResourceURI = vcQRef)
then do:
if vcFilterValue <> ""
then assign vcFilterValue = "," + vcFilterValue.
assign vcFilterValue = entry(viFcCount1, tFilter.tcParameterValue) + vcFilterValue.
end.
end.
assign tFilter.tcParameterValue = if vcFilterValue = ""
then vcCompanyCode
else vcFilterValue.
end.
create tqFilter.
assign tqFilter.tcBusinessFieldLabel = (if available tBusinessFields
then tBusinessFields.tcSideLabel
else tFilter.tcBusinessFieldName)
tqFilter.tcBusinessFieldName = tFilter.tcBusinessFieldName
tqFilter.tcOperator = tFilter.tcOperator
tqFilter.tcParameterValue = tFilter.tcParameterValue.
if available tBusinessFields
then tqFilter.ti_Sequence = tBusinessFields.tiSequence.
end.
for each tBusinessFields where
tBusinessFields.tcFcFieldType = "B":U :
create tqText.
assign tqText.tcCode = "coLbl":U + substring (entry(2,tBusinessFields.tcFcFieldName,".":U), 3,-1,"CHARACTER":U)
tqText.tcText = tBusinessFields.tcColumnLabel.
create tqText.
assign tqText.tcCode = "siLbl":U + substring (entry(2,tBusinessFields.tcFcFieldName,".":U), 3,-1,"CHARACTER":U)
tqText.tcText = tBusinessFields.tcSideLabel.
end.
/* retrieve report title */
find first tqHeader no-error.
if not available tqHeader
then create tqHeader.
assign tqHeader.tiDecLC = 2
tqHeader.tiDecCC = 2
tqHeader.tcDecTC = ""
tqHeader.tcCurrLC = "EUR":U
tqHeader.tcDateFormat = <M-11 DisplayDate (input ? (itDate)) in breport>
tqHeader.tcDecimalFormat = <M-3 DisplayDecimal (input ? (idDecimal),
input '' (icFormat)) in breport>.
if search ("appinfo/":U + lc(vcFcComponentName) + "_ac.r":U) <> ?
or search ("appinfo/":U + lc(vcFcComponentName) + "_ac.p":U) <> ?
then do:
empty temp-table tActivities.
run value ("appinfo/":U + lc(vcFcComponentName) + "_ac.p":U) (input vhFcSuper, input table tActivities by-reference).
find first tActivities where
tActivities.tcName = icReportName no-error.
if available tActivities
then assign tqHeader.tcReportTitle = tActivities.tcLabel.
/* clean-up */
empty temp-table tActivities.
end.
/* ================================================================= */
/* Fill up header with user & company & domain */
/* ================================================================= */
find first tqHeader no-error.
if not available tqHeader
then create tqHeader.
assign tqHeader.tcUser = vcUserName
tqHeader.tcUserLogin = vcUserLogin.
<Q-8 run CompanyByAll (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input ?, (CompanyCode)
input ?, (CompanyIsActive)
output dataset tqCompanyByAll) in BCompany >
find first tqCompanyByAll no-error.
if available tqCompanyByAll
then assign tqHeader.tcCompanyCode = tqCompanyByAll.tcCompanyCode
tqHeader.tcCompanyDescription = tqCompanyByAll.tcCompanyDescription.
<Q-9 run DomainsPrim (all) (Read) (NoCache)
(input viDomainID, (DomainID)
input ?, (DomainCode)
output dataset tqDomainsPrim) in BDomain >
find first tqDomainsPrim no-error.
if available tqDomainsPrim
then assign tqHeader.tcDomainCode = tqDomainsPrim.tcDomainCode.
/* ================================================================= */
/* Lookup report strings */
/* ================================================================= */
/* convert codes to ID */
<Q-7 run LanguagePrim (all) (Read) (NoCache)
(input icLanguageCode, (LngCode)
input 0, (LngID)
output dataset tqLanguagePrim) in BLanguage >
find first tqLanguagePrim no-error.
if available tqLanguagePrim
then assign viLngID = tqLanguagePrim.tiLng_ID.
<Q-6 run BusActivityByActCompDefault (all) (Read) (NoCache)
(input icReportName, (BusActitvityCode)
input vcFcComponentName, (BusComponentCode)
input ?, (BusActiivtyIsDefault)
input ?, (BusActivytIsActive)
output dataset tqBusActivityByActCompDefault) in BBusinessComponent >
find first tqBusActivityByActCompDefault no-error.
if available tqBusActivityByActCompDefault
then do:
<Q-10 run TranslationsForReport (all) (Read) (NoCache)
(input tqBusActivityByActCompDefault.tiBusActivity_ID, (ActivityId)
input tqBusActivityByActCompDefault.tiBusComponent_ID, (ComponentID)
input viLngID, (LngID)
output dataset tqTranslationsForReport) in BReportTranslation >
for each tqTranslationsForReport:
create tqText.
assign tqText.tcCode = tqTranslationsForReport.tcReportTranslationCode
tqText.tcText = (if tqTranslationsForReport.tcTranslationStringText = ?
or tqTranslationsForReport.tcTranslationStringText = ""
then tqTranslationsForReport.tcReportTranslationText
else tqTranslationsForReport.tcTranslationStringText).
end.
end.
if oiReturnStatus = -98
then oiReturnStatus = 0.