project BLF > class Report Component > method GetSelectedCustomFields


Parameters


bzResultDataSetinput-outputdataset-handle
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method breport.ApiProcessReportLogic


program code (program1/breport.p)

if oiReturnStatus = 0
then assign oiReturnStatus = -98.

empty temp-table tTableCustomField.

<M-1 run GetTableCustomFields
   (output tTableCustomField (tTableCustomField), 
    output viFcReturnSuper (oiReturnStatus)) in breport>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.

for each tResultFieldToCBF:
    find first tTableCustomField where
               tTableCustomField.tcResultTable       = substring(tResultFieldToCBF.tcResultField,1,index(tResultFieldToCBF.tcResultField,".":U) - 1, "CHARACTER":U) and
               "t":U + tTableCustomField.tcTableName = SUBSTRING(tResultFieldToCBF.tcCBF,1,index(tResultFieldToCBF.tcCBF,".":U) - 1, "CHARACTER":U) no-error.
    if available tTableCustomField
    then do:
        do viFcCount1 = 1 to bzResultDataSet:num-buffers:
            vhTableBuffer = bzResultDataSet:get-buffer-handle(viFcCount1).
            if vhTableBuffer:table = tTableCustomField.tcResultTable
            then do:
                <M-2 run GetCustomFieldValues
                   (input  vhTableBuffer (ihResultSetBuffer), 
                    input  tTableCustomField.tcBusinessComponent (icClass), 
                    input  tTableCustomField.tcTableName (icTable), 
                    input  tTableCustomField.tcKeyFields (icKeyColumn), 
                    input  substring(tResultFieldToCBF.tcResultField,index(tResultFieldToCBF.tcResultField,'.':U) + 1, -1, 'CHARACTER':U) (icCustomFieldColumn), 
                    input  substring(tResultFieldToCBF.tcCBF,index(tResultFieldToCBF.tcCBF,'.':U) + 1, -1, 'CHARACTER':U) (icCustomBusinessField), 
                    output viFcReturnSuper (oiReturnStatus)) in breport>
                if viFcReturnSuper <> 0
                then assign oiReturnStatus = viFcReturnSuper.
                if viFcReturnSuper < 0
                then return.
            end.
        end.
    end.
end.

if oiReturnStatus = -98
then assign oiReturnStatus = 0.