home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / SAMPLES / CUSTOMER.PRG < prev    next >
Text File  |  1994-06-13  |  4KB  |  165 lines

  1. // FiveWin Report Class Tutorial
  2. // FiveWin printing tools
  3.  
  4. #include "FiveWin.ch"
  5. #include "Customer.ch"
  6.  
  7. static oWnd, oClients, oClient, oName
  8. static cName
  9.  
  10. //----------------------------------------------------------------------------//
  11.  
  12. function Main()
  13.  
  14.    SET 3DLOOK ON
  15.  
  16.    USE Customer ALIAS Clients
  17.    USE Sales NEW
  18.    SELECT Clients
  19.  
  20.    DEFINE WINDOW oWnd TITLE "Reporting tools" MDI ;
  21.       MENU BuildMenu() COLOR "N/W"
  22.  
  23.    DEFINE BUTTONBAR OF oWnd
  24.  
  25.    SET MESSAGE OF oWnd TO "Testing the FiveWin Report Class" CENTERED
  26.  
  27.    ACTIVATE WINDOW oWnd ;
  28.       VALID MsgYesNo( "Do you want to end?" )
  29.  
  30. return nil
  31.  
  32. //----------------------------------------------------------------------------//
  33.  
  34. function BuildMenu()
  35.  
  36.    local oMenu
  37.  
  38.    MENU oMenu
  39.       MENUITEM "&DataBases"
  40.       MENU
  41.          MENUITEM "&Clients..." ACTION  BrwClients() ;
  42.             MESSAGE "Clients management"
  43.  
  44.          MENUITEM "&Report..." ACTION GenReport()
  45.          SEPARATOR
  46.          MENUITEM "&End" ACTION oWnd:End() ;
  47.             MESSAGE "End this test"
  48.  
  49.       ENDMENU
  50.  
  51.       oMenu:AddMdi()              // Add standard MDI menu options
  52.  
  53.    ENDMENU
  54.  
  55. return oMenu
  56.  
  57. //----------------------------------------------------------------------------//
  58.  
  59. function BrwClients()
  60.  
  61.    local oBrw, oIco, oBar
  62.  
  63.    if oClients != nil
  64.       return nil
  65.    endif
  66.  
  67.    DEFINE ICON oIco FILENAME "..\icons\customer.ico"
  68.  
  69.    DEFINE WINDOW oClients TITLE "Clients management" ;
  70.       MDICHILD ICON oIco
  71.  
  72.    DEFINE BUTTONBAR oBar OF oClients
  73.  
  74.    DEFINE BUTTON OF oBar ACTION ShowClient()
  75.  
  76.    @ 2, 0 LISTBOX oBrw FIELDS OF oClients ;
  77.       SIZE 500, 500 ;
  78.       ON CHANGE ChangeClient()
  79.  
  80.    oClients:SetControl( oBrw )
  81.  
  82.    ACTIVATE WINDOW oClients ;
  83.       VALID( oClients := nil, .t. )        // We destroy the object
  84.  
  85. return nil
  86.  
  87. //----------------------------------------------------------------------------//
  88.  
  89. function GenReport()
  90.  
  91.    local oWnd, oIco
  92.  
  93.    DEFINE ICON oIco FILENAME "..\icons\print.ico"
  94.  
  95.    DEFINE WINDOW oWnd MDICHILD TITLE "Clients report" ;
  96.       VSCROLL HSCROLL ICON oIco
  97.  
  98.    ACTIVATE WINDOW oWnd
  99.  
  100. return nil
  101.  
  102. //----------------------------------------------------------------------------//
  103.  
  104. function ShowClient()
  105.  
  106.    local oIco
  107.  
  108.    if oClient != nil
  109.       return nil
  110.    endif
  111.  
  112.    DEFINE ICON oIco FILENAME "..\icons\Person.ico"
  113.  
  114.    DEFINE DIALOG oClient RESOURCE "Client" ;
  115.       ICON oIco
  116.  
  117.    REDEFINE SAY ID 3 OF oClient   // To get the proper color
  118.    REDEFINE SAY ID 4 OF oClient
  119.    REDEFINE SAY ID 5 OF oClient
  120.  
  121.    REDEFINE GET oName VAR cName ID ID_NAME OF oClient
  122.  
  123.    REDEFINE BUTTON ID ID_NEXT OF oClient ACTION GoNext()
  124.  
  125.    SELECT Sales     // We select Sales to properly initialize the Browse
  126.  
  127.    REDEFINE LISTBOX FIELDS ID ID_SALES OF oClient
  128.  
  129.    ACTIVATE DIALOG oClient CENTERED NOWAIT ;
  130.       VALID ( oClient := nil, .t. )           // Destroy the object
  131.  
  132.    SELECT Clients
  133.  
  134. return nil
  135.  
  136. //----------------------------------------------------------------------------//
  137.  
  138. function ChangeClient()
  139.  
  140.    if oClient != nil
  141.       cName = AllTrim( Clients->Last ) + ", " + Clients->First
  142.       oName:Refresh()
  143.    endif
  144.  
  145. return nil
  146.  
  147. //----------------------------------------------------------------------------//
  148.  
  149. function GoNext()
  150.  
  151.    if oClients != nil
  152.       oClients:oControl:GoDown()
  153.    else
  154.       SKIP
  155.       if EoF()
  156.          GO BOTTOM
  157.       endif
  158.    endif
  159.  
  160.    ChangeClient()
  161.  
  162. return nil
  163.  
  164. //----------------------------------------------------------------------------//
  165.