project QadFinancials > class TFRWTreeView > method CreateTempTableBeforeAddNode


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method TFRWTreeView.GetFRWTreeLevel2Node
method TFRWTreeView.GetFRWTreeLevel3Node


program code (program1/tfrwtreeview.p)

/* ================================================================= */
/* Caculate quarters                                                 */
/* ================================================================= */
assign vifromyearlength = 0
         vitoyearlength = 0.
for each frwcubeperiod where frwcubeperiod.frwcubeperiodfrwcubecode = frwcube.frwcubecode and
			 frwcubeperiod.frwcubeperiodreportyear = vifromreportyear no-lock:
  if frwcubeperiod.FRWCubePeriodReportPerInt > vifromyearlength then assign vifromyearlength = frwcubeperiod.FRWCubePeriodReportPerInt.
end.
for each frwcubeperiod where frwcubeperiod.frwcubeperiodfrwcubecode = frwcube.frwcubecode and
			 frwcubeperiod.frwcubeperiodreportyear = vitoreportyear no-lock:
  if frwcubeperiod.FRWCubePeriodReportPerInt > vitoyearlength then assign vitoyearlength = frwcubeperiod.FRWCubePeriodReportPerInt.
end.

if vifromyearlength > 10 and
   vifromyearlength < 15 and
   vifromreportperiod <> 0 then do:
		assign vifromquarter = if vifromreportperiod < 4 then 1
						else if vifromreportperiod < 7 then 2
							else if  vifromreportperiod < 10 then 3
								else 4.
end.
else
	if vifromyearlength = 4 and
		vifromreportperiod <> 0 then do:
			assign vifromquarter = vifromreportperiod.
	end.
	else assign vifromquarter = 0.
	
if vitoyearlength > 10 and
   vitoyearlength < 15 and
	vitoreportperiod <> 0 then do:
		assign vitoquarter = if vitoreportperiod < 4 then 1
					else if vitoreportperiod < 7 then 2
						 else if vitoreportperiod < 10 then 3
							else 4.
end.
else
	if vitoyearlength = 4 and
		vitoreportperiod <> 0 then do:
			assign vitoquarter = vitoreportperiod.
	end.
	else assign vitoquarter = 0.

/* ================================================================= */
/* Create tCols                                                      */
/* ================================================================= */
  empty temp-table tPerrange.
  empty temp-table tCols.

  create tCols.
  assign tCols.tiseq = 1
	  tCols.tcmeas = "OPEN"
	  tCols.tclabel = "OPENING BALANCE"
	  tCols.tifromyear = vifromreportyear
	  tCols.tifromperiod = vifromreportperiod
	  tCols.titoyear = vitoreportyear
	  tCols.titoperiod = vitoreportperiod.
  if viAmountInView = 2 then assign tCols.tcmeas = "OPBC".
  create tCols.
  assign tCols.tiseq = 2
	  tCols.tcmeas = "ACTDR"
	  tCols.tclabel = "ACTIVITY DEBIT"
	  tCols.tifromyear = vifromreportyear
	  tCols.tifromperiod = vifromreportperiod
	  tCols.titoyear = vitoreportyear
	  tCols.titoperiod = vitoreportperiod.
  if viAmountInView = 2 then assign tCols.tcmeas = "ABCDR".
  create tCols.
  assign tCols.tiseq = 3
	  tCols.tcmeas = "ACTCR"
	  tCols.tclabel = "ACTIVITY CREDIT"
	  tCols.tifromyear = vifromreportyear
	  tCols.tifromperiod = vifromreportperiod
	  tCols.titoyear = vitoreportyear
	  tCols.titoperiod = vitoreportperiod.
  if viAmountInView = 2 then assign tCols.tcmeas = "ABCCR".
  create tCols.
  assign tCols.tiseq = 4
	  tCols.tcmeas = "CLOSE"
	  tCols.tclabel = "CLOSING BALANCE"
	  tCols.tifromyear = vifromreportyear
	  tCols.tifromperiod = vifromreportperiod
	  tCols.titoyear = vitoreportyear
	  tCols.titoperiod = vitoreportperiod.
  if viAmountInView = 2 then assign tCols.tcmeas = "CLOBC".
  assign viColDetSeq = 4.

