LN BTLLINE
SN BTSLINE
DD START-LINE(2.0), SCROLL-FLAG(1)
MAINLINE
OPEN SCREEN BTSLINE
OPEN LINK BTLLINE
PRINT SCREEN BTSLINE
READ BTLLINE USING KEY RANGE FROM FIRST TO LAST
PROCESSING IS DELETE-RECS
INPUT SCREEN BTSLINE PRE PROCESS FIELD1, GET-START-LINE
LET L = 1 !line number or key to each record
LET L1 = 0 !line offset or position for printing
DO LOOP UNTIL TERM-KEY = 4
DO GET-DATA
PRINT SCREEN BTSLINE DATA
LINE OFFSET L1
INPUT SCREEN BTSLINE DATA-NAME FIELD2 LINE OFFSET IS L1
POST PROCESS FIELD2, SCROLL
IF TERM-KEY <> 4 AND SCROLL-FLAG <> "X" THEN
ADD BTLLINE USING KEY STR(L:"00000")
DUPLICATE KEY PROCESS IS DUPE-RECORD
LET L = L + 1
DO CLEAR-DATA
IF L1 < 4 THEN
LET L1 = L1 + 1
ELSE
LET L1 = 0
LET L = L - 4
DO INCREMENT-DATA
ENDIF
ENDIF
LET SCROLL-FLAG = ""
ENDLOOP
SCROLL !what type of scrolling to perform
IF TERM-KEY <> 0 THEN
LET SCROLL-FLAG = "X", BTSLINE.FIELD = 99
ENDIF
IF TERM-KEY = -4 THEN !testing for up arrow
DO CLEAR-DATA
IF L1 > 0 THEN
LET L1 = L1 - 1
ELSE
IF L > 1 THEN
LET L = L - 1
DO INCREMENT-DATA
LET L = L - 3
LET L1 = 0
ENDIF
ENDIF
IF L > 1 THEN
LET L = L - 1
ENDIF
ENDIF
IF TERM-KEY = -3 THEN !testing for down arrow
DO CLEAR-DATA
IF L1 < 4 THEN
LET L1 = L1 + 1
LET L = L + 1
ELSE
LET L1 = 0
LET L = L - 3
DO INCREMENT-DATA
ENDIF
ENDIF
IF TERM-KEY = -17 THEN !testing for page up
PRINT SCREEN BTSLINE DATA CLEAR
IF L1 > 0 THEN
LET N = L1
DO CLEAR-DATA
LET L1 = 0
IF L > 1 THEN
LET L = L - N
ENDIF
ELSE
LET L1 = 0
IF L > 5 THEN
LET L = L - 5
DO INCREMENT-DATA
ELSE
LET L = 1
DO LOOP UNTIL L = 5
DO GET-DATA
DO CLEAR-DATA
LET L = L + 1
LET L1 = L1 + 1
ENDLOOP
ENDIF
ENDIF
ENDIF
IF TERM-KEY = -16 THEN !testing for page down
IF L1 >= 0 THEN
LET L1 = 0
DO INCREMENT-DATA
ENDIF
ENDIF
CLEAR-DATA !clears data from specific fields
PRINT SCREEN BTSLINE CLEAR DATA-NAME LIST FIELD3, FIELD4, FIELD5
LINE OFFSET L1
GET-DATA !setting your key equal to
LET BTLLINE = "", FIELD1 = STR(L:"00000") !a specific line#,reading
READ BTLLINE USING KEY FIELD1 !the file and printing the
PRINT SCREEN BTSLINE DATA-NAME LIST FIELD1, FIELD2 !entire record
LINE OFFSET L1
INCREMENT-DATA !increments the line number and line
DO GET-DATA !offset in order to get the corect
DO CLEAR-DATA !record on the correct line.
DO LOOP UNTIL L1 = 4
LET L1 = L1 + 1
LET L = L + 1
DO GET-DATA
DO CLEAR-DATA
ENDLOOP
GET-START-LINE !sets up for correct line and field positioning
LET START-LINE = BTSLINE.LINE, BTSLINE.FIELD = 99
DELETE-RECS !erase the entire file
DELETE BTLLINE USING KEY FIELD1
DUPE-RECORD !allows you to change data records
LET A$ = BTLLINE
CHANGE BTLLINE USING KEY STR(L:"00000")
PROCESSING IS CHANGE-DATA
CHANGE-DATA !performs the change
LET BTLLINE = A$
ENDSCRIPT !end of program