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

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