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

  1. <<* MSACOND.INC *>>
  2.  
  3. <<* MODIFIED BY R. BORTER, JR. *>>
  4.  
  5.  
  6. <<#
  7. procedure GenCondWithEdit  <<*Everyone can edit*>>
  8. string keys
  9. begin
  10.   pushmargin( 1 )
  11.   GenColor( 0,'PROMPT' )
  12. #>>
  13. menuchoice = 0
  14. MSG1 = "Add"
  15. MSG2 = "Edit"
  16. MSG3 = "Select"
  17. MSG4 = "Next Page"
  18. MSG5 = "Prev-Page"
  19. MSG6 = "Delete"
  20. MSG7 = "Return"
  21. DO {FILEPREFIX}_MENU WITH 1,50,7,10
  22. <<keys := '"AES"+PgUp+PgDn+DelRecord+Returnkey'>>
  23. choice=SUBSTR(Returnkey+{keys},menuchoice+1,1)
  24. <<popmargin>>
  25. <<end GenCondWithEdit>>
  26.  
  27.  
  28. <<procedure GenCondMain( IsTypeAvail : logical )>>
  29. <<begin>>
  30. PARAMETER expr,notes
  31. PRIVATE row,rowTOP,recnum,recnumTOP
  32. PRIVATE newexpr,newnote,PagePaint,skipRECS,exprTOTAL
  33. SELECT H
  34. GOTO BOTTOM
  35. IF EOF()
  36.    exprTOTAL = 0
  37.    recnumTOP = 0
  38. ELSE
  39.    exprTOTAL = RECNO()
  40.    GOTO TOP
  41.    recnumTOP = RECNO()
  42. ENDIF
  43. skipRECS = 18
  44. row = 23
  45. rowTOP = 2
  46. recnum = 0
  47. expr = ""
  48. notes = ""
  49. newexpr = ""
  50. newnote = ""
  51. PagePaint = .T.
  52. *
  53. DO WHILE .T.
  54.    IF PagePaint
  55.      <<GenColor( 2,'WINDOW' )>>
  56.       @ 0,0 CLEAR
  57.      <<GenColor( 2,'PROMPT' )>>
  58.       @ rowTOP,0 SAY  REPLICATE( CHR(176),80 )
  59.       @ rowTOP,20 SAY " CONDITIONS "
  60.       @ rowTOP,57 SAY " NOTES/HEADINGS "
  61.       @ row-1,0 SAY PromptBar
  62.       @ rowTOP,0 SAY ""
  63.       IF recnumTOP > 0 .AND. RECCOUNT() >= 1
  64.          GOTO recnumTOP
  65.       ENDIF
  66.       SET HEADING OFF
  67.       LIST NEXT skipRECS CHR(179)+SUBSTR( CondExpr,1,38 )+CHR(179)+ ;
  68.        SUBSTR( CondNote,1,30 ) FOR CondArea = dbfarea
  69.       SET HEADING ON
  70.       PagePaint = .F.
  71.    ENDIF
  72.    IF "" = expr
  73.      <<GenColor( 2,'PROMPT' )>>
  74.      @ row-2,0
  75.    ELSE
  76.      <<GenColor( 2,'PROMPT' )>>
  77.       @ row-2,0 SAY "<selected>"
  78.      <<GenColor( 2,'HILITE' )>>
  79.       @ row-2,11 SAY SUBSTR( expr,1,69 )
  80.    ENDIF
  81. <<GenCondWithEdit>>
  82.    DO CASE
  83.    CASE choice = Returnkey
  84.       EXIT
  85.    CASE choice = "A"
  86.       * ---Add new CONDITION.
  87.       ?? SYS(2002,1)
  88.       DO {fileprefix}_EXPR WITH newexpr
  89.       IF "" <> TRIM(newexpr)
  90.          newnote = SPACE(40)
  91.          @ 20,19 CLEAR TO 22,60
  92.          @ 20,19 TO 22,60
  93.          @ 20,21 SAY ' Notes ' 
  94.          @ 21,20 GET newnote
  95.          READ
  96.          APPEND BLANK
  97.          REPLACE CondExpr WITH newexpr,CondArea WITH dbfarea, ;
  98.             CondNote with newnote
  99.          expr = CondExpr
  100.          notes = CondNote
  101.          exprTOTAL = exprTOTAL + 1
  102.       ENDIF
  103.       PagePaint = .T.
  104.       ?? SYS(2002)
  105.    CASE choice = "E"
  106.       * ---Edit CONDITION.
  107.       DO GotoRec WITH row,recnum,exprTOTAL
  108.       ?? SYS(2002,1)
  109.       IF recnum > 0 .AND. CondArea = dbfarea
  110.          recnumTOP = RECNO()
  111.          SAVE SCREEN TO CONDEDIT
  112.          @ 9,7 CLEAR TO 11,72
  113.          @ 9,7 TO 11,72
  114.          @ 9,9 SAY ' Edit Condition '
  115.          @ 12,19 CLEAR TO 14,60
  116.          @ 12,19 TO 14,60
  117.          @ 12,21 SAY 'Edit Notes ' 
  118.          @ 10,8 GET CondExpr PICT "@S64"
  119.          @ 13,20 GET CondNote
  120.          READ
  121.          RESTORE SCREEN FROM CONDEDIT
  122.          expr = CondExpr
  123.          notes = CondNote
  124.          PagePaint = .T.
  125.       ENDIF
  126.       ?? SYS(2002)
  127.    CASE choice = "S"
  128.       ?? SYS(2002,1)
  129.       * ---Select CONDITION.
  130.       DO GotoRec WITH row,recnum,exprTOTAL
  131.       IF recnum = 0 .OR. CondArea <> dbfarea
  132.          expr = ""
  133.          notes = ""
  134.       ELSE
  135.          expr = CondExpr
  136.          notes = CondNote
  137.       ENDIF
  138.       ?? SYS(2002)
  139.    CASE choice = PgDn
  140.       IF .NOT. EOF()
  141.          IF recnumTOP > 0
  142.             GOTO recnumTOP
  143.          ENDIF
  144.          SKIP skipRECS
  145.          IF EOF()
  146.             GOTO BOTTOM
  147.          ENDIF
  148.          recnumTOP = RECNO()
  149.          PagePaint = .T.
  150.       ENDIF
  151.    CASE choice = PgUp
  152.       IF .NOT. BOF()
  153.          IF recnumTOP > 0
  154.             GOTO recnumTOP
  155.          ENDIF
  156.          SKIP -skipRECS
  157.          IF BOF()
  158.             GOTO TOP
  159.          ENDIF
  160.          recnumTOP = RECNO()
  161.          PagePaint = .T.
  162.       ENDIF
  163.    CASE choice = DelRecord
  164.       * ---Delete the record.
  165.       DO GotoRec WITH row,recnum,exprTOTAL
  166.       IF recnum > 0 .AND. CondArea = dbfarea
  167.          DELETE
  168.          PACK
  169.          IF exprTOTAL > 0
  170.             exprTOTAL = exprTOTAL - 1
  171.          ENDIF
  172.          GOTO TOP
  173.          recnumTOP = RECNO()
  174.          PagePaint = .T.
  175.       ENDIF
  176.    ENDCASE
  177. ENDDO
  178. expr = TRIM( expr )
  179. notes = TRIM( notes )
  180. SELECT &dbfarea
  181. <<end GenCondMain>>
  182.  
  183.  
  184. <<#
  185. procedure GenCondBody
  186. begin
  187.     GenCondMain( true )
  188. end GenCondBody
  189.  
  190. <<* EOF: MSACOND.INC *>>
  191. #>>
  192.