IF .vtbrk = 'y' THEN

MIGHT be the problem.  It should read 

  IF vtbrk = 'y' THEN

Ditto for the rest of the code which has dotted variables on the left side
of the operator in IF statements.  TRACE is a bit more fault tolerant than
RBase itself which would explain why TRACE will run it but RBase won't.

The rule of thumb is that dotted variables always appear on the right side
of operators.
_______________________________________
At 10:24 AM 4/27/2001 -0700, you wrote:
>Content-type: text/plain; charset=US-ASCII
>Content-transfer-encoding: 7BIT
>Content-description: Mail message body
>
>I've dotted all my Vars, added indicator vars to fetch statements
>all vars intialized outside of whiles, set whileopt off, increased files
>from 5 to 30 still blows out to "I>" prompt (runs under 
>trace/debugger). If anyone wants to take a minute and peak at the 
>code and see if there is anything I'm missing, I've attached the 
>code ( not sure if list server excepts attachments) the show vars 
>are just for testing program.
>
>
>
>Content-type: text/plain; charset=US-ASCII
>Content-transfer-encoding: 7BIT
>Content-description: Text from file 'loadavg.cmd'
>
>
>*(int. variables
start--------------------------------------------------------------)
>
>SET WHILEOPT OFF
>
>SET VAR vDCT INT
>SET VAR vTCT INT
>SET VAR vSALEX TEXT
>
>SET VAR vBDRD DATE
>SET VAR vEDRD DATE
>
>SET VAR vSD1 date
>SET VAR vED1 date
>SET VAR vSD2 date
>SET VAR vED2 date
>SET VAR vSD3 date
>SET VAR vED3 date
>SET VAR vSD4 date
>SET VAR vED4 date
>SET VAR vSD5 date
>SET VAR vED5 date
>
>SET VAR vCNT1 INT
>SET VAR vCNT2 INT
>SET VAR vCNT3 INT
>SET VAR vCNT4 INT
>SET VAR vCNT5 INT
>SET VAR vCNT6 INT
>
>SET VAR vRDAVG INT
>SET VAR vRDDIFF INT
>SET VAR vLCT INT
>SET VAR vTMPCNT INT
>
>SET VAR vMOVLC TEXT
>
>SET VAR vTES TEXT
>SET VAR vTPP TEXT
>SET VAR vTBRK TEXT
>
>SET VAR vind1 INT
>SET VAR vind2 INT
>
>*(int. variables
end--------------------------------------------------------------)
>
>*(fillin current reload dates
start--------------------------------------------------------------)
>LABEL TOP
>
>*(Enter current reload issue dates)
>CLS
>
>WRITE 'Enter begining Last Call Date for reloads' at 8,15
>FILLIN vBDRD=8 USING 'Enter Begining Date=' at 12,20 WHITE ON BLACK
>
>CLS
>
>WRITE 'Enter Ending Last Call Date for reloads' at 8,15
>FILLIN vEDRD=8 USING 'Enter Ending Date=' at 12,20 WHITE ON BLACK
>
>CLS
>
>WRITE 'BEGINING DATE=' at 10,20
>SHOW VAR vBDRD at 10,36
>WRITE 'thru' at 11,38
>WRITE 'ENDING DATE=' at 12,20
>SHOW VAR vEDRD at 12,36
>
>FILLIN vTES=1 USING 'Enter to continue, N to reset, Q to Quit= ' at 17,20 +
>  WHITE ON BLACK
>
>IF .vTES EQ 'N' THEN
> CLS
> GOTO TOP
>ENDIF
>
>IF .vTES EQ 'Q' THEN
> CLS
> GOTO BOTTOM
>ENDIF
>
>*(fillin current reload dates
end--------------------------------------------------------------)
>
>
>*(Figure future RELOAD DATE SPANS FOR THE NEXT 5 WEEKS)
>SET VAR vSD1 = (ADDDAY(.vBDRD,7))
>SET VAR vED1 = (ADDDAY(.vEDRD,7))
>
>SET VAR vSD2 = (ADDDAY(.vBDRD,14))
>SET VAR vED2 = (ADDDAY(.vEDRD,14))
>
>SET VAR vSD3 = (ADDDAY(.vBDRD,21))
>SET VAR vED3 = (ADDDAY(.vEDRD,21))
>
>SET VAR vSD4 = (ADDDAY(.vBDRD,28))
>SET VAR vED4 = (ADDDAY(.vEDRD,28))
>
>SET VAR vSD5 = (ADDDAY(.vBDRD,35))
>SET VAR vED5 = (ADDDAY(.vEDRD,35))
>
>*(figure future RELOAD DATE SPANS
end--------------------------------------------------------------)
>*(Declare cursors
start--------------------------------------------------------------)
>
>
>*(FIND OUT WHAT SALES# ARE IN THIS WEEKS ISSUE AND ARE DUE RELOADS)
>DECLARE XX1 CURSOR FOR select distinct csales# from customer where lcdate
>= .vBDRD and lcdate <= .vEDRD +
>AND STATUS IS NULL AND PDSTATUS IS NOT NULL
>
>*(cursor for current week reload issue)
>DECLARE movload CURSOR FOR SELECT CUSTID FROM CUSTOMER WHERE CSALES# =
.vsalex AND STATUS IS NULL +
>and pdstatus is not null and lcdate >= .vBDRD and lcdate <= .vEDRD
>
>*(cursor for next future  week reload issue)
>DECLARE futload CURSOR FOR SELECT CUSTID FROM CUSTOMER WHERE CSALES# =
.vsalex AND STATUS IS NULL +
>and pdstatus is not null and lcdate >= .vSD1 and lcdate <= .vED1
>
>*(Declare cursors
end--------------------------------------------------------------)
>
>
>OPEN XX1
>FETCH XX1 INTO vSALEX INDICATOR vind1
>
>
>*(Outside WHiles Loop
start--------------------------------------------------------------)
>
>  *(while loop will process one sales# at a time)
> WHILE SQLCODE <> 100 THEN
> 
>  *(Calculate total reloads to be issued for each week for current sales#)
>  COMPUTE vCNT1 AS COUNT CUSTID FROM CUSTOMER WHERE STATUS IS NULL AND
PDSTATUS IS NOT NULL AND +
>          LCDATE >= .vBDRD AND LCDATE <= .vEDRD AND CSALES# = .vSALEX
>  COMPUTE vCNT2 AS COUNT CUSTID FROM CUSTOMER WHERE STATUS IS NULL AND
PDSTATUS IS NOT NULL AND +
>          LCDATE >= .vSD1 AND LCDATE <= .vED1 AND CSALES# = .vSALEX
>  COMPUTE vCNT3 AS COUNT CUSTID FROM CUSTOMER WHERE STATUS IS NULL AND
PDSTATUS IS NOT NULL AND +
>          LCDATE >= .vSD2 AND LCDATE <= .vED2 AND CSALES# = .vSALEX
>  COMPUTE vCNT4 AS COUNT CUSTID FROM CUSTOMER WHERE STATUS IS NULL AND
PDSTATUS IS NOT NULL AND +
>          LCDATE >= .vSD3 AND LCDATE <= .vED3 AND CSALES# = .vSALEX
>  COMPUTE vCNT5 AS COUNT CUSTID FROM CUSTOMER WHERE STATUS IS NULL AND
PDSTATUS IS NOT NULL AND +
>          LCDATE >= .vSD4 AND LCDATE <= .vED4 AND CSALES# = .vSALEX
>  COMPUTE vCNT6 AS COUNT CUSTID FROM CUSTOMER WHERE STATUS IS NULL AND
PDSTATUS IS NOT NULL AND +
>          LCDATE >= .vSD5 AND LCDATE <= .vED5 AND CSALES# = .vSALEX
>
>  *(Get average reload issue )
>  SET VAR vRDAVG = (LAVG(.vCNT1,.vCNT2,.vCNT3,.vCNT4,.vCNT5,.vCNT6))
>  SET VAR vRDDIFF = (.vRDAVG - .vCNT1)
>
>  *(--------------------------------------------------------------)
>
>  *(If current issue is larger than average)
>  *(Move from current to future)
>  IF 0 > .vRDDIFF THEN
>
>      SHOW VAR vSALEX
>      SHOW VAR vCNT1
>      SHOW VAR vCNT2
>      SHOW VAR vCNT3
>      SHOW VAR vCNT4
>      SHOW VAR vCNT5
>      SHOW VAR vCNT6
>      SHOW VAR vRDAVG
>      SHOW VAR vRDDIFF
>      write 'Move from current TO FUTURE'
>      pause
>
>      SET VAR vTCT = 0
>      SET VAR vDCT = 0
>      SET VAR vTMPCNT = (.vCNT1 / .vRDDIFF)
>      SET VAR vLCT = (ABS(.vTMPCNT))
>
>      SHOW VAR vLCT
>      PAUSE
>
>      OPEN movload RESET
>
>      FETCH movload into vMOVLC INDICATOR vind2
>
>        WHILE SQLCODE <> 100 THEN
>
>            IF vDCT = .vLCT THEN
>
>*(This is the IF statement that keeps having problems)
>
>              *(final code will have an update here)
>              SET VAR vTCT = (.vTCT + 1)
>              SET VAR vDCT = 0
>
>            ENDIF
> 
>            SET VAR vDCT = (.vDCT + 1)
>
>            FETCH movload into vMOVLC INDICATOR vind2
>        ENDWHILE
>
>    SHOW VAR vTCT
>    PAUSE
>
>  ENDIF
>  *(--------------------------------------------------------------)
>
>  *(If current issue is smaller than average)
>  *(Move from future to current)
>
>
>  IF 0 < .vRDDIFF THEN
>      SHOW VAR vSALEX
>      SHOW VAR vCNT1
>      SHOW VAR vCNT2
>      SHOW VAR vCNT3
>      SHOW VAR vCNT4
>      SHOW VAR vCNT5
>      SHOW VAR vCNT6
>      SHOW VAR vRDAVG
>      SHOW VAR vRDDIFF
>      write 'Move from Future to current'
>      pause
>
>      SET VAR vTCT = 0
>      SET VAR vDCT = 0
>      SET VAR vLCT = (.vCNT2 / .vRDDIFF)
>
>      SHOW VAR vLCT
>      PAUSE
>
>      OPEN futload RESET
>
>      FETCH futload into vMOVLC INDICATOR vind2
>
>        WHILE SQLCODE <> 100 THEN
>
>          IF vDCT = .vLCT THEN
>
>*(This is the IF statement that keeps having problems)
>            *(final code will have an "update here")
>            SET VAR vTCT = (.vTCT + 1)
>            SET VAR vDCT = 0
>
>          ENDIF
> 
>          SET VAR vDCT = (.vDCT + 1)
>
>          FETCH futload into vMOVLC INDICATOR vind2
>        ENDWHILE
>
>    SHOW VAR vTCT
>    PAUSE
>
>  ENDIF
>
>  *(--------------------------------------------------------------)
>
>
>  WRITE 'break out of while'
>  FILLIN vtbrk=2 USING 'Enter y to break'
>
>  IF .vtbrk = 'y' THEN
>    break
>  ENDIF
>
>
>  FETCH XX1 INTO vSALEX INDICATOR vind1
> ENDWHILE
>
>*(Outside While Loop
end--------------------------------------------------------------)
>
>DROP CURSOR XX1
>DROP CURSOR movload
>DROP CURSOR futload
>
>
>label bottom
>
>CLEAR VAR vDCT vSALEX vTCT vBDRD vEDRD vTES vTPP vSD1 vED1 vSD2 vED2 vSD3
vED3 vSD4 vED4 vSD5 vED5 +
>          vCNT1 vCNT2 vCNT3 vCNT4 vCNT5 vCNT6 vRDAVG vRDDIFF vLCT vTMPCNT
vTBRK vind1 vind2
>
>RETURN
>

Reply via email to