/* ================================================================= */
/* Create tPrerange                                                  */
/* ================================================================= */
assign viperrangeseqs = 0.
for each tCols:
/*
   if tCols.tifromyear = tCols.titoyear then do:
	  find  tPerrange where
			  tPerrange.tiyear = tCols.tifromyear and
			  tPerrange.tifromperiod = tCols.tifromperiod and
			  tPerrange.titoperiod = tCols.titoperiod no-error.
		 if not available tPerrange then do:
		 assign viperrangeseqs = viperrangeseqs + 1.
		 create tPerrange.
		 assign tPerrange.tiyear = tCols.tifromyear
					 tPerrange.tifromperiod = tCols.tifromperiod
				 tPerrange.titoperiod = tCols.titoperiod
				tPerrange.tiperrangeseq = viperrangeseqs
				tCols.tiperrangeseq1 = viperrangeseqs.
	  end.
	  else tCols.tiperrangeseq1 = tPerrange.tiperrangeseq.
   end.
   else do:
	  find  tPerrange where
			  tPerrange.tiyear = tCols.tifromyear and
			  tPerrange.tifromperiod = tCols.tifromperiod and
			  tPerrange.titoperiod = vifromyearlength no-error.
		 if not available tPerrange then do:
		 assign viperrangeseqs = viperrangeseqs + 1.
		 create tPerrange.
		 assign tPerrange.tiyear = tCols.tifromyear
					 tPerrange.tifromperiod = tCols.tifromperiod
				 tPerrange.titoperiod = vifromyearlength
				tPerrange.tiperrangeseq = viperrangeseqs
				tCols.tiperrangeseq1 = viperrangeseqs.
	  end.
	  else tCols.tiperrangeseq1 = tPerrange.tiperrangeseq.
	  find  tPerrange where
			  tPerrange.tiyear = tCols.titoyear and
			  tPerrange.tifromperiod = 1 and
			  tPerrange.titoperiod = tCols.titoperiod no-error.
		 if not available tPerrange then do:
		 assign viperrangeseqs = viperrangeseqs + 1.
		 create tPerrange.
		 assign tPerrange.tiyear = tCols.titoyear
					 tPerrange.tifromperiod = 1
				 tPerrange.titoperiod = tCols.titoperiod
				tPerrange.tiperrangeseq = viperrangeseqs
				tCols.tiperrangeseq2 = viperrangeseqs.
	  end.
	  else tCols.tiperrangeseq2 = tPerrange.tiperrangeseq.
   end.
*/
    do with viTeller = tCols.tiFromyear to tCols.tiToyear:
        if viTeller = tCols.tiFromyear then
            assign viFromPerRange = tCols.tiFromperiod.
        else assign viFromPerRange = 1.
        if viteller = tCols.tiToyear then 
            assign viToPerRange = tCols.tiToperiod.
        else assign viToPerRange = viFromyearLength.
        find tPerrange where
            tPerrange.tiYear = viTeller and
            tPerrange.tiFromperiod = viFromPerRange and
            tPerrange.tiToperiod = viToPerRange no-error.
        if not available tPerrange then do:
            assign viPerrangeSeqs = viPerrangeSeqs + 1.
            create tPerrange.
            assign tPerrange.tiYear = viTeller
                   tPerrange.tiFromperiod = viFromPerRange
                   tPerrange.tiToperiod = viToPerRange
                   tPerrange.tiPerrangeSeq = viPerrangeSeqs.
        end.
        create tColPer.
        assign tColPer.tiColSeq = tCols.tiSeq
               tColPer.tiPerSeq = tPerrange.tiPerrangeSeq.
    end.
end. /* for each tCols */