project QadFinancials > class BFRWAnalysisCode > method ValidateComponentPreLateAddDetailLine


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BFRWAnalysisCode.ValidateComponentPre


program code (program1/bfrwanalysiscode.p)

/* ============================================================================ *
 * Perform the late AddDetailLine as there can be created records on the UI,    *
 * where the execution was skipped because of performance                       *
 * ============================================================================ */
for each t_sFRWAnCode where
         t_sFRWAnCode.tc_Status <> "D":U:
       
    /* Check, if the record was already created */
    if t_sFRWAnCode.tc_Status      = "N":U and
       t_sFRWAnCode.tc_Status begins "UI":U
    then do:
        find first tFRWAnCode where
             tFRWAnCode.tc_Rowid = t_sFRWAnCode.tc_Rowid
             no-error.
        if not available tFRWAnCode
        then do:
            <M-79 run AddDetailLine
               (input  'FRWAnCode':U (icTable), 
                input  '':U (icParentRowid), 
                output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
            if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
            if oiReturnStatus < 0 then return.
            
            assign tFRWAnCode.tc_Rowid = t_sFRWAnCode.tc_Rowid.    
        end.

        buffer-copy tFRWAnCode 
            except tFRWAnCode.FRWAnCodeCode
                   tFRWAnCode.FRWAnCodeDescription
                   tFRWAnCode.FRWAnCodeFRWChartCode
                   tFRWAnCode.FRWAnCodeXBRElement
                   tFRWAnCode.FRWAnCodeCalcType
                   tFRWAnCode.FRWAnCodeCalcElement
                   tFRWAnCode.FRWAnCodeAnalyseType
                   tFRWAnCode.FRWAnCodeAnalyseText
                   tFRWAnCode.FRWAnCodeTaxoName
                   tFRWAnCode.FRWAnCodeELR
            to t_sFRWAnCode.
    end. /* if t_sFRWAnCode.tc_Status = "N":U */
    
    for each t_sFRWAnCodeElem where
             t_sFRWAnCodeElem.tc_ParentRowid = t_sFRWAnCode.tc_Rowid and
             t_sFRWAnCodeElem.tc_Status     <> "D":U:
             
        /* Check, if the record was already created */
        if t_sFRWAnCodeElem.tc_Status     = "N":U and
           t_sFRWAnCodeElem.tc_Rowid begins "UI":U
        then do:
            find first tFRWAnCodeElem where
                 tFRWAnCodeElem.tc_Rowid = t_sFRWAnCodeElem.tc_Rowid
                 no-error.
            if not available tFRWAnCodeElem
            then do:
                <M-26 run AddDetailLine
                   (input  'FRWAnCodeElem':U (icTable), 
                    input  t_sFRWAnCode.tc_Rowid (icParentRowid), 
                    output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
                if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
                if oiReturnStatus < 0 then return.
                
                assign tFRWAnCodeElem.tc_Rowid = t_sFRWAnCodeElem.tc_Rowid.
            end. 
            
            buffer-copy tFRWAnCodeElem 
                except tFRWAnCodeElem.FRWAnCodeElemCOAType
                       tFRWAnCodeElem.FRWAnCodeElemIsDetRowExpl
                       tFRWAnCodeElem.FRWAnCodeElemMask
                       tFRWAnCodeElem.FRWAnCodeElemMaskRange1
                       tFRWAnCodeElem.FRWAnCodeElemMaskRange2
                       to t_sFRWAnCodeElem.
        end. /* if t_sFRWAnCodeElem.tc_Status = "N":U */
    
        for each t_sFRWAnCodeElemDet where
                 t_sFRWAnCodeElemDet.tc_ParentRowid = t_sFRWAnCodeElem.tc_Rowid and
                 t_sFRWAnCodeElemDet.tc_Status     <> "D":U:
                 
            /* Check, if the record was already created */
            if t_sFRWAnCodeElemDet.tc_Status     = "N":U and
               t_sFRWAnCodeElemDet.tc_Rowid begins "UI":U
            then do:
                find first tFRWAnCodeElemDet where
                     tFRWAnCodeElemDet.tc_Rowid = t_sFRWAnCodeElemDet.tc_Rowid
                     no-error.
                if not available tFRWAnCodeElemDet
                then do:
                    <M-7 run AddDetailLine
                       (input  'FRWAnCodeElemDet':U (icTable), 
                        input  t_sFRWAnCodeElem.tc_Rowid (icParentRowid), 
                        output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
                    if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
                    if oiReturnStatus < 0 then return.
                    
                    assign tFRWAnCodeElemDet.tc_Rowid = t_sFRWAnCodeElemDet.tc_Rowid.
                end.
                
                buffer-copy tFRWAnCodeElemDet 
                    except tFRWAnCodeElemDet.FRWAnCodeElemDetValue
                           tFRWAnCodeElemDet.FRWAnCodeElemDetCode
                    to t_sFRWAnCodeElemDet.
            end. /* if t_sFRWAnCodeElemDet.tc_Status = "N":U */
        end. /* for each t_sFRWAnCodeElemDet where */
    end. /* for each t_sFRWAnCodeElem where */
end. /* for each t_sFRWAnCode where */