home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a040 / 2.ddi / SHRWARE4.ARC / MSAEDIT.INC < prev    next >
Encoding:
Text File  |  1988-06-03  |  6.3 KB  |  265 lines

  1. <<* MSAEDIT.INC *>>
  2.  
  3. <<* MODIFIED 5 May 1988 R. BORTER,JR *>>
  4.  
  5. <<procedure GenEditBody>>
  6. <<integer menutotal>>
  7. <<begin>>
  8. PARAMETER isedited
  9. PRIVATE row,lastpage,editchoice,ndxchoice
  10. PRIVATE IsBlank,IsUnique
  11. <<select all>>
  12. <<if LiteBar and (pagtotal > 2) and  Fox>>
  13. PRIVATE pagechoice
  14. <<endif>>
  15. row = PromptRow
  16. expr = ""
  17. STORE .F. TO isedited,IsBlank,IsUnique
  18. <<if ismultials>>
  19.   <<GenPrivateFlds( 0 )>>
  20. <<endif>>
  21. DO {fileprefix}_FORM
  22. DO SayRec
  23. <<#
  24.   if LiteBar and Fox
  25.     menutotal := 8
  26.     if ismultials
  27.       menutotal := menutotal + 1
  28.     endif
  29.     if ismultipage
  30.       menutotal := menutotal + 1
  31.     endif
  32.     if feat(featlabel)
  33.       menutotal := menutotal + 1
  34.     endif
  35.     genln( 'menuchoice = ',menutotal )
  36.   endif
  37. #>>
  38. editchoice = "*"
  39. ndxchoice = "*"
  40. * ---Loop until {{}Return} is pressed.
  41. * ---The following loop is really a "REPEAT/UNTIL <cond>".
  42. DO WHILE .T.
  43.    <<GenColor( 1,'PROMPT' )>>
  44.    IF .NOT. (editchoice $ "NP"+DelRecord)
  45.       @ row,0 CLEAR
  46.    ENDIF
  47. <<#
  48.    pushmargin(1)
  49.      if ismultipage
  50.        EditLitePage
  51.      else
  52.        EditLiteOne
  53.      endif
  54.    popmargin
  55. #>>
  56. * ---SET CURSOR OFF
  57.    ?? SYS(2002)
  58.    DO CASE
  59.    CASE editchoice = Returnkey
  60.       EXIT
  61.    CASE editchoice = "F"
  62.       * ---Find a record.
  63.       ?? SYS(2002,1)
  64.    <<select all databases>>
  65.    <<if ndxtotal = 0>>
  66.       DO SayLine WITH row,"*** NO INDEX FILE IN USE"
  67.       WAIT
  68.       @ row,0 CLEAR
  69.    <<elsif ismultindx>>
  70.       DO {fileprefix}_NDXS WITH row,ndxchoice
  71.       IF ndxchoice > "0"
  72.          oldrecnum = RECNO()
  73.          DO {fileprefix}_SEEK WITH row
  74.          IF EOF()
  75.             DO SayLine WITH row,"No find."
  76.             WAIT
  77.             GOTO oldrecnum
  78.          ELSE
  79.             DO SayRec
  80.          ENDIF
  81.       ENDIF
  82.    <<else>>
  83.       oldrecnum = RECNO()
  84.       DO {fileprefix}_SEEK WITH row
  85.       IF EOF()
  86.          DO SayLine WITH row,"No find."
  87.          WAIT
  88.          GOTO oldrecnum
  89.       ELSE
  90.          DO SayRec
  91.       ENDIF
  92.    <<endif>>
  93. <<if feat(featlabel)>>
  94.    CASE editchoice = "O"
  95.       * ---Print one label/record.
  96.       <<if AutoMem>>
  97.       DO {fileprefix}_STOR
  98.       <<endif>>
  99.       <<pushmargin( 2 )>>
  100.       <<GenOutputItems>>
  101.       <<popmargin>>
  102. <<endif>>
  103.    CASE editchoice = "N"
  104.       * ---Next record.
  105.       oldrecnum = RECNO()
  106.       SKIP
  107.       IF EOF()
  108.          DO SayEOF WITH row,oldrecnum
  109.       ELSE
  110.          DO SayRec
  111.       ENDIF
  112.    CASE editchoice = "P"
  113.       * ---Previous record.
  114.       oldrecnum = RECNO()
  115.       SKIP -1
  116.       IF BOF()
  117.          DO SayEOF WITH row,oldrecnum
  118.       ELSE
  119.          DO SayRec
  120.       ENDIF
  121.    CASE editchoice = "E"
  122.       * ---Edit the record.
  123.       isedited = .T.
  124.       <<if AutoMem>>
  125.       DO {fileprefix}_STOR
  126.       <<endif>>
  127. <<if ismultipage>>
  128.       lastpage = pageno
  129.       DO {fileprefix}_AREA
  130.       IF pageno <> lastpage
  131.          DO {fileprefix}_FORM
  132.          DO SayRec
  133.          lastpage = pageno
  134.       ENDIF
  135.       DO WHILE .T.
  136.          DO SayLine WITH row+1,'Enter Changes...'
  137.          IF pageno = lastpage
  138.             DO {fileprefix}_KEYS WITH expr,IsBlank,IsUnique
  139.             * ---If you don't want the user to edit the
  140.             * ---key fields, then delete this IF structure.
  141.          ENDIF
  142.          DO {fileprefix}_GETS
  143.          DO Page WITH pageno,1,PageMax
  144.          DO {fileprefix}_FORM
  145.    <<if AutoMem>>
  146.          IF pageno = lastpage
  147.             EXIT
  148.          ENDIF
  149.          DO SayRec
  150.       ENDDO
  151.       DO {fileprefix}_REPL
  152.       DO SayRec
  153.    <<else>>
  154.          DO SayRec
  155.          IF pageno = lastpage
  156.             EXIT
  157.          ENDIF
  158.       ENDDO
  159.    <<endif>>
  160. <<else>> <<*single page format*>>
  161.       DO SayLine WITH row+1,'Enter Changes...'
  162.       * ---If you don't want the user to edit the
  163.       * ---key fields, then delete the following line.
  164.       DO {fileprefix}_KEYS WITH expr,IsBlank,IsUnique
  165.       DO {fileprefix}_GETS
  166.       <<if AutoMem>>
  167.       DO {fileprefix}_REPL
  168.       <<endif>>
  169. <<endif>> <<*single page format*>>
  170. <<if ismultipage>>
  171.   <<select all>>
  172.   <<if LiteBar and (pagtotal > 2) and  Fox>>
  173.    CASE editchoice = PgDn
  174.       <<pushmargin( 2 )>>
  175.       <<GenPageItems>>
  176.       <<popmargin>>
  177.   <<else>>
  178.    CASE editchoice = PgDn
  179.       DO Page WITH pageno,1,PageMax
  180.       DO {fileprefix}_FORM
  181.       DO SayRec
  182.    CASE editchoice = PgUp
  183.       DO Page WITH pageno,-1,PageMax
  184.       DO {fileprefix}_FORM
  185.       DO SayRec
  186.  <<endif>>
  187. <<endif>>
  188.    CASE editchoice = "L"
  189.       * ---Locate a record.
  190.       <<GenColor( 2,'WINDOW' )>>
  191.       @ 1,0 CLEAR
  192.      <<select database 8>>  <<*Is SELECT H being used?*>>
  193.      <<if dbfnam>>          <<*Yes, then use old <expr> system...*>>
  194.       DO {fileprefix}_EXPR WITH expr
  195.      <<else>>               <<*No, use new and improved...*>>
  196.       DO {fileprefix}_COND WITH expr
  197.      <<endif>>
  198.       <<if ismultipage>>
  199.       DO {fileprefix}_FORM
  200.       <<else>>
  201.       DO {fileprefix}_FORM
  202.       <<endif>>
  203.       DO SayRec
  204.       IF "" <> TRIM( expr )
  205.          * ---Check for valid LOGICAL expression.
  206.          IF TYPE( expr ) = "L"
  207.             DO DoLOCATE WITH row,expr
  208.          ELSE
  209.            <<GenColor( 4,'PROMPT' )>>
  210.             @ row,0 CLEAR
  211.             @ row,0 SAY "Invalid expression."
  212.             WAIT
  213.          ENDIF
  214.       ENDIF
  215.    CASE editchoice = "G"
  216.       * ---Goto a record.
  217.       DO DoGOTO WITH row,recnum,LastRec
  218.       IF recnum > 0
  219.          DO SayRec
  220.       ENDIF
  221. <<if LiteBar and Fox>>
  222.       menuchoice = 3
  223. <<endif>>
  224.    CASE editchoice = DelRecord
  225.       * ---Delete the record.
  226.       isedited = .T.
  227.       IF DELETED()
  228.          RECALL
  229.       ELSE
  230.          DELETE
  231.       ENDIF
  232.       DO StatLine WITH RECNO(),DELETED()
  233. <<if ismultials>>
  234.    CASE editchoice = "S"
  235.       * ---Select database file.
  236. <<#
  237.       pushmargin( 2 )
  238.       GenPrivateFlds( 1 )
  239.       popmargin
  240. #>>
  241.     <<if ismultipage>>
  242.       lastpage = pageno
  243.       DO {fileprefix}_FILE WITH row,choice
  244.       IF lastpage = pageno
  245.          DO StatLine WITH RECNO(),DELETED()
  246.       ELSE
  247.          DO {fileprefix}_FORM
  248.          DO SayRec
  249.       ENDIF
  250.     <<else>>
  251.       DO {fileprefix}_FILE WITH row,choice
  252.       DO StatLine WITH RECNO(),DELETED()
  253.     <<endif>>
  254. <<#
  255.       pushmargin( 2 )
  256.       GenPrivateFlds( 0 )
  257.       popmargin
  258. #>>
  259. <<endif>>
  260.    ENDCASE
  261. ENDDO
  262. <<end>> <<*GenEditBody*>>
  263.  
  264. <<*EOF: MSAEDIT.INC*>>
  265.