| opPrimeKey | output | longchar | Primary Key field value of loaded record(s). Keys are chr(4) separated. Key fields are chr(2) separated. |
| oiReturnStatus | output | integer | Return status of the method. |
do transaction on error undo, throw:
/*PROCESSBLOCK:*/
for each t_sFRWTreeNode:
vcFreeform = "for each FRWTreeNode where FRWTreeNode.FRWTreeNode_ID = " + string(t_sFRWTreeNode.FRWTreeNode_ID).
<M-92 run DataLoad
(input '' (icRowids),
input '' (icPkeys),
input '' (icObjectIds),
input vcFreeForm (icFreeform),
input true (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BReportTree>
if viFcReturnSuper >= 0
then do:
find first tFRWTreeNode
where tFRWTreeNode.FRWTreeNode_ID = t_sFRWTreeNode.FRWTreeNode_ID
no-error.
if available tFRWTreeNode
then do: /* Modify */
/*
assign t_sFRWTreeNode.tc_Status = "C":U
tFRWTreeNode.tc_Status = "C":U.
*/
assign t_sFRWTreeNode.FRWTreeNode_ID = tFRWTreeNode.FRWTreeNode_ID.
end.
end. /* if viFcReturnSuper >= 0 */
else do: /* Create */
if t_sFRWTreeNode.ParentFRWTreeNode_ID = 0 then
do:
<Q-13 run ReportTreeRootNode (all) (Read) (NoCache)
(input t_sFRWTreeNode.FRWTreeNodeFRWChartCode, (FRWTreeNodeFRWChartCode)
input t_sFRWTreeNode.FRWTreeNodeCode, (FRWTreeNodeCode)
output dataset tqReportTreeRootNode) in BReportTree>
find first tqReportTreeRootNode no-error.
if available tqReportTreeRootNode then
do:
<M-72 run StartPersistence
(output vhFcComponent (ohPersistence),
output viFcReturnSuper (oiReturnStatus)) in BReportTree>
if viFcReturnSuper <> 0
then do :
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
end.
assign vhPersistanceViaFcComponent = vhFcComponent.
assign vcForEachClause = "for each FRWTreeView where FRWTreeView.FRWTreeNode_ID = ":U + string(tqReportTreeRootNode.tiFRWTreeNode_ID)
vcFieldList = "FRWTreeNode_ID":U
vcFieldListDataTypes = "i":U
vcValueList = string(t_sFRWTreeNode.FRWTreeNode_ID).
assign vhFcComponent = vhPersistanceViaFcComponent.
<M-1 run WriteDirect
(input 'FRWTreeView':U (icTableName),
input vcForEachClause (icPrepare),
input vcFieldList (icFieldList),
input vcFieldListDataTypes (icFieldListDataTypes),
input vcValueList (icAbsolute),
input '':U (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in Progress>
assign vcForEachClause = "for each FRWRepMstr where FRWRepMstr.FRWTreeNode_ID = ":U + string(tqReportTreeRootNode.tiFRWTreeNode_ID)
vcFieldList = "FRWTreeNode_ID":U
vcFieldListDataTypes = "i":U
vcValueList = string(t_sFRWTreeNode.FRWTreeNode_ID).
assign vhFcComponent = vhPersistanceViaFcComponent.
<M-60 run WriteDirect
(input 'FRWRepMstr':U (icTableName),
input vcForEachClause (icPrepare),
input vcFieldList (icFieldList),
input vcFieldListDataTypes (icFieldListDataTypes),
input vcValueList (icAbsolute),
input '':U (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in Progress>
empty temp-table tTreeNodeIdCodeList.
create tTreeNodeIdCodeList.
assign tTreeNodeIdCodeList.tiFRWTreeNode_ID = tqReportTreeRootNode.tiFRWTreeNode_ID
tTreeNodeIdCodeList.tlReportNodeIsInTreeList = no.
<M-85 run GetChildNodes
(input tqReportTreeRootNode.tiFRWTreeNode_ID (iiFRWTreeNode_ID),
output viFcReturnSuper (oiReturnStatus)) in BReportTree>
for each tTreeNodeIdCodeList:
vcFreeForm = "for each FRWTreeNode where FRWTreeNode.FRWTreeNode_ID = " + string(tTreeNodeIdCodeList.tiFRWTreeNode_ID).
<M-98 run DataLoad
(input '':U (icRowids),
input '':U (icPkeys),
input '':U (icObjectIds),
input vcFreeform (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BReportTree>
find first tFRWTreeNode where tFRWTreeNode.FRWTreeNode_ID = tTreeNodeIdCodeList.tiFRWTreeNode_ID no-error.
if available tFRWTreeNode then
tFRWTreeNode.tc_Status = "D":U.
end.
end.
find first tAnCodeForUpdateTemp no-error.
if available tAnCodeForUpdateTemp then
do:
/* DataSave BFRWAnCode */
<I-6 {bFcStartAndOpenInstance
&ADD-TO-TRANSACTION = "yes"
&CLASS = "BFRWAnalysisCode"}>
<M-37 run UpdateFRWAnCode
(input tAnCodeForUpdateTemp (tAnCodeforUpdate),
output tFRWAnalysisCodeNew (tFRWAnCodeNew),
input tTreeNodeIdCodeList (tReportTreeDeleteList),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then
do:
<I-14 {bFcCloseAndStopInstance
&CLASS = "BFRWAnalysisCode"}>
return.
end.
else do:
<I-50 {bFcCloseInstance
&CLASS = "BFRWAnalysisCode"}>
end.
end.
end.
<M-97 run AddDetailLine
(input 'FRWTreeNode':U (icTable),
input '' (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BReportTree>
/*
assign t_sFRWTreeNode.tc_Status = "N":U
tFRWTreeNode.tc_Status = "N":U.
*/
assign tFRWTreeNode.FRWTreeNode_ID = t_sFRWTreeNode.FRWTreeNode_ID
t_sFRWTreeNode.Domain_ID = viDomainID.
end.
assign t_sFRWTreeNode.tc_Rowid = tFRWTreeNode.tc_Rowid
t_sFRWTreeNode.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tFRWTreeNode.FRWTreeNode_ID).
/* Assign FRWChart_ID */
<Q-70 run GetFRWChartByCode (all) (Read) (NoCache)
(input t_sFRWTreeNode.FRWTreeNodeFRWChartCode, (ChartCode)
output dataset tqGetFRWChartByCode) in BCubeQuery>
find first tqGetFRWChartByCode no-lock no-error.
if available tqGetFRWChartByCode
then do:
assign t_sFRWTreeNode.FRWChart_ID = tqGetFRWChartByCode.tiFRWChart_ID.
end.
/* Assign FRWAnCode_ID */
<Q-5 run GetFRWAnCodeByCodeAndChartId (all) (Read) (NoCache)
(input t_sFRWTreeNode.FRWTreeNodeCode, (AnCodeCode)
input t_sFRWTreeNode.FRWChart_ID, (ChartId)
output dataset tqGetFRWAnCodeByCodeAndChartId) in BCubeQuery>
find first tqGetFRWAnCodeByCodeAndChartId no-lock no-error.
if available tqGetFRWAnCodeByCodeAndChartId
then do:
assign t_sFRWTreeNode.FRWAnCode_ID = tqGetFRWAnCodeByCodeAndChartId.tiFRWAnCode_ID.
end.
else do:
find first tFRWAnalysisCodeNew where
tFRWAnalysisCodeNew.tiFRWAnChart_ID = t_sFRWTreeNode.FRWChart_ID and
tFRWAnalysisCodeNew.tcAnalysisCode = t_sFRWTreeNode.FRWTreeNodeCode no-error.
if available tFRWAnalysisCodeNew
then do:
assign t_sFRWTreeNode.FRWAnCode_ID = tFRWAnalysisCodeNew.tiFRWAn_ID.
end.
end.
/* Check Print Text Only */
<Q-67 run FRWAnCodeById (all) (Read) (NoCache)
(input t_sFRWTreeNode.FRWAnCode_ID, (FRWAnCode_ID)
output dataset tqFRWAnCodeById) in BFRWAnalysisCode>
find first tqFRWAnCodeById no-error.
if available tqFRWAnCodeById then
do:
if tqFRWAnCodeById.tcFRWAnCodeAnalyseType = {&FRWANALYSISTYPE-TEXT} then
t_sFRWTreeNode.FRWTreeNodeIsTextOnly = yes.
else
t_sFRWTreeNode.FRWTreeNodeIsTextOnly = no.
end.
else do:
find first tFRWAnalysisCodeNew where
tFRWAnalysisCodeNew.tiFRWAn_ID = t_sFRWTreeNode.FRWAnCode_ID no-error.
if available tFRWAnalysisCodeNew
then do:
if tFRWAnalysisCodeNew.tcFRWAnCodeAnalysisType = {&FRWANALYSISTYPE-TEXT} then
t_sFRWTreeNode.FRWTreeNodeIsTextOnly = yes.
else
t_sFRWTreeNode.FRWTreeNodeIsTextOnly = no.
end.
end.
end. /* PROCESSBLOCK */
end.