home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Share Gallery 1
/
share_gal_1.zip
/
share_gal_1
/
DB
/
DB009B.ZIP
/
1.ZIP
/
III_OVL3.PRG
< prev
next >
Wrap
Text File
|
1989-09-29
|
24KB
|
941 lines
************************************************************
* III_INIT *
************************************************************
PROCEDURE III_INIT
*************************************************************************
*
* (c) COPYRIGHT 1987,1988 I on I Computer Solutions, Inc. All Rights Reserved
*
**************************************************************************
* III_INIT
* INITIAL VARIABLES
CLEAR
SET TALK OFF
SET EXCLUSIVE ON
SET MEMO TO 75
SET SAFE OFF
SET ESCAPE OFF
CLEAR
SET ESCAPE OFF
@ 0,1 SAY "(c) Copyright 1987-1989 I on I Computer Solutions, Inc. All Rights Reserved"
@ 1,0 SAY "═══════════════════════════════════════════════════════════════════════════════"
TEXT
1 on 1 = 3!! can only be distributed by authorized vendors. By our
distributing though these vendors you can determine if 1 on 1 = 3!! is
useful at a nominal fee.
Many companies provide you with crippled copies of their software. They
might limit you to 1000 or or even 100 records. We limit you to 1 BILLION
records. There are no artificial limits in your copy of 1 on 1 = 3!!.
If you do find 1 on 1 = 3!! useful, we request that you register your copy
for only $69. Besides the use of a programmable, relational database
management system that is fully dBASE III PLUS compatible, registration
will bring you the following benefits:
> The most current version of the software.
> Free upgrades for one year.
> Free technical support for one year.
> Discounts on other software we sell.
Register by phone at 203-375-0914 or use the order form 'ORDER'. To print
this form type COPY ORDER PRN. We take Visa, Mastercard or American
Express.
ENDTEXT
* ?? MAKE SURE ALL FILES AVAIBLE
PUBLIC III_MAXDB, III_MAXDOS, III_DBL, III_DBP, III_DOSL, III_DOSP, III_PROMPT ;
III_HFILE, III_HIDX1, III_HIDX2, III_HOUT, III_HREAD, III_ASSI, III_DOT
PUBLIC MAX_MACC, III_MDBF, III_MIDX, III_MMEM, III_MFAST, III_MGROUP, ;
III_HSET, III_USERPA, III_READON, III_MAXLIN, III_DIR
PUBLIC III_COLOR1, III_COLOR2, III_MONO, III_HFAST, III_NHTOP, III_DESCRW, ;
III_COMPON, III_SEL, III_READ, III_HELPON, III_FAST, III_FASTA, I_RNUM
PUBLIC I_RKEY(6), I_RLINK(6), I_RINDEX(6)
PUBLIC III_MASTER, III_PFOUND, III_TIMCOM, III_TIMMEN
III_TIMCOM = 0
III_TIMMEN = 0
III_MASTER = .F.
III_PFOUND = .T.
III_FAST = .T.
III_FASTA = ' '
III_SEL = ' '
* SAVE CURRENT DIRECTORY
iii_error = .F.
on error do iii_eswi
SET CONSOLE OFF
RUN CD > III_TMP.OUT
SET CONSOLE ON
IF III_ERROR
III_DIR = ''
ELSE
SELECT 0
USE III_ADD
ZAP
APPEND FROM III_TMP.OUT SDF
GO TOP
III_DIR=TRIM(III_INSTR)
IF SUBSTR(III_DIR,LEN(III_DIR),1) <> '\'
III_DIR = III_DIR + '\'
ENDIF
ENDIF
ON ERROR
* OPEN THE SYSTEM FILE
USE III_SYS.FOX
III_READ = LREAD_ONLY
III_COLOR1 = COLOR_STAN
III_COLOR2 = COLOR_ENHA
III_MONO = LMONOCHROM
III_MAXLIN = MAX_CODE
III_COMPON = LCOM_SAVE
III_DESCRW = DESC_LINE && LINE TO PUT THE DESCRIPTION ON
III_HFILE = III_DIR+HELP_DBF && THE HELP DATABASE
III_HIDX1 = III_DIR+HELP_IDX1 && THE HELP INDEX 1
III_HIDX2 = III_DIR+HELP_IDX2 && THE HELP INDEX 2
III_HTOPIC = HELP_TOPIC && THE HELP TOPIC FILE
III_HFAST = LFAST_HELP && FAST HELP?
III_HOUT = III_DIR+'III_HOUT.TXT' && THE ALTERNATE FILE USED BY HELP
III_HREAD = III_DIR+'III_HPRT' && THE HELP DATABASE FOR BROWSING
III_MAXDB = MAX_DBLINE && NUMBER OF LINES SAVED AT DOT PROMPT
III_PROMPT = TRIM(PROMPT)+' '
III_MAXDOS = MAX_DOSLIN && NUMBER OF LINES SAVE AT DOS
III_USERPA = LUSER_PASS && IS THERE A USER PASSWORD
III_READON = LREAD_ONLY && IS IT READ ONLY
MAX_MACC = MAX_MACRO && NUMBER MACROS ALLOWED
III_MDBF = III_DIR+MENU_DBF && MENU DATA BASE
III_MIDX = III_DIR+MENU_IDX && MENU INDEX FILE
III_MMEM = III_DIR+MENU_MEM && MENU MEMORY FILE
III_MFAST = LMENU_MEM && TAKE MENU FROM MEMORY FILE
III_MGROUP = MENU_GROUP && NUMBER GROUPS IN MENU
USE
PUBLIC III_DBLINE(III_MAXDB), III_DOSLINE(III_MAXDOS)
III_DBL = 0
III_DBP = 1
III_DOSL = 0
III_DOSP = 1
III_DBLINE = ' '
III_DOSLINE = ' '
III_ASSI = .F. && IN ASSIST MODE
III_HSET = 'START'
III_DOT = .F. && IN DOT PROMPT MODE
* CHECK IF THE HELP FILE IS THERE
IF .NOT. FILE(III_HFILE+'.DBF')
?
? 'Help file not found, there will be no help'
?
III_HELPON = .F.
ELSE
III_HELPON = .T.
* GET IN THE HELP PROMPTS
USE &III_HTOPIC
GO TOP
III_NHTOP = RECCOUNT()
PUBLIC III_HTOP(III_NHTOP)
III_I = 1
DO WHILE III_I <= III_NHTOP
III_HTOP(III_I) = III_HELP2
SKIP
III_I = III_I + 1
ENDDO
USE
SELECT 9
USE &III_HFILE INDEX &III_HIDX1, &III_HIDX2
ON KEY = 315 DO III_HELP
ENDIF
LOAD III_CD
* PICK UP IF PROGRAM TO RUN
PUBLIC III_RUNPROG
IF FILE('III_RUN.TXT')
USE III_ADD
ZAP
APPEND FROM III_RUN.TXT SDF
GO TOP
III_RUNPROG=TRIM(III_INSTR)
ELSE
III_RUNPROG = 'ECHO is off'
ENDIF
* GO TO THE DIRECTORY THIS WAS STARTED FROM
IF FILE('III_BACK.TXT')
USE III_ADD
ZAP
APPEND FROM III_BACK.TXT SDF
IF LEN(LTRIM(RTRIM(III_INSTR))) > 1
ERASE III_BACK.TXT
III_TMP = SUBSTR(III_INSTR,1,2)
RUN &III_TMP
III_TMP = SUBSTR(III_INSTR,1,1)
SET DEFAULT TO &III_TMP
III_TMP = TRIM(SUBSTR(III_INSTR,3))
* RUN CD &III_TMP
DO III_CD WITH III_TMP
ENDIF LEN(LTRIM(RTRIM(III_STR))) > 1
ENDIF FILE('III_BACK')
USE
************************************************************
* III_DOS *
************************************************************
PROCEDURE III_DOS
*************************************************************************
*
* (c) COPYRIGHT 1987 I on I Computer Solutions, Inc. All Rights Reserved
*
**************************************************************************
* QC_DOS.PRG
* EXECUTE A DOS COMMAND
PRIVATE COMMAND, DIRECTION, MORE, KQ
STORE ' ' TO COMMAND
STORE ' ' TO DIRECTION
CLEAR
SET COLOR TO W/N,W/N
MORE=.T.
DO WHILE MORE
DO CASE
CASE DIRECTION = 'U'
III_DOSP=III_DOSP-1
IF III_DOSP < 1
III_DOSP = III_MAXDOS
ENDIF III_DOSP < 1
COMMAND = III_DOSLINE(III_DOSP)
CASE DIRECTION = 'D'
III_DOSP=III_DOSP+1
IF III_DOSP > III_MAXDOS
III_DOSP = 1
ENDIF III_DOSP > III_MAXDOS
COMMAND = III_DOSLINE(III_DOSP)
OTHERWISE
III_DOSL=III_DOSL+1
IF III_DOSL > III_MAXDOS
III_DOSL = 1
ENDIF III_DOSL > III_MAXDOS
III_DOSLINE(III_DOSL) = COMMAND
III_DOSP = III_DOSL + 1
COMMAND = ' '
ENDCASE
COMMAND=COMMAND + REPLICATE(' ',200-LEN(COMMAND))
?
RUN CD
DO III_SSEL
SELECT 9
@ 24,0 SAY III_PROMPT GET COMMAND PIC '@S60'
READ
DO III_RSEL
kq = READKEY()
DIRECTION = ' '
DO CASE
CASE kq = 4 .OR. kq = 260 && [UP]
DIRECTION = 'U'
CASE kq = 5 .OR. kq = 261 && [DOWN]
DIRECTION = 'D'
CASE COMMAND = 'QUIT'
MORE = .F.
OTHERWISE
ON ERROR DO III_DBER
?
COMMAND=TRIM(COMMAND)
IF LEN(COMMAND) = 0
MORE = .F.
ELSE
RUN &COMMAND
ENDIF
ENDCASE
ENDDO
ON ERROR
RETURN
************************************************************
* III_HELP *
************************************************************
PROCEDURE III_HELP
*************************************************************************
*
* (c) COPYRIGHT 1987 I on I Computer Solutions, Inc. All Rights Reserved
*
**************************************************************************
* III_HELP
* THE HELP ROUTINE
PRIVATE III_SCR
IF .NOT. III_HELPON
RETURN
ENDIF
SAVE SCREEN TO III_SCR
CLEAR
* TURN OFF THE HELP
DO III_SSEL
ON KEY = 315
SET EXACT OFF
IF III_ASSI
III_TMP = SUBSTR(GROUP(GR),1,1) + ' '
IF SUBSTR(NM(IR),3,1) = '-'
III_HS = III_TMP + SUBSTR(NM(IR),5)
ELSE
III_HS = III_TMP + NM(IR)
ENDIF SUBSTR(NM(IR),3,1) = '-'
III_HS = UPPER(III_HS)
ELSE
SELECT 9
USE &III_HFILE INDEX &III_HIDX1, &III_HIDX2
III_HS = III_HSET
ENDIF
IF III_HFAST
SELECT 9
SET ORDER TO 1
III_HS = III_FILL(III_HS,10)
SEEK III_HS
IF EOF()
FIND START
ENDIF
SET ORDER TO 0
SET MENU OFF
BROW NOAPPEND NOMOD FIELDS III_HELP
III_DBNM=' '
DO WHILE .T.
KEYSTOKESQ = 0
DO III_HPC
IF III_DBNM = ' '
EXIT
ENDIF
III_HS = TRIM(III_DBNM)
IF SUBSTR(III_HS,2,1) = ' '
SET ORDER TO 1
ELSE
SET ORDER TO 2
ENDIF
III_HS = III_FILL(III_HS,25)
SEEK III_HS
IF EOF()
DO III_PRER WITH 'HELP TOPIC NOT FOUND'
ELSE
SET MENU OFF
IF SUBSTR(III_HS,2,1) <> ' '
SET ORDER TO 0
ENDIF
BROW NOAPP NOMOD FIELDS III_HELP
ENDIF
ENDDO
SET ORDER TO 1
ELSE
SELECT 9
USE &III_HFILE INDEX &III_HIDX1, &III_HIDX2
SEEK III_HS
IF EOF()
FIND 'X HELP'
ENDIF
SET CONSOLE OFF
SET ALTER TO &III_HOUT
SET ALTER ON
DISPLAY III_HELP OFF
SET ALTER TO
USE
SELECT 0
USE &III_HREAD
ZAP
APPEND FROM &III_HOUT SDF
SET CONSOL ON
GO TOP
ON KEY = 215
SET MENU OFF
BROW NOMENU NOAPPEND NOMODIFY
USE
ENDIF III_HFAST
ON KEY = 315 DO III_HELP
IF .NOT. III_ASSI
SELECT 9
USE
ENDIF
DO III_RSEL
RESTORE SCREEN FROM III_SCR
************************************************************
* III_CHAR *
************************************************************
PROCEDURE III_CHAR
* III_CHAR
* SET COMPUTER CHARACTERISTICS
CLEAR
SELECT 1
USE &III_DIR.III_SYS.FOX
GO TOP
DO WHILE .T.
ANS = ' '
@ 12,2 SAY 'Enter M for monochrome, C for color' GET ANS
READ
ANS = UPPER(ANS)
IF ANS = 'M' .OR. ANS = 'C'
EXIT
ENDIF
ENDDO
IF ANS = 'M'
REPLACE LMONOCHROM WITH .T.
ELSE
REPLACE LMONOCHROM WITH .F.
ENDIF
III_MONO = LMONOCHROM
DO WHILE .T.
ANS = ' '
@ 14,2 SAY 'Enter R for read only, U for update' GET ANS
READ
ANS = UPPER(ANS)
IF ANS = 'R' .OR. ANS = 'U'
EXIT
ENDIF
ENDDO
IF ANS = 'R'
REPLACE LREAD_ONLY WITH .T.
III_READ = .T.
ELSE
REPLACE LREAD_ONLY WITH .F.
III_READ = .F.
ENDIF
USE
************************************************************
* III_FILL *
************************************************************
PROCEDURE III_FILL
* III_FILL
* FUNCTION TO FILL TO A SIZE WITH BLANKS
PARAMETERS VAR, SIZE
PRIVATE NEW
IF LEN(VAR) >= SIZE
RETURN SUBSTR(VAR,1,SIZE)
ELSE
NEW = VAR+REPLICATE(' ',SIZE-LEN(VAR))
RETURN NEW
ENDIF
************************************************************
* III_HPC *
************************************************************
PROCEDURE III_HPC
*************************************************************************
*
* (c) COPYRIGHT 1987 I on I Computer Solutions, Inc. All Rights Reserved
*
**************************************************************************
* III_HPC
* CHOOSE A HELP ITEM
PRIVATE ROWQ, COLQ, IQ
III_WIDDIR=3
III_DBNM=' '
lisselq=2
fldlimitq = III_NHTOP
CLEAR
iq=1
DO WHILE IQ <= III_NHTOP
rowq=INT((iq-1)/III_WIDDIR)
colq=26*MOD(iq-1,III_WIDDIR)
@ rowq, colq say III_HTOP(iq)
iq=iq+1
ENDDO
*
* --- Create a field list
fieldnoq=1
* --- Pick a field from the list on top
DO WHILE .T.
rowq=INT((fieldnoq-1)/III_WIDDIR)
colq=26*MOD(fieldnoq-1,III_WIDDIR)
IF III_ASSI
III_COLOR = C2(IR)
ELSE
III_COLOR = III_COLOR2
ENDIF
SET COLOR TO &III_COLOR
@ rowq,colq SAY III_HTOP(fieldnoq)
IF III_ASSI
III_COLOR = C1(IR)
ELSE
III_COLOR = III_COLOR1
ENDIF
SET COLOR TO &III_COLOR
SELKEYQ=0
DO WHILE SELKEYQ=0
selkeyq=INKEY()
ENDDO
DO CASE
CASE selkeyq=27 && Exit
III_DBNM = ' '
@ rowq,colq SAY III_HTOP(fieldnoq)
EXIT
CASE selkeyq=4 && [Right]
@ rowq,colq SAY III_HTOP(fieldnoq)
fieldnoq=IIF(fieldnoq<fldlimitq,fieldnoq+1,1)
CASE selkeyq=19 && [Left]
@ rowq,colq SAY III_HTOP(fieldnoq)
fieldnoq=IIF(fieldnoq>1,fieldnoq-1,fldlimitq)
CASE selkeyq=5 && [Up]
@ rowq,colq SAY III_HTOP(fieldnoq)
fieldnoq=IIF(fieldnoq>III_WIDDIR,fieldnoq-III_WIDDIR,(INT((fldlimitq-1)/III_WIDDIR)*III_WIDDIR)+fieldnoq)
fieldnoq=IIF(fieldnoq>fldlimitq,fieldnoq-III_WIDDIR,fieldnoq)
CASE selkeyq=24 && [Down]
@ rowq,colq SAY III_HTOP(fieldnoq)
fieldnoq=IIF(fieldnoq<=fldlimitq-III_WIDDIR,fieldnoq+III_WIDDIR,fieldnoq-(INT((fldlimitq-1)/III_WIDDIR)*III_WIDDIR))
fieldnoq=IIF(fieldnoq<1,fieldnoq+III_WIDDIR,fieldnoq)
CASE selkeyq=13 && Select Field
III_DBNM=III_HTOP(fieldnoq)
@ rowq,colq SAY III_HTOP(fieldnoq)
EXIT
CASE selkeyq=1 && [Home]
@ rowq,colq SAY III_HTOP(fieldnoq)
fieldnoq=1
CASE selkeyq=6 && [End]
@ rowq,colq SAY III_HTOP(fieldnoq)
fieldnoq=fldlimitq
OTHERWISE
III_MAT=CHR(SELKEYQ)
IF SELKEYQ > 60 .AND. SELKEYQ < 123
III_MAT = UPPER(III_MAT)
ENDIF
III_I=FIELDNOQ+1
IF III_I > FLDLIMITQ
III_I=1
ENDIF
*SUSPEND
DO WHILE III_I <> FIELDNOQ
IF SUBSTR(III_HTOP(III_I),1,1) = III_MAT
@ ROWQ,COLQ SAY III_HTOP(FIELDNOQ)
FIELDNOQ=III_I
EXIT
ENDIF
III_I=III_I+1
IF III_I > FLDLIMITQ
III_I=1
ENDIF
ENDDO
ENDCASE
ENDDO
************************************************************
* III_CD *
************************************************************
PROCEDURE III_CD
parameter dir
call iii_cd with dir
return
************************************************************
* III_PAUS *
************************************************************
PROCEDURE III_PAUS
* iii_paus
* pause routine
PARAMETER SECONDS
PRIVATE START, STOP, III
START = VAL(SYS(2))
STOP = START + SECONDS
START = 0
DO WHILE START < STOP
IF FILE('3!!.ON')
EXIT
ENDIF
START = VAL(SYS(2))
ENDDO
RETURN
************************************************************
* III_RSEL *
************************************************************
PROCEDURE III_RSEL
*************************************************************************
*
* (c) COPYRIGHT 1987 I on I Computer Solutions, Inc. All Rights Reserved
*
**************************************************************************
* III_RSEL
* RESTORE THE CURRENT SELECTED DRIVE BY THE USER
*ON ERROR DO III_NOTH
IF III_SEL <> '*' .AND. III_SEL <> ' '
SELECT &Iii_SEL
ELSE
SELECT 1
ENDIF
*ON ERROR
RETURN
************************************************************
* III_SSEL *
************************************************************
PROCEDURE III_SSEL
* III_SSEL
* SAVE THE CURRENT SELECTED DEVISE
ON ERROR DO III_NOTH
Iii_SEL = STR(SELECT(),1,0)
ON ERROR DO III_DBER
RETURN
************************************************************
* III_DOCU *
************************************************************
PROCEDURE III_DOCU
* --- iii_docu.prg
* c COPYRIGHT 1987 Fox & Geller, Inc. All Rights Reserved
* This Menu is Repeated until user exits
DO WHILE .T.
SET TALK OFF
SET COLOR TO W/N
CLEAR
SET ESCAPE OFF
@ 0,3 SAY "(c) Copywrite 1987, I on I Computer Solutions, Inc. All Rights Reserved"
@ 1,0 SAY "═══════════════════════════════════════════════════════════════════════════════"
@ 3,30 SAY "▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄"
@ 4,30 SAY "▌ 1 on 1 = 3!! ▐"
@ 5,30 SAY "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
@ 6,19 SAY "╔═══════════════════════════════════╗"
@ 7,19 SAY "║ I on I Computer Solutions, Inc. ║"
@ 8,19 SAY "║ 26 Finchwood Drive ║"
@ 9,19 SAY "║ Trumbull, CT 06611 ║"
@ 10,19 SAY "╚═══════════════════════════════════╝"
@ 11,19 SAY "┌───────────────────────────────────┐"
@ 12,19 SAY "│"
@ 12,55 SAY "│"
@ 13,19 SAY "│"
@ 13,55 SAY "│"
@ 14,19 SAY "│"
@ 14,55 SAY "│"
@ 15,19 SAY "│"
@ 15,55 SAY "│"
@ 16,19 SAY "│"
@ 16,55 SAY "│"
@ 17,19 SAY "│"
@ 17,55 SAY "│"
@ 18,19 SAY "│"
@ 18,55 SAY "│"
@ 19,19 SAY "│"
@ 19,55 SAY "│"
@ 20,19 SAY "│"
@ 20,55 SAY "│"
@ 21,19 SAY "└───────────────────────────────────┘"
* display entries the first time:
@ 13,35 SAY "Index"
@ 16,35 SAY "Help"
@ 19,35 SAY "Quit"
* set up entry info. for processing
iii_selq1="1335Index"
iii_selq2="1635Help"
iii_selq3="1935Quit"
* corresponding prompts:
iii_prtq1=" Print out the index for the help file"
iii_prtq2=" Print out the help listing"
iii_prtq3=" Return to main menu"
* Other variables
iii_listq="IHQ" && list of first characters of entries
iii_lineq1=24 && line on which prompts appear
iii_colq1=10 && column at which prompts appear
iii_lineq2=24 && line on which prompts appear
iii_colq2=10 && column at which prompts appear
iii_lineq3=24 && line on which prompts appear
iii_colq3=10 && column at which prompts appear
SET EXACT ON
iii_sizeq=LEN(iii_listq)
iii_iq=1
DO WHILE .T.
* --- Display highlighted selection
iii_jq=IIF(iii_iq<10,STR(iii_iq,1,0),STR(iii_iq,2,0)) && entry # -> string
SET COLOR TO N/W
@ VAL(SUBSTR(iii_selq&iii_jq,1,2)),VAL(SUBSTR(iii_selq&iii_jq,3,2)) SAY SUBSTR(iii_selq&iii_jq,5)
SET COLOR TO W/N
@ iii_lineq&iii_jq,iii_colq&iii_jq SAY iii_prtq&iii_jq
* --- Wait for a keystroke
iii_kq=0
DO WHILE iii_kq=0
iii_kq=INKEY()
ENDDO
* --- Process the keystroke
DO CASE
CASE III_KQ=28
DO III_HELP
CASE iii_kq=4 .OR. iii_kq=24 && [Right] or [Down]
@ VAL(SUBSTR(iii_selq&iii_jq,1,2)),VAL(SUBSTR(iii_selq&iii_jq,3,2)) SAY SUBSTR(iii_selq&iii_jq,5)
iii_iq=IIF(iii_iq<iii_sizeq, iii_iq+1,1)
CASE iii_kq=19 .OR. iii_kq=5 && [Left] or [Up]
@ VAL(SUBSTR(iii_selq&iii_jq,1,2)),VAL(SUBSTR(iii_selq&iii_jq,3,2)) SAY SUBSTR(iii_selq&iii_jq,5)
iii_iq=IIF(iii_iq>1, iii_iq-1,iii_sizeq)
CASE iii_kq=1 && [Home]
@ VAL(SUBSTR(iii_selq&iii_jq,1,2)),VAL(SUBSTR(iii_selq&iii_jq,3,2)) SAY SUBSTR(iii_selq&iii_jq,5)
iii_iq=1
CASE iii_kq=6 && [End]
@ VAL(SUBSTR(iii_selq&iii_jq,1,2)),VAL(SUBSTR(iii_selq&iii_jq,3,2)) SAY SUBSTR(iii_selq&iii_jq,5)
iii_iq=iii_sizeq
CASE iii_kq=13 && [Return]
EXIT
CASE iii_kq=27 && [Esc]
iii_iq=0
EXIT
CASE UPPER(CHR(iii_kq))$iii_listq && A letter choice
iii_iq=AT(UPPER(CHR(iii_kq)),iii_listq) && Find its location
EXIT
ENDCASE
@ iii_lineq&iii_jq,iii_colq&iii_jq SAY SPACE(LEN(iii_prtq&iii_jq))
ENDDO && WHILE .T.
* --- Perform Action based on choice
DO CASE
CASE iii_iq=1
do iii_pidx
CASE iii_iq=2
do iii_phlp
CASE iii_iq=3
return
ENDCASE
SET EXACT OFF
SET ESCAPE ON
ENDDO
************************************************************
* III_PIDX *
************************************************************
PROCEDURE III_PIDX
CLEAR
INDENT = 0
@ 12,2 SAY 'Enter number of spaces to indent' GET INDENT
READ
INDENTC=''
IF INDENT > 0
INDENTC = REPLICATE(' ',INDENT)
ENDIF
SELECT 9
USE &III_HFILE
*SET ALTERNATE TO 3!!_HIDX.DOC
*SET ALTERNA ON
SET PRINT ON
GO TOP
COUNTIT = 0
DO WHILE .NOT. EOF()
IF SUBSTR(III_HELP,32,2) = '--' .AND. ;
SUBSTR(III_HELP,4,3) <> '---'
SKIP -1
?
? INDENTC+TRIM(III_HELP)
COUNTIT = COUNTIT + 2
IF COUNTIT > 53
EJECT
COUNTIT = 0
ENDIF
SKIP
ENDIF
SKIP
ENDDO
EJECT
USE
*SET ALTERNAT TO
SET PRINT OFF
************************************************************
* III_PHLP *
************************************************************
PROCEDURE III_PHLP
* III_PHLP
* PRINT OUT HELP FILE
PRIVATE START, STOP, PAGE, COUNTIT
CLEAR
START=0
STOP=0
INDENT=0
DO WHILE .T.
@ 12,2 SAY 'Enter the start page' GET START
@ 14,2 SAY 'Enter the end page' GET STOP
@ 16,2 SAY 'Enter the number of spaces to indent' GET INDENT
READ
IF STOP = 0
RETURN
ENDIF
IF START > STOP
@ 16,2 SAY 'END GREATER THEN START, TRY AGAIN'
WAIT
CLEAR
ELSE
EXIT
ENDIF
ENDDO
INDENTC=''
IF INDENT > 0
INDENTC = REPLICATE(' ',INDENT)
ENDIF
SELECT 9
USE &III_HFILE
SET PRINT ON
GO TOP
PAGE=1
IF START > 1
PAGE = START
GO (PAGE-1)*53+1
ENDIF
COUNTIT = 1
DO WHILE PAGE <= STOP .AND. .NOT. EOF()
? INDENTC+TRIM(III_HELP)
COUNTIT = COUNTIT + 1
IF COUNTIT > 53
?
?
? ' PAGE '+STR(PAGE,3,0)
EJECT
?
?
COUNTIT = 1
PAGE = PAGE+1
ENDIF
SKIP
ENDDO
USE
SET PRINT OFF