home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 10 / ioProg_10.iso / soft / optima / samples.z / Form_Customers.wxf < prev    next >
Encoding:
Text File  |  1996-05-08  |  12.9 KB  |  543 lines

  1. Save Format v1.3
  2. @begin Form "Form_Customers"
  3.  Exported 0;
  4.  
  5.  @begin Object "WModelessDialog"
  6.   WSCaption 1;
  7.   WSSizeable 1;
  8.   WSDlgBorder 1;
  9.   WSSysMenu 1;
  10.   WSSystemMenu 1;
  11.   WSMinimizeBox 1;
  12.   WSMaximizeBox 1;
  13.   WSGroup 1;
  14.   WSTabStop 1;
  15.   WSResizeBorder 1;
  16.   WSVisible 1;
  17.   StatusBar "StatusBarAtBottom";
  18.   Icon "WIcon( WResourceID( ICON_CUSTOMER ) )";
  19.   FormPositionType "Centered";
  20.   FormAbsTop "108";
  21.   FormAbsLeft "125";
  22.   FDXStructName "Form_CustomersFDXStruct";
  23.   Font "8.MS Sans Serif";
  24.   Text "Customers";
  25.   @begin Event "Create"
  26.    GencodeSrcLine 172;
  27.    FunctionName "Form_Customers::Form_Customers_Create";
  28.   @end;
  29.   @begin Event "Destroy"
  30.    GencodeSrcLine 187;
  31.    FunctionName "Form_Customers::Form_Customers_Destroy";
  32.   @end;
  33.   @begin UserFunction "Form_Customers()"
  34.    Compiler 1;
  35.    GencodeSrcLine 197;
  36.    FunctionName "Form_Customers::Form_Customers()";
  37.   @end;
  38.   @begin UserFunction "~Form_Customers()"
  39.    Compiler 1;
  40.    GencodeSrcLine 201;
  41.    FunctionName "Form_Customers::~Form_Customers()";
  42.   @end;
  43.   @begin UserFunction "Open( WForm * parent )"
  44.    GencodeSrcLine 205;
  45.    FunctionName "Form_Customers::Open( WForm * parent )";
  46.   @end;
  47.   @begin UserFunction "Prototype for Open( WForm * parent )"
  48.    Private 1;
  49.    GencodeSrcLine 69;
  50.    FunctionName "Form_Customers::Prototype for Open( WForm * parent )";
  51.   @end;
  52.   @begin UserFunction "customerEdit( WLong index )"
  53.    Private 1;
  54.    GencodeSrcLine 213;
  55.    FunctionName "Form_Customers::customerEdit( WLong index )";
  56.   @end;
  57.   @begin UserFunction "Prototype for customerEdit( WLong index )"
  58.    Private 1;
  59.    GencodeSrcLine 71;
  60.    FunctionName "Form_Customers::Prototype for customerEdit( WLong index )";
  61.   @end;
  62.   @begin UserFunction "customerNew( void )"
  63.    Private 1;
  64.    GencodeSrcLine 241;
  65.    FunctionName "Form_Customers::customerNew( void )";
  66.   @end;
  67.   @begin UserFunction "Prototype for customerNew( void )"
  68.    Private 1;
  69.    GencodeSrcLine 73;
  70.    FunctionName "Form_Customers::Prototype for customerNew( void )";
  71.   @end;
  72.   @begin UserFunction "customerDelete( WLong index )"
  73.    Private 1;
  74.    GencodeSrcLine 254;
  75.    FunctionName "Form_Customers::customerDelete( WLong index )";
  76.   @end;
  77.   @begin UserFunction "Prototype for customerDelete( WLong index )"
  78.    Private 1;
  79.    GencodeSrcLine 75;
  80.    FunctionName "Form_Customers::Prototype for customerDelete( WLong index )";
  81.   @end;
  82.   @begin UserFunction "Refresh( void )"
  83.    GencodeSrcLine 273;
  84.    FunctionName "Form_Customers::Refresh( void )";
  85.   @end;
  86.   @begin UserFunction "Prototype for Refresh( void )"
  87.    Private 1;
  88.    GencodeSrcLine 77;
  89.    FunctionName "Form_Customers::Prototype for Refresh( void )";
  90.   @end;
  91.   @begin UserFunction "menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event )"
  92.    Private 1;
  93.    GencodeSrcLine 281;
  94.    FunctionName "Form_Customers::menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event )";
  95.   @end;
  96.   @begin UserFunction "Prototype for menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event )"
  97.    Private 1;
  98.    GencodeSrcLine 79;
  99.    FunctionName "Form_Customers::Prototype for menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event )";
  100.   @end;
  101.   ResID 102;
  102.   DesignName Form_Customers;
  103.   TabIndex 0;
  104.   DesignRect 102,57,292,166;
  105.  @end;
  106.  
  107.  @begin Menu
  108.   ItemCount 3;
  109.   DesignName "menu_Main";
  110.   IsDefault 1;
  111.   ResID 101;
  112.   DesignRect 25,105,19,17;
  113.   @begin Popup
  114.    Name "Customer";
  115.    Caption "&Customer";
  116.    NegotiatePosition None;
  117.    @begin Item
  118.     Name "CustomerNew";
  119.     Caption "&New...";
  120.     ResID 1001;
  121.     NegotiatePosition None;
  122.     @begin Event "Click"
  123.      GencodeSrcLine 308;
  124.      FunctionName "Form_Customers::menu_Main_CustomerNew_Click";
  125.     @end;
  126.    @end;
  127.    @begin Item
  128.     Name "CustomerEdit";
  129.     Caption "&Edit...";
  130.     ResID 1002;
  131.     NegotiatePosition None;
  132.     @begin Event "Click"
  133.      GencodeSrcLine 300;
  134.      FunctionName "Form_Customers::menu_Main_CustomerEdit_Click";
  135.     @end;
  136.    @end;
  137.    @begin Item
  138.     Name "CustomerDelete";
  139.     Caption "&Delete...";
  140.     ResID 1003;
  141.     NegotiatePosition None;
  142.     @begin Event "Click"
  143.      GencodeSrcLine 292;
  144.      FunctionName "Form_Customers::menu_Main_CustomerDelete_Click";
  145.     @end;
  146.    @end;
  147.    Separator ;
  148.    @begin Item
  149.     Name "CustomerSort";
  150.     Caption "&Sort Descending";
  151.     ResID 1005;
  152.     NegotiatePosition None;
  153.     @begin Event "Click"
  154.      GencodeSrcLine 316;
  155.      FunctionName "Form_Customers::menu_Main_CustomerSort_Click";
  156.     @end;
  157.    @end;
  158.   @end;
  159.  @end;
  160.  
  161.  @begin Object "WQuery"
  162.   BindLimit "0";
  163.   CursorType "WQCTDynamic";
  164.   SQL "SELECT  customer.id AS \"ID\", customer.lname AS \"Last Name\", customer.fname AS \"First Name\", customer.company_name AS \"Company\"\r\nFROM \"DBA\".\"customer\" AS customer\r\n";
  165.   AutoRefresh "0";
  166.   AutoEdit "0";
  167.   Transaction "Form_Main::transaction_OrderEntry";
  168.   AutoOpen "0";
  169.   ResID 102;
  170.   DesignName query_Customers;
  171.   TabIndex 1;
  172.   DesignRect 0,105,19,17;
  173.  @end;
  174.  
  175.  @begin Object "WListView"
  176.   WLVSReport 1;
  177.   WLVSSingleSelection 1;
  178.   WLVSShareImageLists 1;
  179.   WCCSTop 1;
  180.   WCCSNoResize 1;
  181.   WCCSNoDivider 1;
  182.   WSChild 1;
  183.   WSMinimizeBox 1;
  184.   WSMaximizeBox 1;
  185.   WSGroup 1;
  186.   WSTabStop 1;
  187.   WSVisible 1;
  188.   DataKeptRows "30";
  189.   DataColumns "ID;\"Last Name\";\"First Name\";Company;";
  190.   DataGuardRows "5";
  191.   DataSource "Form_Customers::query_Customers";
  192.   ToolTipText "Click with the right mouse button for a context menu";
  193.   @begin Event "ColumnClick"
  194.    GencodeSrcLine 324;
  195.    FunctionName "Form_Customers::lv_Customers_ColumnClick";
  196.   @end;
  197.   @begin Event "DoubleClick"
  198.    GencodeSrcLine 333;
  199.    FunctionName "Form_Customers::lv_Customers_DoubleClick";
  200.   @end;
  201.   ResID 103;
  202.   DesignName lv_Customers;
  203.   TabIndex 2;
  204.   DesignRect 0,0,285,100;
  205.  @end;
  206.  
  207.  @begin HPPPrefixBlock
  208. @begin-code HPPPrefix
  209.  
  210. // Declarations added here will be included at the top of the .HPP file
  211. #include "ViewHelper.hpp"
  212.  
  213. @end-code;
  214.   GencodeSrcLine 11;
  215.  @end;
  216.  
  217.  @begin CPPPrefixBlock
  218. @begin-code CPPPrefix
  219.  
  220. // Code added here will be included at the top of the .CPP file
  221.  
  222. //  Include definitions for resources.
  223. #include "WRes.h"
  224. #include "Form_CustomerDetail.hpp"
  225.  
  226. @end-code;
  227.   GencodeSrcLine 10;
  228.  @end;
  229.  
  230.  @begin ClassContentsBlock
  231. @begin-code ClassContents
  232.  
  233.     public:
  234.         // add your public instance data here
  235.     private:
  236.         // add your private instance data here
  237.         ViewHelper          _view;
  238.     protected:
  239.         // add your protected instance data here
  240.  
  241. @end-code;
  242.   GencodeSrcLine 62;
  243.  @end;
  244.  
  245. @begin-code GeneratedClassContents
  246.  
  247.         Form_Customers();
  248.         ~Form_Customers();
  249.  
  250. @end-code;
  251.  
  252. @begin-code Code "Form_Customers::Form_Customers()"
  253.  
  254. Form_Customers::Form_Customers()
  255. : _view( this, (ViewCreateFunction)&Form_Customers::Create )
  256. {
  257. }
  258.  
  259. @end-code;
  260.  
  261. @begin-code Code "Form_Customers::~Form_Customers()"
  262.  
  263. Form_Customers::~Form_Customers()
  264. {
  265.     
  266. }
  267.  
  268. @end-code;
  269.  
  270. @begin-code Code "Form_Customers::Open( WForm * parent )"
  271.  
  272. // Open
  273.  
  274. // Public interface to load and open the customer list.
  275.  
  276. WBool Form_Customers::Open( WForm * parent )
  277. {
  278.     return( _view.Open(parent) );
  279. }
  280.  
  281. @end-code;
  282.  
  283. @begin-code Code "Form_Customers::Prototype for Open( WForm * parent )"
  284.  
  285.     public:
  286.         WBool Open( WForm * parent );
  287.  
  288. @end-code;
  289.  
  290. @begin-code Code "Form_Customers::customerEdit( WLong index )"
  291.  
  292. // customerEdit
  293.  
  294. // index is the selected record in lv_Customers
  295. // The customer ids are in the first column
  296.  
  297. // The detail window is modeless, and frees its own memory.
  298. // It calls the Refresh() method of this class to cause the 
  299. // list view to be updated after a refresh.
  300.  
  301. WBool Form_Customers::customerEdit( WLong index )
  302. {
  303.     WBool                   ret = FALSE;
  304.  
  305.     Form_CustomerDetail *   detail;
  306.     WLong                   id;
  307.     WString                 idText;
  308.     
  309.     if( index >= 0 ) {
  310.         idText = lv_Customers->GetText( index, 0 );
  311.         id = idText.GetLong();
  312.         detail = new Form_CustomerDetail;
  313.         if( detail ) {
  314.             detail->Edit( this, id );
  315.         }
  316.     }
  317.     
  318.     return( ret );
  319. }
  320.  
  321. @end-code;
  322.  
  323. @begin-code Code "Form_Customers::Prototype for customerEdit( WLong index )"
  324.  
  325.     private:
  326.         WBool customerEdit( WLong index );
  327.  
  328. @end-code;
  329.  
  330. @begin-code Code "Form_Customers::customerNew( void )"
  331.  
  332. WBool Form_Customers::customerNew( void )
  333. {
  334.     WBool               ret = FALSE;
  335.     
  336.     Form_CustomerDetail *   detail;
  337.     
  338.     detail = new Form_CustomerDetail;
  339.     if( detail ) {
  340.         detail->New( this );
  341.     }
  342.  
  343.     return( ret );
  344. }
  345.  
  346. @end-code;
  347.  
  348. @begin-code Code "Form_Customers::Prototype for customerNew( void )"
  349.  
  350.     private:
  351.         WBool customerNew( void );
  352.  
  353. @end-code;
  354.  
  355. @begin-code Code "Form_Customers::customerDelete( WLong index )"
  356.  
  357. WBool Form_Customers::customerDelete( WLong index )
  358. {
  359.     WBool                   ret = FALSE;
  360.  
  361.     Form_CustomerDetail *   detail;
  362.     WLong                   id;
  363.     WString                 idText;
  364.     
  365.     if( index >= 0 ) {
  366.         idText = lv_Customers->GetText( index, 0 );
  367.         id = idText.GetLong();
  368.         detail = new Form_CustomerDetail;
  369.         if( detail ) {
  370.             detail->Delete( this, id );
  371.         }
  372.     }
  373.  
  374.     return( ret );
  375. }
  376.  
  377. @end-code;
  378.  
  379. @begin-code Code "Form_Customers::Prototype for customerDelete( WLong index )"
  380.  
  381.     private:
  382.         WBool customerDelete( WLong index );
  383.  
  384. @end-code;
  385.  
  386. @begin-code Code "Form_Customers::Refresh( void )"
  387.  
  388. // Refresh
  389.  
  390. // Refresh the information in the listview after an update.
  391.  
  392. void Form_Customers::Refresh( void )
  393. {
  394.     _view.Refresh();
  395. }
  396.  
  397. @end-code;
  398.  
  399. @begin-code Code "Form_Customers::Prototype for Refresh( void )"
  400.  
  401.     public:
  402.         void Refresh( void );
  403.  
  404. @end-code;
  405.  
  406. @begin-code Code "Form_Customers::menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event )"
  407.  
  408. WBool Form_Customers::menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event )
  409. {
  410.     WBool                       selected;
  411.     
  412.     // Enable/disable items to match selected state of the list view
  413.     selected = lv_Customers->Retrieve() >= 0;
  414.     menu_Main_CustomerEdit->SetEnabled( selected );
  415.     menu_Main_CustomerDelete->SetEnabled( selected );
  416.  
  417.     return FALSE;
  418. }
  419.  
  420. @end-code;
  421.  
  422. @begin-code Code "Form_Customers::Prototype for menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event )"
  423.  
  424.     private:
  425.         WBool menu_Main_Customer_InitPopupMenu( WObject * source, WEventData * event );
  426.  
  427. @end-code;
  428.  
  429. @begin-code Code "Form_Customers::Form_Customers_Create"
  430.  
  431. WBool Form_Customers::Form_Customers_Create(
  432.     WObject *               source,
  433.     WCreateEventData *      event )
  434. {
  435.     WBool                   result;
  436.     
  437.     result = _view.Create( lv_Customers, query_Customers );
  438.  
  439.     // Set the context menu for the listview.  Use the same menu as the menu bar.
  440.     lv_Customers->SetPopup( menu_Main_Customer );
  441.     WEventHandler func = (WEventHandler)&Form_Customers::menu_Main_Customer_InitPopupMenu;
  442.     menu_Main_Customer->SetEventHandler( WInitPopupMenuEvent, this, func );
  443.  
  444.     return result;
  445. }
  446.  
  447. @end-code;
  448.  
  449. @begin-code Code "Form_Customers::Form_Customers_Destroy"
  450.  
  451. WBool Form_Customers::Form_Customers_Destroy(
  452.     WObject *           source,
  453.     WEventData *        event )
  454. {
  455.     WBool               result;
  456.  
  457.     result = _view.Destroy();
  458.  
  459.     return result;
  460. }
  461.  
  462. @end-code;
  463.  
  464. @begin-code Code "Form_Customers::menu_Main_CustomerDelete_Click"
  465.  
  466. WBool Form_Customers::menu_Main_CustomerDelete_Click(
  467.     WObject *           source,
  468.     WEventData *        event )
  469. {
  470.     customerDelete( lv_Customers->Retrieve() );
  471.     
  472.     return TRUE;
  473. }
  474.  
  475. @end-code;
  476.  
  477. @begin-code Code "Form_Customers::menu_Main_CustomerEdit_Click"
  478.  
  479. WBool Form_Customers::menu_Main_CustomerEdit_Click(
  480.     WObject *           source,
  481.     WEventData *        event )
  482. {
  483.     customerEdit( lv_Customers->Retrieve() );
  484.    
  485.     return TRUE;
  486. }
  487.  
  488. @end-code;
  489.  
  490. @begin-code Code "Form_Customers::menu_Main_CustomerNew_Click"
  491.  
  492. WBool Form_Customers::menu_Main_CustomerNew_Click(
  493.     WObject *           source,
  494.     WEventData *        event )
  495. {
  496.     customerNew();
  497.     
  498.     return TRUE;
  499. }
  500.  
  501. @end-code;
  502.  
  503. @begin-code Code "Form_Customers::menu_Main_CustomerSort_Click"
  504.  
  505. WBool Form_Customers::menu_Main_CustomerSort_Click(
  506.     WObject *           source,
  507.     WEventData *        event )
  508. {
  509.     menu_Main_CustomerSort->SetText( _view.ToggleSortOrder() );
  510.     
  511.     return FALSE;
  512. }
  513.  
  514. @end-code;
  515.  
  516. @begin-code Code "Form_Customers::lv_Customers_ColumnClick"
  517.  
  518. WBool Form_Customers::lv_Customers_ColumnClick(
  519.     WObject *                   source,
  520.     WListViewEventData *        event )
  521. {
  522.     
  523.     _view.SortList( event->subItemNumber+1 );
  524.  
  525.     return FALSE;
  526. }
  527.  
  528. @end-code;
  529.  
  530. @begin-code Code "Form_Customers::lv_Customers_DoubleClick"
  531.  
  532. WBool Form_Customers::lv_Customers_DoubleClick(
  533.     WObject *                   source,
  534.     WListViewEventData *        event )
  535. {
  536.     customerEdit( lv_Customers->Retrieve() );
  537.     
  538.     return FALSE;
  539. }
  540.  
  541. @end-code;
  542. @end;
  543.