home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a087 / 5.ddi / PAINTER2.SP_ / PAINTER2.bin
Encoding:
Text File  |  1994-02-02  |  24.2 KB  |  926 lines

  1. *       ╓─────────────────────────────────────────────────────────╖
  2. *       ║                                                         ║
  3. *       ║ 01/31/94            PAINTER2.SPR               11:23:07 ║
  4. *       ║                                                         ║
  5. *       ╟─────────────────────────────────────────────────────────╢
  6. *       ║                                                         ║
  7. *       ║ Author's Name                                           ║
  8. *       ║                                                         ║
  9. *       ║ Copyright (c) 1994 Company Name                         ║
  10. *       ║ Address                                                 ║
  11. *       ║ City,     Zip                                           ║
  12. *       ║                                                         ║
  13. *       ║ Description:                                            ║
  14. *       ║ This program was automatically generated by GENSCRN.    ║
  15. *       ║                                                         ║
  16. *       ╙─────────────────────────────────────────────────────────╜
  17.  
  18. DO CASE
  19. CASE _DOS OR _UNIX      && no UNIX records in screen
  20.  
  21.     
  22.     #REGION 0
  23.     REGIONAL m.currarea, m.talkstat, m.compstat
  24.     
  25.     IF SET("TALK") = "ON"
  26.         SET TALK OFF
  27.         m.talkstat = "ON"
  28.     ELSE
  29.         m.talkstat = "OFF"
  30.     ENDIF
  31.     m.compstat = SET("COMPATIBLE")
  32.     SET COMPATIBLE FOXPLUS
  33.     
  34.     m.currarea = SELECT()
  35.     
  36.     
  37.     *       ╓─────────────────────────────────────────────────────────╖
  38.     *       ║                                                         ║
  39.     *       ║      PAINTER2/MS-DOS Databases, Indexes, Relations      ║
  40.     *       ║                                                         ║
  41.     *       ╙─────────────────────────────────────────────────────────╜
  42.     *
  43.     
  44.     IF USED("painter")
  45.         SELECT painter
  46.         SET ORDER TO TAG "_qn10mqr58"
  47.     ELSE
  48.         SELECT 0
  49.         USE (LOCFILE("painter.dbf","DBF","Where is painter?"));
  50.             AGAIN ALIAS painter ;
  51.             ORDER TAG "_qn10mqr58"
  52.     ENDIF
  53.     
  54.     
  55.     *       ╓─────────────────────────────────────────────────────────╖
  56.     *       ║                                                         ║
  57.     *       ║                MS-DOS Window definitions                ║
  58.     *       ║                                                         ║
  59.     *       ╙─────────────────────────────────────────────────────────╜
  60.     *
  61.     
  62.     IF NOT WEXIST("_qn50oehh0")
  63.         DEFINE WINDOW _qn50oehh0 ;
  64.             FROM INT((SROW()-20)/2),INT((SCOL()-65)/2) ;
  65.             TO INT((SROW()-20)/2)+19,INT((SCOL()-65)/2)+64 ;
  66.             TITLE "Painter" ;
  67.             FLOAT ;
  68.             CLOSE ;
  69.             MINIMIZE ;
  70.             COLOR SCHEME 1
  71.     ENDIF
  72.     
  73.     
  74.     *       ╓─────────────────────────────────────────────────────────╖
  75.     *       ║                                                         ║
  76.     *       ║         PAINTER2/MS-DOS Setup Code - SECTION 2          ║
  77.     *       ║                                                         ║
  78.     *       ╙─────────────────────────────────────────────────────────╜
  79.     *
  80.     
  81.     #REGION 1
  82.     
  83.     
  84.     #DEFINE C_DBFEMPTY    'Database is empty, add a record?'
  85.     #DEFINE C_EDITS            'Please finish your edits.'
  86.     #DEFINE C_TOPFILE        'Top of file.'
  87.     #DEFINE C_ENDFILE        'End of file.'
  88.     #DEFINE C_BRTITLE        'Locate Record'
  89.     #DEFINE C_NOLOCK        'Sorry, could not lock record -- try again later.'
  90.     #DEFINE C_ECANCEL        'Edits Canceled.'
  91.     #DEFINE C_DELREC        'Delete selected record?'
  92.     #DEFINE C_NOFEAT        'Feature not available yet.'
  93.     #DEFINE C_NOWIZ            'Wizard application is not available.'
  94.     #DEFINE C_MAKEREPO    'Creating report with ReportWizard.'
  95.     #DEFINE C_NOREPO        'Could not create report.'
  96.     #DEFINE C_DELNOTE         'Deleting records...'
  97.     
  98.     MOVE WINDOW '_qn50oehh0' CENTER
  99.     PRIVATE isediting,isadding,wzolddelete,wzolderror,wzalias,tempcurs
  100.     m.isediting=.F.
  101.     m.isadding=.F.
  102.     m.wzolddelete=SET('DELETE')
  103.     SET DELETED ON
  104.     m.wzalias=SELECT()
  105.     m.tempcurs=SYS(2015)  &&used if General field
  106.     
  107.     IF RECCOUNT()=0
  108.       IF fox_alert(C_DBFEMPTY)
  109.         APPEND BLANK
  110.       ENDIF
  111.     ENDIF
  112.     GOTO TOP
  113.     SCATTER MEMVAR MEMO
  114.     m.wzolderror=ON('error')
  115.     ON ERROR DO wizerrorhandler
  116.     
  117.     
  118.     *       ╓─────────────────────────────────────────────────────────╖
  119.     *       ║                                                         ║
  120.     *       ║              PAINTER2/MS-DOS Screen Layout              ║
  121.     *       ║                                                         ║
  122.     *       ╙─────────────────────────────────────────────────────────╜
  123.     *
  124.     
  125.     #REGION 1
  126.     IF WVISIBLE("_qn50oehh0")
  127.         ACTIVATE WINDOW _qn50oehh0 SAME
  128.     ELSE
  129.         ACTIVATE WINDOW _qn50oehh0 NOSHOW
  130.     ENDIF
  131.     @ 0,2 SAY "Painter" ;
  132.         SIZE 1,7, 0
  133.     @ 2,0 TO 2,62
  134.     @ 1,49 SAY "Date:" ;
  135.         SIZE 1,5, 0
  136.     @ 1,54 SAY date() ;
  137.         SIZE 1,8
  138.     @ 3,3 SAY "Lastname:" ;
  139.         SIZE 1,8 ;
  140.         PICTURE "@J"
  141.     @ 3,13 GET m.lastname ;
  142.         SIZE 1,47 ;
  143.         DEFAULT " " ;
  144.         PICTURE "@K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ;
  145.         WHEN isediting
  146.     @ 5,3 SAY "Firstname:" ;
  147.         SIZE 1,8 ;
  148.         PICTURE "@J"
  149.     @ 5,13 GET m.firstname ;
  150.         SIZE 1,47 ;
  151.         DEFAULT " " ;
  152.         PICTURE "@K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ;
  153.         WHEN isediting
  154.     @ 6,3 SAY "Nationalit:" ;
  155.         SIZE 1,8 ;
  156.         PICTURE "@J"
  157.     @ 6,13 GET m.nationalit ;
  158.         SIZE 1,47 ;
  159.         DEFAULT " " ;
  160.         PICTURE "@K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ;
  161.         WHEN isediting
  162.     @ 8,3 SAY "Birthdate:" ;
  163.         SIZE 1,8 ;
  164.         PICTURE "@J"
  165.     @ 8,13 GET m.birthdate ;
  166.         SIZE 1,7 ;
  167.         DEFAULT " " ;
  168.         PICTURE "@K" ;
  169.         WHEN isediting
  170.     @ 9,3 SAY "Datedeath:" ;
  171.         SIZE 1,8 ;
  172.         PICTURE "@J"
  173.     @ 9,13 GET m.datedeath ;
  174.         SIZE 1,7 ;
  175.         DEFAULT " " ;
  176.         PICTURE "@K" ;
  177.         WHEN isediting
  178.     @ 11,3 SAY "Note:" ;
  179.         SIZE 1,8 ;
  180.         PICTURE "@J"
  181.     @ 11,13 EDIT m.note ;
  182.         SIZE 4,37,0 ;
  183.         PICTURE "@K" ;
  184.         DEFAULT " " ;
  185.         SCROLL ;
  186.         WHEN isediting
  187.     @ 15,0 TO 15,62
  188.     @ 16,1 GET m.top_btn ;
  189.         PICTURE "@*HN \<Top" ;
  190.         SIZE 1,6,1 ;
  191.         DEFAULT 1 ;
  192.         VALID btn_val('TOP') ;
  193.         MESSAGE 'Go to first record.'
  194.     @ 16,7 GET m.prev_btn ;
  195.         PICTURE "@*HN \<Prev" ;
  196.         SIZE 1,6,1 ;
  197.         DEFAULT 1 ;
  198.         VALID btn_val('PREV') ;
  199.         MESSAGE 'Go to previous record.'
  200.     @ 16,13 GET m.next_btn ;
  201.         PICTURE "@*HN \<Next" ;
  202.         SIZE 1,6,1 ;
  203.         DEFAULT 1 ;
  204.         VALID btn_val('NEXT') ;
  205.         MESSAGE 'Go to next record.'
  206.     @ 16,19 GET m.end_btn ;
  207.         PICTURE "@*HN \<End" ;
  208.         SIZE 1,6,1 ;
  209.         DEFAULT 1 ;
  210.         VALID btn_val('END') ;
  211.         MESSAGE 'Go to last record.'
  212.     @ 16,25 GET m.loc_btn ;
  213.         PICTURE "@*HN \<Locate" ;
  214.         SIZE 1,8,1 ;
  215.         DEFAULT 1 ;
  216.         VALID btn_val('LOCATE') ;
  217.         MESSAGE 'Locate a record.'
  218.     @ 16,31 GET m.add_btn ;
  219.         PICTURE "@*HN \<Add" ;
  220.         SIZE 1,6,1 ;
  221.         DEFAULT 1 ;
  222.         VALID btn_val('ADD') ;
  223.         MESSAGE 'Add a new record.'
  224.     @ 16,37 GET m.edit_btn ;
  225.         PICTURE "@*HN Ed\<it" ;
  226.         SIZE 1,6,1 ;
  227.         DEFAULT 1 ;
  228.         VALID btn_val('EDIT') ;
  229.         MESSAGE 'Edit current record.'
  230.     @ 16,43 GET m.del_btn ;
  231.         PICTURE "@*HN \<Delete" ;
  232.         SIZE 1,8,1 ;
  233.         DEFAULT 1 ;
  234.         VALID btn_val('DELETE') ;
  235.         MESSAGE 'Delete current record.'
  236.     @ 16,49 GET m.prnt_btn ;
  237.         PICTURE "@*HN P\<rint" ;
  238.         SIZE 1,7,1 ;
  239.         DEFAULT 1 ;
  240.         VALID btn_val('PRINT') ;
  241.         MESSAGE 'Print report.'
  242.     @ 16,55 GET m.exit_btn ;
  243.         PICTURE "@*HN \<Close" ;
  244.         SIZE 1,7,1 ;
  245.         DEFAULT 1 ;
  246.         VALID btn_val('EXIT') ;
  247.         MESSAGE 'Close screen.'
  248.     
  249.     IF NOT WVISIBLE("_qn50oehh0")
  250.         ACTIVATE WINDOW _qn50oehh0
  251.     ENDIF
  252.     
  253.     
  254.     *       ╓─────────────────────────────────────────────────────────╖
  255.     *       ║                                                         ║
  256.     *       ║    MS-DOSREAD contains clauses from SCREEN painter2     ║
  257.     *       ║                                                         ║
  258.     *       ╙─────────────────────────────────────────────────────────╜
  259.     *
  260.     
  261.     READ CYCLE ;
  262.         ACTIVATE READACT() ;
  263.         DEACTIVATE READDEAC() ;
  264.         NOLOCK
  265.     
  266.     RELEASE WINDOW _qn50oehh0
  267.     
  268.     *       ╓─────────────────────────────────────────────────────────╖
  269.     *       ║                                                         ║
  270.     *       ║                MS-DOS Closing Databases                 ║
  271.     *       ║                                                         ║
  272.     *       ╙─────────────────────────────────────────────────────────╜
  273.     *
  274.     
  275.     IF USED("painter")
  276.         SELECT painter
  277.         USE
  278.     ENDIF
  279.     
  280.     SELECT (m.currarea)
  281.     
  282.     
  283.     #REGION 0
  284.     IF m.talkstat = "ON"
  285.         SET TALK ON
  286.     ENDIF
  287.     IF m.compstat = "ON"
  288.         SET COMPATIBLE ON
  289.     ENDIF
  290.     
  291.     
  292.     *       ╓─────────────────────────────────────────────────────────╖
  293.     *       ║                                                         ║
  294.     *       ║              PAINTER2/MS-DOS Cleanup Code               ║
  295.     *       ║                                                         ║
  296.     *       ╙─────────────────────────────────────────────────────────╜
  297.     *
  298.     
  299.     #REGION 1
  300.     SET DELETED &wzolddelete
  301.     ON ERROR &wzolderror
  302.     
  303.     ****Procedures****
  304.  
  305. CASE _WINDOWS OR _MAC   && no MAC records in screen
  306.  
  307.     
  308.     #REGION 0
  309.     REGIONAL m.currarea, m.talkstat, m.compstat
  310.     
  311.     IF SET("TALK") = "ON"
  312.         SET TALK OFF
  313.         m.talkstat = "ON"
  314.     ELSE
  315.         m.talkstat = "OFF"
  316.     ENDIF
  317.     m.compstat = SET("COMPATIBLE")
  318.     SET COMPATIBLE FOXPLUS
  319.     
  320.     m.rborder = SET("READBORDER")
  321.     SET READBORDER OFF
  322.     
  323.     m.currarea = SELECT()
  324.     
  325.     
  326.     *       ╓─────────────────────────────────────────────────────────╖
  327.     *       ║                                                         ║
  328.     *       ║     PAINTER2/Windows Databases, Indexes, Relations      ║
  329.     *       ║                                                         ║
  330.     *       ╙─────────────────────────────────────────────────────────╜
  331.     *
  332.     
  333.     IF USED("painter")
  334.         SELECT painter
  335.         SET ORDER TO TAG "_qn10mqr58"
  336.     ELSE
  337.         SELECT 0
  338.         USE (LOCFILE("painter.dbf","DBF","Where is painter?"));
  339.             AGAIN ALIAS painter ;
  340.             ORDER TAG "_qn10mqr58"
  341.     ENDIF
  342.     
  343.     
  344.     *       ╓─────────────────────────────────────────────────────────╖
  345.     *       ║                                                         ║
  346.     *       ║               Windows Window definitions                ║
  347.     *       ║                                                         ║
  348.     *       ╙─────────────────────────────────────────────────────────╜
  349.     *
  350.     
  351.     IF NOT WEXIST("_qn50oeknq")
  352.         DEFINE WINDOW _qn50oeknq ;
  353.             AT  0.000, 0.000  ;
  354.             SIZE 18.438,62.500 ;
  355.             TITLE "Painter" ;
  356.             FONT "ms sans serif", 10 ;
  357.             STYLE "B" ;
  358.             FLOAT ;
  359.             CLOSE ;
  360.             MINIMIZE ;
  361.             COLOR RGB(,,,192,192,192)
  362.         MOVE WINDOW _qn50oeknq CENTER
  363.     ENDIF
  364.     
  365.     
  366.     *       ╓─────────────────────────────────────────────────────────╖
  367.     *       ║                                                         ║
  368.     *       ║         PAINTER2/Windows Setup Code - SECTION 2         ║
  369.     *       ║                                                         ║
  370.     *       ╙─────────────────────────────────────────────────────────╜
  371.     *
  372.     
  373.     #REGION 1
  374.     
  375.     
  376.     #DEFINE C_DBFEMPTY    'Database is empty, add a record?'
  377.     #DEFINE C_EDITS            'Please finish your edits.'
  378.     #DEFINE C_TOPFILE        'Top of file.'
  379.     #DEFINE C_ENDFILE        'End of file.'
  380.     #DEFINE C_BRTITLE        'Locate Record'
  381.     #DEFINE C_NOLOCK        'Sorry, could not lock record -- try again later.'
  382.     #DEFINE C_ECANCEL        'Edits Canceled.'
  383.     #DEFINE C_DELREC        'Delete selected record?'
  384.     #DEFINE C_NOFEAT        'Feature not available yet.'
  385.     #DEFINE C_NOWIZ            'Wizard application is not available.'
  386.     #DEFINE C_MAKEREPO    'Creating report with ReportWizard.'
  387.     #DEFINE C_NOREPO        'Could not create report.'
  388.     #DEFINE C_DELNOTE         'Deleting records...'
  389.     
  390.     MOVE WINDOW '_qn50oeknq' CENTER
  391.     PRIVATE isediting,isadding,wzolddelete,wzolderror,wzalias,tempcurs
  392.     m.isediting=.F.
  393.     m.isadding=.F.
  394.     m.wzolddelete=SET('DELETE')
  395.     SET DELETED ON
  396.     m.wzalias=SELECT()
  397.     m.tempcurs=SYS(2015)  &&used if General field
  398.     
  399.     IF RECCOUNT()=0
  400.       IF fox_alert(C_DBFEMPTY)
  401.         APPEND BLANK
  402.       ENDIF
  403.     ENDIF
  404.     GOTO TOP
  405.     SCATTER MEMVAR MEMO
  406.     m.wzolderror=ON('error')
  407.     ON ERROR DO wizerrorhandler
  408.     
  409.     
  410.     *       ╓─────────────────────────────────────────────────────────╖
  411.     *       ║                                                         ║
  412.     *       ║             PAINTER2/Windows Screen Layout              ║
  413.     *       ║                                                         ║
  414.     *       ╙─────────────────────────────────────────────────────────╜
  415.     *
  416.     
  417.     #REGION 1
  418.     IF WVISIBLE("_qn50oeknq")
  419.         ACTIVATE WINDOW _qn50oeknq SAME
  420.     ELSE
  421.         ACTIVATE WINDOW _qn50oeknq NOSHOW
  422.     ENDIF
  423.     @ 0.313,3.000 SAY "Painter"  ;
  424.         FONT "MS Sans Serif", 14 ;
  425.         STYLE "BT"
  426.     @ 2.188,0.000 TO 2.188,62.500 ;
  427.         PEN 2, 8 ;
  428.         STYLE "1"
  429.     @ 0.813,49.125 SAY "Date:"  ;
  430.         FONT "MS Sans Serif", 8 ;
  431.         STYLE "BT"
  432.     @ 0.813,53.875 SAY date() ;
  433.         SIZE 1.000,9.400 ;
  434.         FONT "MS Sans Serif", 8
  435.     @ 3.063,3.250 SAY "Lastname:" ;
  436.         SIZE 1.000,10.500 ;
  437.         FONT "MS Sans Serif", 8 ;
  438.         STYLE "BIT" ;
  439.         PICTURE "@J" ;
  440.         COLOR RGB(,,,255,255,255)
  441.     @ 3.063,13.125 GET m.lastname ;
  442.         SIZE 1.000,70.000 ;
  443.         DEFAULT " " ;
  444.         FONT "MS Sans Serif", 8 ;
  445.         PICTURE "@K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ;
  446.         WHEN isediting ;
  447.         COLOR ,RGB(,,,255,255,255)
  448.     @ 4.563,3.250 SAY "Firstname:" ;
  449.         SIZE 1.000,10.500 ;
  450.         FONT "MS Sans Serif", 8 ;
  451.         STYLE "BIT" ;
  452.         PICTURE "@J" ;
  453.         COLOR RGB(,,,255,255,255)
  454.     @ 4.563,13.125 GET m.firstname ;
  455.         SIZE 1.000,70.000 ;
  456.         DEFAULT " " ;
  457.         FONT "MS Sans Serif", 8 ;
  458.         PICTURE "@K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ;
  459.         WHEN isediting ;
  460.         COLOR ,RGB(,,,255,255,255)
  461.     @ 6.063,3.250 SAY "Nationalit:" ;
  462.         SIZE 1.000,10.500 ;
  463.         FONT "MS Sans Serif", 8 ;
  464.         STYLE "BIT" ;
  465.         PICTURE "@J" ;
  466.         COLOR RGB(,,,255,255,255)
  467.     @ 6.063,13.125 GET m.nationalit ;
  468.         SIZE 1.000,70.000 ;
  469.         DEFAULT " " ;
  470.         FONT "MS Sans Serif", 8 ;
  471.         PICTURE "@K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ;
  472.         WHEN isediting ;
  473.         COLOR ,RGB(,,,255,255,255)
  474.     @ 7.563,3.250 SAY "Birthdate:" ;
  475.         SIZE 1.000,10.500 ;
  476.         FONT "MS Sans Serif", 8 ;
  477.         STYLE "BIT" ;
  478.         PICTURE "@J" ;
  479.         COLOR RGB(,,,255,255,255)
  480.     @ 7.563,13.125 GET m.birthdate ;
  481.         SIZE 1.000,9.200 ;
  482.         DEFAULT " " ;
  483.         FONT "MS Sans Serif", 8 ;
  484.         PICTURE "@K" ;
  485.         WHEN isediting ;
  486.         COLOR ,RGB(,,,255,255,255)
  487.     @ 9.063,3.250 SAY "Datedeath:" ;
  488.         SIZE 1.000,10.500 ;
  489.         FONT "MS Sans Serif", 8 ;
  490.         STYLE "BIT" ;
  491.         PICTURE "@J" ;
  492.         COLOR RGB(,,,255,255,255)
  493.     @ 9.063,13.125 GET m.datedeath ;
  494.         SIZE 1.000,9.200 ;
  495.         DEFAULT " " ;
  496.         FONT "MS Sans Serif", 8 ;
  497.         PICTURE "@K" ;
  498.         WHEN isediting ;
  499.         COLOR ,RGB(,,,255,255,255)
  500.     @ 10.563,3.250 SAY "Note:" ;
  501.         SIZE 1.000,10.500 ;
  502.         FONT "MS Sans Serif", 8 ;
  503.         STYLE "BIT" ;
  504.         PICTURE "@J" ;
  505.         COLOR RGB(,,,255,255,255)
  506.     @ 10.563,13.125 EDIT m.note ;
  507.         SIZE 5.000,55.000,0.000 ;
  508.         PICTURE "@K" ;
  509.         DEFAULT " " ;
  510.         FONT "MS Sans Serif", 8 ;
  511.         SCROLL ;
  512.         WHEN isediting ;
  513.         COLOR ,RGB(,,,255,255,255)
  514.     @ 15.313,0.000 TO 15.313,62.500 ;
  515.         PEN 2, 8 ;
  516.         STYLE "1"
  517.     @ 16.250,1.250 GET m.top_btn ;
  518.         PICTURE "@*HN \<Top" ;
  519.         SIZE 1.769,7.833,0.667 ;
  520.         DEFAULT 1 ;
  521.         FONT "MS Sans Serif", 8 ;
  522.         STYLE "B" ;
  523.         VALID btn_val('TOP') ;
  524.         MESSAGE 'Go to first record.'
  525.     @ 16.250,7.250 GET m.prev_btn ;
  526.         PICTURE "@*HN \<Prev" ;
  527.         SIZE 1.769,7.833,0.667 ;
  528.         DEFAULT 1 ;
  529.         FONT "MS Sans Serif", 8 ;
  530.         STYLE "B" ;
  531.         VALID btn_val('PREV') ;
  532.         MESSAGE 'Go to previous record.'
  533.     @ 16.250,13.250 GET m.next_btn ;
  534.         PICTURE "@*HN \<Next" ;
  535.         SIZE 1.769,7.833,0.667 ;
  536.         DEFAULT 1 ;
  537.         FONT "MS Sans Serif", 8 ;
  538.         STYLE "B" ;
  539.         VALID btn_val('NEXT') ;
  540.         MESSAGE 'Go to next record.'
  541.     @ 16.250,19.250 GET m.end_btn ;
  542.         PICTURE "@*HN \<End" ;
  543.         SIZE 1.769,7.833,0.667 ;
  544.         DEFAULT 1 ;
  545.         FONT "MS Sans Serif", 8 ;
  546.         STYLE "B" ;
  547.         VALID btn_val('END') ;
  548.         MESSAGE 'Go to last record.'
  549.     @ 16.250,25.250 GET m.loc_btn ;
  550.         PICTURE "@*HN \<Locate" ;
  551.         SIZE 1.769,7.833,0.667 ;
  552.         DEFAULT 1 ;
  553.         FONT "MS Sans Serif", 8 ;
  554.         STYLE "B" ;
  555.         VALID btn_val('LOCATE') ;
  556.         MESSAGE 'Locate a record.'
  557.     @ 16.250,31.250 GET m.add_btn ;
  558.         PICTURE "@*HN \<Add" ;
  559.         SIZE 1.769,7.833,0.667 ;
  560.         DEFAULT 1 ;
  561.         FONT "MS Sans Serif", 8 ;
  562.         STYLE "B" ;
  563.         VALID btn_val('ADD') ;
  564.         MESSAGE 'Add a new record.'
  565.     @ 16.250,37.250 GET m.edit_btn ;
  566.         PICTURE "@*HN Ed\<it" ;
  567.         SIZE 1.769,7.833,0.667 ;
  568.         DEFAULT 1 ;
  569.         FONT "MS Sans Serif", 8 ;
  570.         STYLE "B" ;
  571.         VALID btn_val('EDIT') ;
  572.         MESSAGE 'Edit current record.'
  573.     @ 16.250,43.250 GET m.del_btn ;
  574.         PICTURE "@*HN \<Delete" ;
  575.         SIZE 1.769,7.833,0.667 ;
  576.         DEFAULT 1 ;
  577.         FONT "MS Sans Serif", 8 ;
  578.         STYLE "B" ;
  579.         VALID btn_val('DELETE') ;
  580.         MESSAGE 'Delete current record.'
  581.     @ 16.250,49.250 GET m.prnt_btn ;
  582.         PICTURE "@*HN P\<rint" ;
  583.         SIZE 1.769,7.833,0.667 ;
  584.         DEFAULT 1 ;
  585.         FONT "MS Sans Serif", 8 ;
  586.         STYLE "B" ;
  587.         VALID btn_val('PRINT') ;
  588.         MESSAGE 'Print report.'
  589.     @ 16.250,55.250 GET m.exit_btn ;
  590.         PICTURE "@*HN \<Close" ;
  591.         SIZE 1.769,7.833,0.667 ;
  592.         DEFAULT 1 ;
  593.         FONT "MS Sans Serif", 8 ;
  594.         STYLE "B" ;
  595.         VALID btn_val('EXIT') ;
  596.         MESSAGE 'Close screen.'
  597.     
  598.     IF NOT WVISIBLE("_qn50oeknq")
  599.         ACTIVATE WINDOW _qn50oeknq
  600.     ENDIF
  601.     
  602.     
  603.     *       ╓─────────────────────────────────────────────────────────╖
  604.     *       ║                                                         ║
  605.     *       ║    WindowsREAD contains clauses from SCREEN painter2    ║
  606.     *       ║                                                         ║
  607.     *       ╙─────────────────────────────────────────────────────────╜
  608.     *
  609.     
  610.     READ CYCLE ;
  611.         ACTIVATE READACT() ;
  612.         DEACTIVATE READDEAC() ;
  613.         NOLOCK
  614.     
  615.     RELEASE WINDOW _qn50oeknq
  616.     
  617.     *       ╓─────────────────────────────────────────────────────────╖
  618.     *       ║                                                         ║
  619.     *       ║                Windows Closing Databases                ║
  620.     *       ║                                                         ║
  621.     *       ╙─────────────────────────────────────────────────────────╜
  622.     *
  623.     
  624.     IF USED("painter")
  625.         SELECT painter
  626.         USE
  627.     ENDIF
  628.     
  629.     SELECT (m.currarea)
  630.     
  631.     
  632.     #REGION 0
  633.     
  634.     SET READBORDER &rborder
  635.     
  636.     IF m.talkstat = "ON"
  637.         SET TALK ON
  638.     ENDIF
  639.     IF m.compstat = "ON"
  640.         SET COMPATIBLE ON
  641.     ENDIF
  642.     
  643.     
  644.     *       ╓─────────────────────────────────────────────────────────╖
  645.     *       ║                                                         ║
  646.     *       ║              PAINTER2/Windows Cleanup Code              ║
  647.     *       ║                                                         ║
  648.     *       ╙─────────────────────────────────────────────────────────╜
  649.     *
  650.     
  651.     #REGION 1
  652.     SET DELETED &wzolddelete
  653.     ON ERROR &wzolderror
  654.     
  655.     ****Procedures****
  656.  
  657. ENDCASE
  658.  
  659.  
  660.  
  661. *       ╓─────────────────────────────────────────────────────────╖
  662. *       ║                                                         ║
  663. *       ║  PAINTER2/Windows Supporting Procedures and Functions   ║
  664. *       ║                                                         ║
  665. *       ╙─────────────────────────────────────────────────────────╜
  666. *
  667.  
  668. #REGION 1
  669. PROCEDURE readdeac
  670.   IF isediting
  671.     ACTIVATE WINDOW (WLAST())
  672.     WAIT WINDOW C_EDITS NOWAIT
  673.   ENDIF
  674.   IF !WVISIBLE(WOUTPUT())
  675.     CLEAR READ
  676.     RETURN .T.
  677.   ENDIF
  678. RETURN .F.
  679.  
  680. PROCEDURE readact
  681.   IF !isediting
  682.       SELECT (m.wzalias)
  683.       SHOW GETS
  684.   ENDIF
  685. RETURN
  686.  
  687. PROCEDURE fox_alert
  688.     PARAMETER wzalrtmess
  689.     PRIVATE alrtbtn
  690.     m.alrtbtn=2
  691.     DEFINE WINDOW _qec1ij2t7 AT 0,0 SIZE 8,50 ;
  692.       FONT "MS Sans Serif",10 STYLE 'B' ;
  693.       FLOAT NOCLOSE NOMINIMIZE DOUBLE TITLE WTITLE()
  694.     MOVE WINDOW _qec1ij2t7 CENTER
  695.     ACTIVATE WINDOW _qec1ij2t7 NOSHOW
  696.     @ 2,(50-txtwidth(wzalrtmess))/2 SAY wzalrtmess;
  697.       FONT "MS Sans Serif", 10 STYLE "B"
  698.     @ 6,18 GET m.alrtbtn ;
  699.       PICTURE "@*HT \<OK;\?\!\<Cancel" ;
  700.       SIZE 1.769,8.667,1.333 ;
  701.       FONT "MS Sans Serif", 8 STYLE "B"
  702.     ACTIVATE WINDOW _qec1ij2t7
  703.     READ CYCLE MODAL
  704.     RELEASE WINDOW _qec1ij2t7
  705. RETURN m.alrtbtn=1
  706.  
  707.  
  708. PROCEDURE BTN_VAL
  709.     PARAMETER m.btnname
  710.     DO CASE
  711.     CASE  m.btnname='TOP'
  712.         GO TOP
  713.         WAIT WINDOW C_TOPFILE NOWAIT
  714.     CASE  m.btnname='PREV'
  715.         IF !BOF()
  716.             SKIP -1
  717.          ENDIF
  718.          IF BOF()
  719.             WAIT WINDOW C_TOPFILE NOWAIT
  720.             GO TOP
  721.         ENDIF
  722.     CASE  m.btnname='NEXT'
  723.         IF !EOF()
  724.             SKIP 1
  725.         ENDIF
  726.         IF EOF()
  727.             WAIT WINDOW C_ENDFILE NOWAIT
  728.             GO BOTTOM
  729.         ENDIF
  730.     CASE  m.btnname='END'
  731.         GO BOTTOM
  732.         WAIT WINDOW C_ENDFILE NOWAIT
  733.     CASE  m.btnname='LOCATE'
  734.         DEFINE WINDOW wzlocate FROM 1,1 TO 15,35;
  735.             SYSTEM GROW CLOSE ZOOM FLOAT
  736.         MOVE WINDOW wzlocate CENTER
  737.         BROWSE WINDOW wzlocate NOEDIT NODELETE NOMENU ;
  738.             TITLE C_BRTITLE
  739.         RELEASE WINDOW wzlocate
  740.     CASE  m.btnname='ADD'  AND !isediting &&add record
  741.         isediting=.T.
  742.         isadding=.T.
  743.         =edithand('ADD')
  744.         _curobj=1
  745.         DO refresh
  746.         SHOW GETS
  747.         RETURN
  748.     CASE  m.btnname='EDIT'  AND !isediting &&edit record
  749.         IF EOF() OR BOF()
  750.             WAIT WINDOW C_ENDFILE NOWAIT
  751.             RETURN
  752.         ENDIF
  753.         IF RLOCK()
  754.             isediting=.T.
  755.             _curobj=1
  756.             DO refresh
  757.             RETURN
  758.         ELSE
  759.             WAIT WINDOW C_NOLOCK
  760.         ENDIF
  761.     CASE m.btnname='EDIT'  AND isediting &&save record
  762.         IF isadding
  763.             =edithand('SAVE')
  764.         ELSE
  765.             GATHER MEMVAR MEMO
  766.             UNLOCK
  767.         ENDIF
  768.         isediting=.F.
  769.         isadding=.F.
  770.         DO refresh
  771.     CASE m.btnname='DELETE'  AND isediting     &&cancel record
  772.         IF isadding
  773.             =edithand('CANCEL')
  774.         ENDIF
  775.         isediting=.F.
  776.         isadding=.F.
  777.         WAIT WINDOW C_ECANCEL NOWAIT
  778.         DO refresh
  779.     CASE m.btnname='DELETE'
  780.         IF EOF() OR BOF()
  781.             WAIT WINDOW C_ENDFILE NOWAIT
  782.             RETURN
  783.         ENDIF
  784.         IF fox_alert(C_DELREC)
  785.             DELETE
  786.             IF !EOF()
  787.                 SKIP 1
  788.             ENDIF
  789.             IF EOF()
  790.                 WAIT WINDOW C_ENDFILE NOWAIT
  791.                 GO BOTTOM
  792.             ENDIF
  793.         ENDIF
  794.     CASE m.btnname='PRINT'
  795.       PRIVATE sOldError,wizfname,saverec,savearea,tmpcurs,tmpstr
  796.       PRIVATE prnt_btn,p_recs,p_output,pr_out,pr_record
  797.       STORE 1 TO p_recs,p_output
  798.       STORE 0 TO prnt_btn
  799.       STORE RECNO() TO saverec
  800.       m.sOldError=ON('error')
  801.       DO pdialog
  802.       IF m.prnt_btn = 2
  803.         RETURN
  804.       ENDIF
  805.       IF !FILE(ALIAS()+'.FRX')
  806.           m.wizfname=SYS(2004)+'WIZARDS\'+'WIZARD.APP'
  807.           IF !FILE(m.wizfname)
  808.             ON ERROR *
  809.             m.wizfname=LOCFILE('WIZARD.APP','APP','Locate WIZARD.APP:')
  810.             ON ERROR &sOldError
  811.             IF !'WIZARD.APP'$UPPER(m.wizfname)
  812.                   WAIT WINDOW C_NOWIZ
  813.                   RETURN
  814.             ENDIF
  815.           ENDIF
  816.          WAIT WINDOW C_MAKEREPO NOWAIT
  817.         m.savearea=SELECT()
  818.         m.tmpcurs='_'+LEFT(SYS(3),7)
  819.         CREATE CURSOR (m.tmpcurs) (comment m)
  820.         m.tmpstr = '* LAYOUT = COLUMNAR'+CHR(13)+CHR(10)
  821.         INSERT INTO (m.tmpcurs) VALUES(m.tmpstr)
  822.         SELECT (m.savearea)
  823.           DO (m.wizfname) WITH '','WZ_QREPO','NOSCRN/CREATE','',m.tmpcurs
  824.         USE IN (m.tmpcurs)
  825.          WAIT CLEAR
  826.           IF !FILE(ALIAS()+'.FRX')  &&wizard could not create report
  827.              WAIT WINDOW C_NOREPO
  828.              RETURN
  829.           ENDIF
  830.       ENDIF
  831.     
  832.         m.pr_out=IIF(m.p_output=1,'TO PRINT NOCONSOLE','PREVIEW')
  833.       m.pr_record=IIF(m.p_recs=1,'NEXT 1','ALL')
  834.       ON ERROR *
  835.         REPORT FORM (ALIAS()) &pr_out &pr_record
  836.       ON ERROR &sOldError
  837.       GO m.saverec
  838.  
  839.     CASE m.btnname='EXIT'
  840.         m.bailout=.T.    &&this is needed if used with FoxApp
  841.         CLEAR READ
  842.         RETURN
  843.     ENDCASE
  844.     SCATTER MEMVAR MEMO
  845.     SHOW GETS
  846. RETURN
  847.  
  848. PROCEDURE REFRESH
  849.   IF isediting
  850.     SHOW GET top_btn DISABLE
  851.     SHOW GET prev_btn DISABLE
  852.     SHOW GET next_btn DISABLE
  853.     SHOW GET end_btn DISABLE
  854.     SHOW GET loc_btn DISABLE
  855.     SHOW GET add_btn DISABLE
  856.     SHOW GET del_btn DISABLE
  857.     SHOW GET exit_btn DISABLE
  858.     SHOW GET prnt_btn DISABLE
  859.     
  860.     SHOW GET edit_btn,1 PROMPT "\<Save"
  861.     SHOW GET del_btn,1 PROMPT "\<Cancel"
  862.   ELSE
  863.     SHOW GET edit_btn,1 PROMPT "\<Edit"
  864.     SHOW GET del_btn,1 PROMPT "\<Delete"
  865.     SHOW GETS ENABLE
  866.   ENDIF
  867. RETURN
  868.  
  869.  
  870. PROCEDURE pdialog
  871.     DEFINE WINDOW _qjn12zbvh ;
  872.         AT  0.000, 0.000  ;
  873.         SIZE 13.231,54.800 ;
  874.         TITLE "Microsoft FoxPro" ;
  875.         FONT "MS Sans Serif", 8 ;
  876.         FLOAT NOCLOSE MINIMIZE SYSTEM
  877.     MOVE WINDOW _qjn12zbvh CENTER
  878.     ACTIVATE WINDOW _qjn12zbvh NOSHOW
  879.     @ 2.846,33.600 SAY "Output:"  ;
  880.         FONT "MS Sans Serif", 8 ;
  881.         STYLE "BT"
  882.     @ 2.846,4.800 SAY "Print:"  ;
  883.         FONT "MS Sans Serif", 8 ;
  884.         STYLE "BT"
  885.     @ 4.692,7.200 GET m.p_recs ;
  886.         PICTURE "@*RVN \<Current Record;\<All Records" ;
  887.         SIZE 1.308,18.500,0.308 ;
  888.         DEFAULT 1 ;
  889.         FONT "MS Sans Serif", 8 ;
  890.         STYLE "BT"
  891.     @ 4.692,36.000 GET m.p_output ;
  892.         PICTURE "@*RVN \<Printer;Pre\<view" ;
  893.         SIZE 1.308,12.000,0.308 ;
  894.         DEFAULT 1 ;
  895.         FONT "MS Sans Serif", 8 ;
  896.         STYLE "BT"
  897.     @ 10.154,16.600 GET m.prnt_btn ;
  898.         PICTURE "@*HT \<Print;\<Cancel" ;
  899.         SIZE 1.769,8.667,0.667 ;
  900.         DEFAULT 1 ;
  901.         FONT "MS Sans Serif", 8 ;
  902.         STYLE "B"
  903.     ACTIVATE WINDOW _qjn12zbvh
  904.     READ CYCLE MODAL
  905.     RELEASE WINDOW _qjn12zbvh
  906. RETURN
  907.  
  908. PROCEDURE wizerrorhandler
  909. * This very simple error handler is primarily intended
  910. * to trap for General field OLE errors which may occur
  911. * during editing from the MODIFY GENERAL window.
  912. WAIT WINDOW message()
  913. RETURN
  914.  
  915. PROCEDURE edithand
  916.     PARAMETER m.paction
  917.     * procedure handles edits
  918.     DO CASE
  919.     CASE m.paction = 'ADD'
  920.         SCATTER MEMVAR MEMO BLANK
  921.     CASE m.paction = 'SAVE'
  922.         INSERT INTO (ALIAS()) FROM MEMVAR
  923.     CASE m.paction = 'CANCEL'
  924.         * nothing here
  925.     ENDCASE
  926. RETURN