home *** CD-ROM | disk | FTP | other *** search
/ DOS Wares / doswares.zip / doswares / DATABASE / DBASE5 / CUA_SAMP.ZIP / VNDRENTR.PRG < prev   
Encoding:
Text File  |  1994-06-24  |  5.6 KB  |  169 lines

  1. **************************************************************
  2. * Vndrentr.prg
  3. *  A data entry program that uses UI objects and the sample
  4. *  database Client.dbf. It accompanies Chapter 23 of the
  5. *  "Programmer's Guide."
  6. **************************************************************
  7. *
  8. *-------------------------------------------------------------
  9. * FORM dClient
  10. * Client data entry form window. Its event handlers open the 
  11. * database and set the evironment. Three custom properties, 
  12. * TalkSet, EchoSet, and CUASet, save the TALK, ECHO, and 
  13. * CUAENTER settings so they can be set to those same values 
  14. * when the program exits.
  15. *-------------------------------------------------------------
  16.  
  17. USE CLIENT           && Temporary until EDITOR DataSource works with 
  18.                      && USE done in OnOpen event.
  19. DEFINE FORM dClient FROM 1,4 TO 20,76 ;
  20.    PROPERTY ;
  21.       Text "Enter customer data", ;
  22.       OnOpen FormOpen, ;
  23.       OnClose FormClose ;
  24.  
  25. dClient.TalkSet = SET("TALK")   && Save setting of TALK.
  26. dClient.EchoSet = SET("ECHO")   && Save setting of ECHO.
  27. dClient.CUASet = SET("CUAENTER")&& Save setting of CUAENTER.
  28.  
  29. DEFINE TEXT t1 OF dClient AT 1,2  ;
  30.    PROPERTY  Text "Client identifier"
  31.  
  32. DEFINE ENTRYFIELD ef1 OF dClient AT 2,5;
  33.    PROPERTY ;
  34.       Width 6, Datalink "CLIENT_ID", ;
  35.       StatusMessage "Enter unique client id (format A12345)." 
  36.  
  37. DEFINE TEXT t2 OF dClient AT 3,2  ;
  38.    PROPERTY  Text "Company"
  39.  
  40. DEFINE ENTRYFIELD ef2 OF dClient AT 4,5 ;
  41.    PROPERTY ;
  42.       Width 30, Datalink "CLIENT", ;
  43.       StatusMessage "Enter company name." 
  44.  
  45. DEFINE TEXT t3 OF dClient AT 5,2 ;
  46.    PROPERTY Text "First name"
  47.  
  48. DEFINE ENTRYFIELD ef3 OF dClient AT 6,5 ;
  49.    PROPERTY ;
  50.      Width 15, Datalink "FIRSTNAME", ;
  51.       StatusMessage "Enter first name of contact." 
  52.  
  53. DEFINE TEXT t4 OF dClient AT 7,2  ;
  54.    PROPERTY Text "Last name"
  55.  
  56. DEFINE ENTRYFIELD ef4 OF dClient AT 8,5 ;
  57.    PROPERTY ;
  58.       Width 15, Datalink "LASTNAME", ;
  59.       StatusMessage "Enter last name of contact." 
  60.  
  61. DEFINE TEXT t5 OF dClient AT 9,2  ;
  62.    PROPERTY Text "Address"
  63.  
  64. DEFINE ENTRYFIELD ef5 OF dClient AT 10,5 ;
  65.    PROPERTY ;
  66.       Width 30, Datalink "ADDRESS", ;
  67.       StatusMessage "Enter company address." 
  68.  
  69. DEFINE TEXT t6 OF dClient AT 11,2  ;
  70.    PROPERTY Text "City"
  71.  
  72. DEFINE ENTRYFIELD ef6 OF dClient AT 12,5 ;
  73.    PROPERTY ;
  74.       Width 20, Datalink "City", ;
  75.       StatusMessage "Enter city where company is located." 
  76.  
  77. DEFINE TEXT t7 OF dClient AT 11,30  ;
  78.    PROPERTY Text "State"
  79.  
  80. DEFINE ENTRYFIELD ef7 OF dClient AT 12,33 ;
  81.    PROPERTY ;
  82.       Width 2, Datalink "STATE", ;
  83.       StatusMessage "Enter state where company is located." 
  84.  
  85. DEFINE TEXT t8 OF dClient AT 13,2  ;
  86.    PROPERTY Text "Zip code"
  87.  
  88. DEFINE ENTRYFIELD ef8 OF dClient AT 14,5;
  89.    PROPERTY ;
  90.       Width 10, Datalink "ZIP", ;
  91.       StatusMessage "Enter zip code where company is located." 
  92.  
  93. DEFINE TEXT t9 OF dClient AT 13,19  ;
  94.    PROPERTY Text "Phone number"
  95.  
  96. DEFINE ENTRYFIELD ef9 OF dClient AT 14,22;
  97.    PROPERTY ;
  98.       Width 13, Datalink "PHONE", PICTURE "(999)999-9999", ;
  99.       StatusMessage "Enter phone number of company contact, area code first." 
  100.  
  101. DEFINE TEXT t10 OF dClient AT 1,46 ;
  102.    PROPERTY Text "Client history" 
  103.  
  104. DEFINE EDITOR ed1 OF dClient ;
  105.    FROM 2,38 TO 14,68 ;
  106.    PROPERTY ;
  107.       Datasource "MEMO CLIEN_HIST", ;
  108.       StatusMessage "Enter notes about customer and account.", ;
  109.       WordWrap .T.
  110.  
  111. DEFINE PUSHBUTTON pb1 OF dClient AT 16,30 ;
  112.    PROPERTY ;
  113.        OnClick Previous, Text "&<<", Width 6, ;
  114.       StatusMessage "Go to previous record." 
  115.  
  116. DEFINE PUSHBUTTON pb2 OF dClient AT 16,37 ;
  117.    PROPERTY ;
  118.       OnClick Next, Text ">&>", Width 6, Default .T., ;
  119.       StatusMessage "Go to next record."
  120.  
  121. lVoid = dClient.Open()             && Open the form window.
  122.  
  123. PROCEDURE FormOpen                 && OnOpen event handler for form window dClient.
  124.    USE CLIENT IN 1                 && Open Client database.
  125.    CLEAR
  126.    SET TALK OFF
  127.    SET ECHO OFF
  128.    SET CUAENTER ON
  129.    lVoid = dClient.ef1.SetFocus()  && Give focus to first entry field on form.
  130. RETURN
  131.  
  132. PROCEDURE FormClose        && OnClose event handler for form window dClient.
  133.    USE IN 1                && Close Client database.
  134.    IF this.TalkSet = "ON"  && If TALK was on before starting,
  135.       SET TALK ON          && set it back on. 
  136.    ENDIF
  137.    IF this.EchoSet = "ON"  && If ECHO was on before starting, 
  138.       SET ECHO ON          && set it back on.
  139.    ENDIF
  140.    IF this.CUASet = "OFF"  && If CUAENTER was off before starting, 
  141.       SET CUAENTER OFF     && turn it back off.
  142.    ENDIF
  143. RETURN
  144.  
  145. PROCEDURE Next                    && OnClick event handler for pushbutton pb1.
  146.    lVoid = dClient.Submit()       && Write current contents of form to database.
  147.  
  148.    IF EOF()                       && If at EOF, can't move to next record.
  149.       APPEND BLANK                && Append new, blank record to end of database.
  150.    ELSE 
  151.       SKIP                        && Not at EOF, so skip to next record.
  152.       lVoid = dClient.Refresh()   && Display record contents in form.
  153.    ENDIF
  154.  
  155.    lVoid = dClient.ef1.SetFocus() && Give focus again to first entry field.
  156. RETURN
  157.  
  158. PROCEDURE Previous                && OnClick event handler for pushbutton pb2.
  159.    lVoid = dClient.Submit()       && Write current contents of form to database.
  160.  
  161.    IF BOF()                       && If at beginning, cannot move back one.
  162. *     do nothing
  163.    ELSE
  164.       SKIP -1                     && Not at beginning, so move back one record.
  165.       lVoid = dClient.Refresh()   && Display record contents in form.   
  166.    ENDIF
  167.    lVoid = dClient.ef1.SetFocus() && Give focus to first entry field.
  168. RETURN
  169.