home *** CD-ROM | disk | FTP | other *** search
- <<* MSAEDIT.INC *>>
-
- <<* MODIFIED 5 May 1988 R. BORTER,JR *>>
-
- <<procedure GenEditBody>>
- <<integer menutotal>>
- <<begin>>
- PARAMETER isedited
- PRIVATE row,lastpage,editchoice,ndxchoice
- PRIVATE IsBlank,IsUnique
- <<select all>>
- <<if LiteBar and (pagtotal > 2) and Fox>>
- PRIVATE pagechoice
- <<endif>>
- row = PromptRow
- expr = ""
- STORE .F. TO isedited,IsBlank,IsUnique
- <<if ismultials>>
- <<GenPrivateFlds( 0 )>>
- <<endif>>
- DO {fileprefix}_FORM
- DO SayRec
- <<#
- if LiteBar and Fox
- menutotal := 8
- if ismultials
- menutotal := menutotal + 1
- endif
- if ismultipage
- menutotal := menutotal + 1
- endif
- if feat(featlabel)
- menutotal := menutotal + 1
- endif
- genln( 'menuchoice = ',menutotal )
- endif
- #>>
- editchoice = "*"
- ndxchoice = "*"
- * ---Loop until {{}Return} is pressed.
- * ---The following loop is really a "REPEAT/UNTIL <cond>".
- DO WHILE .T.
- <<GenColor( 1,'PROMPT' )>>
- IF .NOT. (editchoice $ "NP"+DelRecord)
- @ row,0 CLEAR
- ENDIF
- <<#
- pushmargin(1)
- if ismultipage
- EditLitePage
- else
- EditLiteOne
- endif
- popmargin
- #>>
- * ---SET CURSOR OFF
- ?? SYS(2002)
- DO CASE
- CASE editchoice = Returnkey
- EXIT
- CASE editchoice = "F"
- * ---Find a record.
- ?? SYS(2002,1)
- <<select all databases>>
- <<if ndxtotal = 0>>
- DO SayLine WITH row,"*** NO INDEX FILE IN USE"
- WAIT
- @ row,0 CLEAR
- <<elsif ismultindx>>
- DO {fileprefix}_NDXS WITH row,ndxchoice
- IF ndxchoice > "0"
- oldrecnum = RECNO()
- DO {fileprefix}_SEEK WITH row
- IF EOF()
- DO SayLine WITH row,"No find."
- WAIT
- GOTO oldrecnum
- ELSE
- DO SayRec
- ENDIF
- ENDIF
- <<else>>
- oldrecnum = RECNO()
- DO {fileprefix}_SEEK WITH row
- IF EOF()
- DO SayLine WITH row,"No find."
- WAIT
- GOTO oldrecnum
- ELSE
- DO SayRec
- ENDIF
- <<endif>>
- <<if feat(featlabel)>>
- CASE editchoice = "O"
- * ---Print one label/record.
- <<if AutoMem>>
- DO {fileprefix}_STOR
- <<endif>>
- <<pushmargin( 2 )>>
- <<GenOutputItems>>
- <<popmargin>>
- <<endif>>
- CASE editchoice = "N"
- * ---Next record.
- oldrecnum = RECNO()
- SKIP
- IF EOF()
- DO SayEOF WITH row,oldrecnum
- ELSE
- DO SayRec
- ENDIF
- CASE editchoice = "P"
- * ---Previous record.
- oldrecnum = RECNO()
- SKIP -1
- IF BOF()
- DO SayEOF WITH row,oldrecnum
- ELSE
- DO SayRec
- ENDIF
- CASE editchoice = "E"
- * ---Edit the record.
- isedited = .T.
- <<if AutoMem>>
- DO {fileprefix}_STOR
- <<endif>>
- <<if ismultipage>>
- lastpage = pageno
- DO {fileprefix}_AREA
- IF pageno <> lastpage
- DO {fileprefix}_FORM
- DO SayRec
- lastpage = pageno
- ENDIF
- DO WHILE .T.
- DO SayLine WITH row+1,'Enter Changes...'
- IF pageno = lastpage
- DO {fileprefix}_KEYS WITH expr,IsBlank,IsUnique
- * ---If you don't want the user to edit the
- * ---key fields, then delete this IF structure.
- ENDIF
- DO {fileprefix}_GETS
- DO Page WITH pageno,1,PageMax
- DO {fileprefix}_FORM
- <<if AutoMem>>
- IF pageno = lastpage
- EXIT
- ENDIF
- DO SayRec
- ENDDO
- DO {fileprefix}_REPL
- DO SayRec
- <<else>>
- DO SayRec
- IF pageno = lastpage
- EXIT
- ENDIF
- ENDDO
- <<endif>>
- <<else>> <<*single page format*>>
- DO SayLine WITH row+1,'Enter Changes...'
- * ---If you don't want the user to edit the
- * ---key fields, then delete the following line.
- DO {fileprefix}_KEYS WITH expr,IsBlank,IsUnique
- DO {fileprefix}_GETS
- <<if AutoMem>>
- DO {fileprefix}_REPL
- <<endif>>
- <<endif>> <<*single page format*>>
- <<if ismultipage>>
- <<select all>>
- <<if LiteBar and (pagtotal > 2) and Fox>>
- CASE editchoice = PgDn
- <<pushmargin( 2 )>>
- <<GenPageItems>>
- <<popmargin>>
- <<else>>
- CASE editchoice = PgDn
- DO Page WITH pageno,1,PageMax
- DO {fileprefix}_FORM
- DO SayRec
- CASE editchoice = PgUp
- DO Page WITH pageno,-1,PageMax
- DO {fileprefix}_FORM
- DO SayRec
- <<endif>>
- <<endif>>
- CASE editchoice = "L"
- * ---Locate a record.
- <<GenColor( 2,'WINDOW' )>>
- @ 1,0 CLEAR
- <<select database 8>> <<*Is SELECT H being used?*>>
- <<if dbfnam>> <<*Yes, then use old <expr> system...*>>
- DO {fileprefix}_EXPR WITH expr
- <<else>> <<*No, use new and improved...*>>
- DO {fileprefix}_COND WITH expr
- <<endif>>
- <<if ismultipage>>
- DO {fileprefix}_FORM
- <<else>>
- DO {fileprefix}_FORM
- <<endif>>
- DO SayRec
- IF "" <> TRIM( expr )
- * ---Check for valid LOGICAL expression.
- IF TYPE( expr ) = "L"
- DO DoLOCATE WITH row,expr
- ELSE
- <<GenColor( 4,'PROMPT' )>>
- @ row,0 CLEAR
- @ row,0 SAY "Invalid expression."
- WAIT
- ENDIF
- ENDIF
- CASE editchoice = "G"
- * ---Goto a record.
- DO DoGOTO WITH row,recnum,LastRec
- IF recnum > 0
- DO SayRec
- ENDIF
- <<if LiteBar and Fox>>
- menuchoice = 3
- <<endif>>
- CASE editchoice = DelRecord
- * ---Delete the record.
- isedited = .T.
- IF DELETED()
- RECALL
- ELSE
- DELETE
- ENDIF
- DO StatLine WITH RECNO(),DELETED()
- <<if ismultials>>
- CASE editchoice = "S"
- * ---Select database file.
- <<#
- pushmargin( 2 )
- GenPrivateFlds( 1 )
- popmargin
- #>>
- <<if ismultipage>>
- lastpage = pageno
- DO {fileprefix}_FILE WITH row,choice
- IF lastpage = pageno
- DO StatLine WITH RECNO(),DELETED()
- ELSE
- DO {fileprefix}_FORM
- DO SayRec
- ENDIF
- <<else>>
- DO {fileprefix}_FILE WITH row,choice
- DO StatLine WITH RECNO(),DELETED()
- <<endif>>
- <<#
- pushmargin( 2 )
- GenPrivateFlds( 0 )
- popmargin
- #>>
- <<endif>>
- ENDCASE
- ENDDO
- <<end>> <<*GenEditBody*>>
-
- <<*EOF: MSAEDIT.INC*>>