$_asdtxt This report displays a portfolio's Monthly, Quarterly, or Yearly Balances by Asset Class $gline ; cfuse y rsetup pennies showai fxflip slines n $zero 0 #freq 1 #amttype 1 management DIALOG ASCG_TEXT ASCG_PORT ACC %date1, ADDS_EDIT,, "Begin Date" 8 6 ACC %cutdate, ADDS_EDIT, [CHK] Z, "End Date " 8 6 ACC #freq, ADDS_RADIO, "1", "&Monthly" "Balance Frequency", 20 3 ACC #freq, ADDS_RADIO, "2", "&Quarterly" ACC #freq, ADDS_RADIO, "3", "&Annually" ACC #amttype, ADDS_RADIO, "1", "&Dollars" "Show Balances in:", 20 2 ACC #amttype, ADDS_RADIO, "2", "&Percent" ASCG_OKCAN ASCG_CONSOLIDATE ASCG_BROWSE ASCG_SENS END endmonth #date1 endmonth #cutdate comma y $title BALANCES BY ASSET CLASS $name2 ? $name3 ? ;$dcf Discounted Cash Flow Method $yldmeth n $prop ?y??????? #zero 0 #one 1 #hundred 100 #minus -1 $tot tot $star * $totportt Total Portfolio $totport totport $seven x ; seven blanks, half of column width $seven $1seven $leftmar; will add to leftmar as number of columns increases ;set #numcol and #numcls #numcol 0 $_class class000 label x;========================================================================= $class $:curclass if $class " " =*! #numcol #numcol 1+ $$_class $class bump $_class $leftmar $leftmar$seven goto x $leftmar $7leftmar #numcls #numcol #numcol #numcol 1+; plus totals column #width #numcol 16* 20+ 30+ ;#width #numcol 14* 20+ format c #width $_culine x -------------------; ;$_culine x -------------; $_culine $1_culine; column underlines ;~xxxxxxxxxxxx20xxxxxx~ ~ ~ ~ ~ ~ ~ ~ ~xxxxxxxxxxxx20xxxxxx~ ~ ~ ~ ~ ~ ~ ~ $period ITD #savdat1 #date1 load cli ?y* "ep pbreak head if $firm "" =*! .$^firm\n if #freq 1 = cvt $title MONTHLY $title else if #freq 2 = cvt $title QUARTERLY $title else cvt $title ANNUAL $title .$^title\n .$^name\n if $name2 "?" =*! .$^name2\n if $name3 "?" =*! .$^name3\n cvt $h From %date1 to %cutdate .$^h\n cvt $filenm ($:fileo) .$^filenm\n .\n\n .~ label y if $:curclass " " =*! . $^20:cclass goto y . $^13totportt\n call u; print underlines .\n\n head #_stdate #stdate call g_newlabel ;================================================================================ label a_another period;======================================================== if $period "ITD" =* if #date1 #stdate <= #date1 #stdate cvt $period %date1 #_date0 #date1 #_date1 #cutdate oneside n cfperiod #date1 #cutdate lump #date1 sum #date1 perf $acb split y movdate1 y #_igdate #date1 1- endmonth #_igdate iread sec.inf pread 1 #cutdate ext .cli $file $:file #gmval1 #zero #_ccdate1 #date1 get * ?y* "ep;$_file ?y* "ep #date1 #_ccdate1 if #stdate #date1> goto s_next cli iread sec.inf pread 1 #cutdate #x #date1 endmonth +#x call p_Init row vars ;================================================================================ label i; for each asset class;=================================================== $class $:curclass if $class " " =* goto j; break out of asset class loop call q_Clear row vars $whichty $prop$star load type $whichty if $:bysl "y" =* call b_bysl else if $:iscash "y" =* call c_cash else call d_kurr next type call k_Bump row vars goto i; next asset class ;================================================================================ label j; process data prior to printing;========================================= ;row vars now point to total portfolio call r_Dup current row vars call q_Clear row vars call p_Init row vars #c #numcls ;================================================================================ label Next asset class;========================================================== ;add asset class columns to form total portfolio column #$__mval1 #$__mval1 #$_mval1 + cvt $var tot%date1 #$var #$__mval1 ;screen ;.$_mval1 $__mval1 $var #$var\n ;screen #c #c #minus + if #c #zero > call k_Bump row vars goto Next asset class call p_Init row vars #c #numcol $_class class000 ;================================================================================ label f_other class;=========================================================== #c #c #minus + if #c #zero > $$category $$_class #$tdate1 #date1 #$tmval1 #$_mval1 $$tperiod $period call h_bump labels bump $_mval1 bump $_class goto f_other class $$category totport #$tdate1 #date1 #$tmval1 #$_mval1 $$tperiod $period call h_bumplabel endmonth +#date1 #x #date1 31 % ;screen ;.x=#x\n ;screen if #x 30 =! ;not a month-end #date0 30 #x- #date1+ ;set next date to month-end after first date entered else if #freq 1 = #date0 #date1 31+ else if #freq 2 = #date0 #date1 93+ else #date0 #date1 372+ #date1 #date0 endmonth #date1 ;screen ;.date1=%date1\n ;screen if #date1 #cutdate > goto s_next cli dealloc goto a_another period label s_next cli;============================================================== oneside y perf n split n #date1 #savdat1 if $category "cat000" =*! $$category finished call g_newlabel $perprint zzz call e_print results $period ITD $name2 ? $name3 ? lump #zero sum #zero next cli fclose slines n end ;******************************************************************************** label e_print results;========================================================= sline n undeferr n if $$tperiod $perprint =*! . %4$tdate1~ $perprint $$tperiod if #amttype 2 = ;percentages cvt $var tot%$tdate1 #pct #$tmval1 #$var / 100* .#~2pct else .#~2$tmval1 if $$category "totport" =* .\n cvt $date #$tdate1 #dateb #$tdate1 call h_bumplabel if $$category "finished" =*! #datea #$tdate1 if #datea #dateb =! cvt $cdate2 #dateb goto e_print results undeferr y return from e_print resutls ;=========================================================================== label u_print #numcol underlines;================================================ .~ #j 0 label v if #j #numcol < .$_culine #j #j 1+ goto v return ;================================================================================ label c_cash;====================================================================== load tran if $:aclass $class =*! goto o not in class #$_mval1 #$_mval1 #:bucks+~ label o not in class next tran return ;================================================================================ label d_kurr ****************************************************************** load tran if $:aclass $class =*! goto m not in class #mval1 #::mzal0 #::ai0 +~ #$_mval1 #$_mval1 #mval1+~ label m not in class next tran return ;================================================================================ label b_bysl;====================================================================== load tran if $:aclass $class =*! goto not in class #mval1 #::mzal0 #::ai0 +~ #$_mval1 #$_mval1 #mval1+~ label not in class next tran return ;================================================================================ label p_Init row vars;======================================================== $_mval1 _mval1a return ;================================================================================ label q_Clear row vars;======================================================= #$_mval1 #zero return ;================================================================================ label k_Bump row vars bump $_mval1 return ;************************************************** label r_Dup current row vars $__mval1 $_mval1 return ;********************************************* label g_newlabel $category cat000 $tdate1 dat000 $tmval1 val1000 $tperiod tperiod000 return from g_newlabel ;********************************************* label h_bumplabel bump $category bump $tdate1 bump $tmval1 bump $tperiod return from h_bumplabel ;************************************************ label Z Check Dates $_chkid ; $_chkmsg ; endmonth +#cutdate endmonth +#date1 ;endmonth +#date1 ;#x1 #date1 31 % ;#x2 #cutdate 31 % #diff #cutdate #date1 - ;screen ;.cutdate=%4cutdate date1=%4date1 diff=#diff x1=#x1 x2=#x2\n ;screen #diff #cutdate #date1 - if #freq 1 = #diff 31 < & $_chkmsg Date range must be at least 1 month if #freq 2 = #diff 93 < & $_chkmsg Date range must be at least 1 quarter if #freq 3 = #diff 372 < & $_chkmsg Date range must be at least 1 year return trailer