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