--file: cmd_glcode_breakdown.rmd
--rbse: global
--auth: bachitiea
--crea: 2013-0623
--Environment
SET TRACE ON
CLEAR VAR v%
--CLS
--Variables
SET VAR vGLCode TEXT = NULL
SET VAR vRoundingLevel INTEGER = -3
SET VAR vGLSegment TEXT = NULL
SET VAR vGLSegmentBody TEXT = 'vCOA'
SET VAR vGLSegmentLevel INTEGER = 1
--Value Entry
DIALOG 'Enter a four-digit GL Code' vGLCode =4 vendkey 1 +
CAPTION 'Test Entry'
SET VAR vGLCode INTEGER
LABEL LoopEnter
--Indent
SET VAR vGLSegment = (.vGLSegmentBody + (CTXT(.vGLSegmentLevel)))
SET VAR &vGLSegment INTEGER = (RNDDOWN(.vGLCode,.vRoundingLevel))
--vGlSegment contains the name of the variable holding the value
set var vTmp = ('.' + .vGlSegment)
WRITE &vtmp
IF &vGLSegment = .vGLCode THEN
GOTO LoopExit
ELSE
SET VAR vGLSegmentLevel = (.vGLSegmentLevel + 1)
SET VAR vRoundingLevel = (.vRoundingLevel + 1)
GOTO LoopEnter
ENDIF
--Outdent
LABEL LoopExit
LABEL Exit
--CLEAR VAR v%
RETURN
Dennis McGrath
[email protected]
[email protected]
On Sun, Jun 23, 2013 at 6:41 PM, Bruce A. Chitiea <[email protected]>wrote:
> **
>
> All:
>
> Following is a simple routine to take a four-digit GL Code (ex. 7512) and
> extract GL nesting values into four target variables.
>
> The target variable name vCOAx is a concatenation, allowing incrementing
> with each loop.
>
> Watch variables prove that the ampersanded variable assignment works:
>
> vGLCode = 7512
>
> vCOA1 = 7000
>
> vCOA2 = 7500
>
> vCOA3 = 7510
>
> vCOA4 = 7512
>
> But. The ‘WRITE’ statement, being a testing substitute for saving off the
> values, write out the literal NAME of the variable, not its VALUE:
>
> vCOA1
>
> vCOA2
>
> vCOA3
>
> vCOA4
>
> What am I missing that would write out the variable values, not the
> variable names?
>
> Thanks much
>
> Bruce
>
> --file: cmd_glcode_breakdown.rmd
>
> --rbse: global
>
> --auth: bachitiea
>
> --crea: 2013-0623
>
> --Environment
>
> SET TRACE ON
>
> CLEAR VAR v%
>
> --CLS
>
> --Variables
>
> SET VAR vGLCode TEXT = NULL
>
> SET VAR vRoundingLevel INTEGER = -3
>
> SET VAR vGLSegment TEXT = NULL
>
> SET VAR vGLSegmentBody TEXT = 'vCOA'
>
> SET VAR vGLSegmentLevel INTEGER = 1
>
> --Value Entry
>
> DIALOG 'Enter a four-digit GL Code' vGLCode =4 vendkey 1 +
>
> CAPTION 'Test Entry'
>
> SET VAR vGLCode INTEGER
>
> LABEL LoopEnter
>
> --Indent
>
> SET VAR vGLSegment = (.vGLSegmentBody + (CTXT(.vGLSegmentLevel)))
>
> SET VAR &vGLSegment INTEGER = (RNDDOWN(.vGLCode,.vRoundingLevel))
>
> IF &vGLSegment = .vGLCode THEN
>
> WRITE .vGLSegment
>
> GOTO LoopExit
>
> ELSE
>
> WRITE .vGLSegment
>
> SET VAR vGLSegmentLevel = (.vGLSegmentLevel + 1)
>
> SET VAR vRoundingLevel = (.vRoundingLevel + 1)
>
> GOTO LoopEnter
>
> ENDIF
>
> --Outdent
>
> LABEL LoopExit
>
> LABEL Exit
>
> --CLEAR VAR v%
>
> RETURN
>