home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / samples / db / listdb.h < prev    next >
C/C++ Source or Header  |  2002-09-01  |  5KB  |  135 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name:        listdb.h
  3. // Purpose:     wxWindows database demo app
  4. // Author:      George Tasker
  5. // Modified by:
  6. // Created:     1996
  7. // RCS-ID:      $Id: listdb.h,v 1.12 2002/08/31 22:36:13 GD Exp $
  8. // Copyright:   (c) 1996 Remstar International, Inc.
  9. // Licence:     wxWindows licence
  10. ///////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifdef __GNUG__
  13. #pragma interface "listdb.h"
  14. #endif
  15.  
  16. /*
  17.     Contains dialog class for creating a data table lookup listbox
  18. */
  19.  
  20. #ifndef LISTDB_DOT_H
  21. #define LISTDB_DOT_H
  22.  
  23.  
  24. #include "wx/dbtable.h"
  25.  
  26. const int LOOKUP_COL_LEN = 250;
  27.  
  28. // Clookup class
  29. class Clookup : public wxDbTable
  30. {
  31.     public:
  32.  
  33.         wxChar lookupCol[LOOKUP_COL_LEN+1];
  34.  
  35.         Clookup(wxChar *tblName, wxChar *colName, wxDb *pDb, const wxString &defDir="");
  36.  
  37. };  // Clookup
  38.  
  39.  
  40. // Clookup2 class
  41. class Clookup2 : public wxDbTable
  42. {
  43.     public:
  44.  
  45.         wxChar lookupCol1[LOOKUP_COL_LEN+1];
  46.         wxChar lookupCol2[LOOKUP_COL_LEN+1];
  47.  
  48.         Clookup2(wxChar *tblName, wxChar *colName1, wxChar *colName2, wxDb *pDb, const wxString &defDir="");
  49.  
  50. };  // Clookup2
  51.  
  52.  
  53. // ClookUpDlg class
  54. class ClookUpDlg : public wxDialog
  55. {
  56.     private:
  57.         bool             widgetPtrsSet;
  58.         int              currentCursor;
  59.         Clookup         *lookup;
  60.         Clookup2        *lookup2;
  61.         int              noDisplayCols;
  62.         int              col1Len;
  63.  
  64.         wxListBox       *pLookUpSelectList;
  65.         wxButton        *pLookUpOkBtn;
  66.         wxButton        *pLookUpCancelBtn;
  67.  
  68.     public:
  69.  
  70.         // This is a generic lookup constructor that will work with any table and any column
  71.         ClookUpDlg(wxWindow *parent,
  72.                     wxChar  *windowTitle,
  73.                     wxChar  *tableName,
  74.                     wxChar  *colName,
  75.                     wxChar  *where,
  76.                     wxChar  *orderBy,
  77.                     wxDb    *pDb,
  78.                     const wxString &defDir);
  79.  
  80.         //
  81.         // This is a generic lookup constructor that will work with any table and any column.
  82.         // It extends the capabilites of the lookup dialog in the following ways:
  83.         //
  84.         //    1) 2 columns rather than one
  85.         //    2) The ability to select DISTINCT column values
  86.         //
  87.         // Only set distinctValues equal to TRUE if necessary.  In many cases, the constraints
  88.         // of the index(es) will enforce this uniqueness.  Selecting DISTINCT does require
  89.         // overhead by the database to ensure that all values returned are distinct.  Therefore,
  90.         // use this ONLY when you need it.
  91.         //
  92.         // For complicated queries, you can pass in the sql select statement.  This would be
  93.         // necessary if joins are involved since by default both columns must come from the
  94.         // same table.
  95.         //
  96.         // If you do query by sql statement, you must pass in the maximum length of column1,
  97.         // since it cannot be derived when you query using your own sql statement.
  98.         //
  99.         // The optional database connection can be used if you'd like the lookup class
  100.         // to use a database pointer other than the READONLY_DB of the app.  This is necessary
  101.         // if records are being saved, but not committed to the db, yet should be included
  102.         // in the lookup window.
  103.         //
  104.         ClookUpDlg(wxWindow *parent,
  105.                     wxChar  *windowTitle,
  106.                     wxChar  *tableName,
  107.                     wxChar  *dispCol1,                  // Must have at least 1 display column
  108.                     wxChar  *dispCol2,                  // Optional
  109.                     wxChar  *where,
  110.                     wxChar  *orderBy,
  111.                     wxDb    *pDb,                       // Database connection pointer
  112.                     const wxString &defDir,
  113.                     bool     distinctValues,            // e.g. SELECT DISTINCT ...
  114.                     wxChar  *selectStmt = 0,            // If you wish to query by SQLstmt (complicated lookups)
  115.                     int      maxLenCol1 = 0,            // Mandatory if querying by SQLstmt
  116.                     bool     allowOk    = TRUE);        // is the OK button enabled
  117.  
  118.         void        OnButton( wxCommandEvent &event );
  119.         void        OnCommand(wxWindow& win, wxCommandEvent& event);
  120.         void        OnClose(wxCloseEvent& event);
  121.         void        OnActivate(bool) {};  // necessary for hot keys
  122.  
  123. DECLARE_EVENT_TABLE()
  124. };  // class ClookUpDlg
  125.  
  126. #define LOOKUP_DIALOG                   500
  127.  
  128. #define LOOKUP_DIALOG_SELECT            501
  129. #define LOOKUP_DIALOG_OK                502
  130. #define LOOKUP_DIALOG_CANCEL            503
  131.  
  132. #endif  // LISTDB_DOT_H
  133.  
  134. // ************************************ listdb.h *********************************
  135.