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

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