home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
workdb.zip
/
DUPREC.PRG
< prev
next >
Wrap
Text File
|
1988-08-15
|
5KB
|
165 lines
*!!* dBASE CONVERT - dBASE III File Conversion Aid v2.01 1/10/86
*
SET HEADING OFF
SET SAFETY OFF
* duprec.sig 08/18/83
* this module displays duplicate records with the same last names
* and gives enough information to evaluate them. Note if you
* use the edit function the 'edited' information will appear in
* the main file but will not appear on the duplicate record screen.
* this is because we are saving what we see here to a temporary file
* while we edit.
SKIP -1
STORE ORDER TO ORDER1
STORE LNAME TO LNAME1
STORE FNAME TO FNAME1
STORE CITY TO CITY1
STORE ZIP TO ZIP1
STORE VOL1 TO VOL11
IF DELETE()
STORE 'DELETED' TO DELETED1
ELSE
STORE ' ' TO DELETED1
ENDIF *
SKIP
STORE ORDER TO ORDER2
STORE LNAME TO LNAME2
STORE FNAME TO FNAME2
STORE CITY TO CITY2
STORE ZIP TO ZIP2
STORE VOL1 TO VOL12
IF DELETE()
STORE 'DELETED' TO DELETED2
ELSE
STORE ' ' TO DELETED2
ENDIF *
STORE .T. TO MORE
DO WHILE MORE
* set up the screen format and variables
CLEAR
STORE '<C>ONTINUE, <D>ELETE/RECALL, <E>DIT, <P>RINT, <Q>UIT' TO PROMPT
STORE 'RECORDS WITH DUPLICATE LAST NAMES' TO MODE
STORE '?' TO COMMAND
STORE '?' TO RECORD
* show both records and find out what to do next
@ 01,27 SAY MODE
@ 02,00 SAY '+--------------------'
@ 02,20 SAY '---------------------'
@ 02,40 SAY '---------------------'
@ 02,60 SAY '-------------------+'
@ 03,00 SAY 'LASTNAME: '
@ 03,12 SAY LNAME1
@ 03,40 SAY 'FIRST: '
@ 03,49 SAY FNAME1
@ 05,00 SAY 'CITY: '
@ 05,20 SAY CITY1
@ 05,50 SAY 'ZIP: '
@ 05,55 SAY ZIP1
@ 06,00 SAY 'VOLUMES:'
@ 06,10 SAY VOL11
@ 08,00 SAY 'ORDER NUMBER: '
@ 08,17 SAY ORDER1
@ 08,50 SAY DELETED1
@ 09,00 SAY '+--------------------'
@ 09,20 SAY '---------------> > > '
@ 09,40 SAY 'RECORD-A < < <-------'
@ 09,60 SAY '-------------------+'
@ 11,00 SAY 'LASTNAME: '
@ 11,12 SAY LNAME2
@ 11,40 SAY 'FIRST: '
@ 11,49 SAY FNAME2
@ 13,00 SAY 'CITY: '
@ 13,20 SAY CITY2
@ 13,50 SAY 'ZIP: '
@ 13,55 SAY ZIP2
@ 14,00 SAY 'VOLUMES: '
@ 14,10 SAY VOL12
@ 16,00 SAY 'ORDER NUMBER: '
@ 16,17 SAY ORDER2
@ 16,50 SAY DELETED2
@ 17,00 SAY '+--------------------'
@ 17,20 SAY '---------------> > > '
@ 17,40 SAY 'RECORD-B < < <-------'
@ 17,60 SAY '-------------------+'
@ 18,17 SAY PROMPT
@ 19,24 SAY 'WHAT NEXT?'
@ 19,35 GET COMMAND PICTURE '!'
READ
* If Delete, Edit or Print - ask question
IF COMMAND = 'D' .OR. COMMAND = 'E' .OR. COMMAND = 'P'
* move up a line
?? CHR(11)
?? ' WHICH RECORD ?'
SET CONSOLE OFF
WAIT TO RECORD
SET CONSOLE ON
STORE UPPER(record) TO record
?? RECORD
ENDIF COMMAND = D
* move to the record to be processed
IF RECORD = 'A'
SKIP -1
ENDIF RECORD = A
*PROCESS the record
DO CASE
CASE COMMAND = 'C' .OR. COMMAND = 'Q'
* set up the loop to exit
STORE .F. TO MORE
CASE COMMAND = 'D'
IF DELETE()
RECALL
ELSE
DELETE
ENDIF *
IF RECORD = 'A'
IF DELETED1 = 'DELETED'
STORE ' ' TO DELETED1
ELSE
STORE 'DELETED' TO DELETED1
ENDIF DELETED1
ENDIF RECORD = A
IF RECORD <> 'A'
IF DELETED2 = 'DELETED'
STORE ' ' TO DELETED2
ELSE
STORE 'DELETED' TO DELETED2
ENDIF DELETED2
ENDIF RECORD <> A
CASE COMMAND = 'E'
SAVE TO TEMP2
RELEASE ALL
RESTORE FROM TEMP1
* don't use indexs to speed up the edit
? 'HIT RETURN TO CONTINUE'
SET CONSOLE OFF
RESTORE
STORE RECNO() TO rec_number
CLOSE INDEX
IF REC_NUMBER = 0
GOTO 1
ELSE
GOTO REC_NUMBER
ENDIF REC:NUMBER = 0
SET CONSOLE ON
DO EDIT.PRG
SAVE TO TEMP1
RELEASE ALL
RESTORE FROM TEMP2
CASE COMMAND = 'P'
DO PRINT.PRG
ENDCASE
* move back to the correct record
IF RECORD = 'A'
SKIP
ENDIF RECORD = A
* loop back again
ENDDO WHILE MORE
* if more duplicates are to be found
* set up the loop to continue in DUPCHECK.SIG
IF COMMAND = 'C'
STORE .T. TO MORE
ENDIF COMMAND = C