1998-07-28 09:43:44 +00:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: listdb.h
|
|
|
|
// Purpose: wxWindows database demo app
|
|
|
|
// Author: George Tasker
|
|
|
|
// Modified by:
|
|
|
|
// Created: 1996
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Copyright: (c) 1996 Remstar International, Inc.
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
1998-12-30 17:40:53 +00:00
|
|
|
#ifdef __GNUG__
|
1998-07-28 09:43:44 +00:00
|
|
|
#pragma interface "listdb.h"
|
1998-12-30 17:40:53 +00:00
|
|
|
#endif
|
1998-07-28 09:43:44 +00:00
|
|
|
|
|
|
|
/*
|
2000-01-25 16:18:40 +00:00
|
|
|
Contains dialog class for creating a data table lookup listbox
|
1998-07-28 09:43:44 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef LISTDB_DOT_H
|
|
|
|
#define LISTDB_DOT_H
|
|
|
|
|
|
|
|
|
2002-08-31 22:36:13 +00:00
|
|
|
#include "wx/dbtable.h"
|
1998-07-28 09:43:44 +00:00
|
|
|
|
1999-01-21 19:02:18 +00:00
|
|
|
const int LOOKUP_COL_LEN = 250;
|
1998-07-28 09:43:44 +00:00
|
|
|
|
|
|
|
// Clookup class
|
2000-07-15 19:51:35 +00:00
|
|
|
class Clookup : public wxDbTable
|
1998-07-28 09:43:44 +00:00
|
|
|
{
|
2000-01-25 16:18:40 +00:00
|
|
|
public:
|
1998-07-28 09:43:44 +00:00
|
|
|
|
2001-02-01 20:17:15 +00:00
|
|
|
wxChar lookupCol[LOOKUP_COL_LEN+1];
|
1998-07-28 09:43:44 +00:00
|
|
|
|
2001-02-03 17:52:58 +00:00
|
|
|
Clookup(wxChar *tblName, wxChar *colName, wxDb *pDb, const wxString &defDir="");
|
1998-07-28 09:43:44 +00:00
|
|
|
|
|
|
|
}; // Clookup
|
|
|
|
|
2001-02-03 17:52:58 +00:00
|
|
|
|
1998-07-28 09:43:44 +00:00
|
|
|
// Clookup2 class
|
2000-07-15 19:51:35 +00:00
|
|
|
class Clookup2 : public wxDbTable
|
1998-07-28 09:43:44 +00:00
|
|
|
{
|
2000-01-25 16:18:40 +00:00
|
|
|
public:
|
1998-07-28 09:43:44 +00:00
|
|
|
|
2001-02-01 20:17:15 +00:00
|
|
|
wxChar lookupCol1[LOOKUP_COL_LEN+1];
|
|
|
|
wxChar lookupCol2[LOOKUP_COL_LEN+1];
|
1998-07-28 09:43:44 +00:00
|
|
|
|
2001-02-03 17:52:58 +00:00
|
|
|
Clookup2(wxChar *tblName, wxChar *colName1, wxChar *colName2, wxDb *pDb, const wxString &defDir="");
|
1998-07-28 09:43:44 +00:00
|
|
|
|
|
|
|
}; // Clookup2
|
|
|
|
|
2001-02-03 17:52:58 +00:00
|
|
|
|
|
|
|
// ClookUpDlg class
|
1998-12-30 17:40:53 +00:00
|
|
|
class ClookUpDlg : public wxDialog
|
1998-07-28 09:43:44 +00:00
|
|
|
{
|
2000-01-25 16:18:40 +00:00
|
|
|
private:
|
|
|
|
bool widgetPtrsSet;
|
|
|
|
int currentCursor;
|
|
|
|
Clookup *lookup;
|
|
|
|
Clookup2 *lookup2;
|
|
|
|
int noDisplayCols;
|
|
|
|
int col1Len;
|
|
|
|
|
|
|
|
wxListBox *pLookUpSelectList;
|
|
|
|
wxButton *pLookUpOkBtn;
|
|
|
|
wxButton *pLookUpCancelBtn;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
// This is a generic lookup constructor that will work with any table and any column
|
|
|
|
ClookUpDlg(wxWindow *parent,
|
2001-02-01 20:17:15 +00:00
|
|
|
wxChar *windowTitle,
|
|
|
|
wxChar *tableName,
|
|
|
|
wxChar *colName,
|
|
|
|
wxChar *where,
|
2001-02-03 17:52:58 +00:00
|
|
|
wxChar *orderBy,
|
|
|
|
wxDb *pDb,
|
|
|
|
const wxString &defDir);
|
2000-01-25 16:18:40 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
// This is a generic lookup constructor that will work with any table and any column.
|
|
|
|
// It extends the capabilites of the lookup dialog in the following ways:
|
|
|
|
//
|
|
|
|
// 1) 2 columns rather than one
|
2001-02-03 17:52:58 +00:00
|
|
|
// 2) The ability to select DISTINCT column values
|
2000-01-25 16:18:40 +00:00
|
|
|
//
|
2001-06-11 16:59:45 +00:00
|
|
|
// Only set distinctValues equal to TRUE if necessary. In many cases, the constraints
|
2000-01-25 16:18:40 +00:00
|
|
|
// of the index(es) will enforce this uniqueness. Selecting DISTINCT does require
|
|
|
|
// overhead by the database to ensure that all values returned are distinct. Therefore,
|
|
|
|
// use this ONLY when you need it.
|
|
|
|
//
|
|
|
|
// For complicated queries, you can pass in the sql select statement. This would be
|
|
|
|
// necessary if joins are involved since by default both columns must come from the
|
|
|
|
// same table.
|
|
|
|
//
|
|
|
|
// If you do query by sql statement, you must pass in the maximum length of column1,
|
|
|
|
// since it cannot be derived when you query using your own sql statement.
|
|
|
|
//
|
|
|
|
// The optional database connection can be used if you'd like the lookup class
|
2001-02-03 17:52:58 +00:00
|
|
|
// to use a database pointer other than the READONLY_DB of the app. This is necessary
|
|
|
|
// if records are being saved, but not committed to the db, yet should be included
|
2000-01-25 16:18:40 +00:00
|
|
|
// in the lookup window.
|
|
|
|
//
|
|
|
|
ClookUpDlg(wxWindow *parent,
|
2001-02-01 20:17:15 +00:00
|
|
|
wxChar *windowTitle,
|
|
|
|
wxChar *tableName,
|
|
|
|
wxChar *dispCol1, // Must have at least 1 display column
|
|
|
|
wxChar *dispCol2, // Optional
|
|
|
|
wxChar *where,
|
|
|
|
wxChar *orderBy,
|
2001-02-03 17:52:58 +00:00
|
|
|
wxDb *pDb, // Database connection pointer
|
|
|
|
const wxString &defDir,
|
2001-02-01 20:17:15 +00:00
|
|
|
bool distinctValues, // e.g. SELECT DISTINCT ...
|
|
|
|
wxChar *selectStmt = 0, // If you wish to query by SQLstmt (complicated lookups)
|
|
|
|
int maxLenCol1 = 0, // Mandatory if querying by SQLstmt
|
2001-06-11 16:59:45 +00:00
|
|
|
bool allowOk = TRUE); // is the OK button enabled
|
2000-01-25 16:18:40 +00:00
|
|
|
|
|
|
|
void OnButton( wxCommandEvent &event );
|
|
|
|
void OnCommand(wxWindow& win, wxCommandEvent& event);
|
|
|
|
void OnClose(wxCloseEvent& event);
|
|
|
|
void OnActivate(bool) {}; // necessary for hot keys
|
1999-10-07 11:04:06 +00:00
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
2001-02-03 17:52:58 +00:00
|
|
|
}; // class ClookUpDlg
|
1998-07-28 09:43:44 +00:00
|
|
|
|
1998-12-30 17:40:53 +00:00
|
|
|
#define LOOKUP_DIALOG 500
|
|
|
|
|
|
|
|
#define LOOKUP_DIALOG_SELECT 501
|
|
|
|
#define LOOKUP_DIALOG_OK 502
|
|
|
|
#define LOOKUP_DIALOG_CANCEL 503
|
|
|
|
|
1998-07-28 09:43:44 +00:00
|
|
|
#endif // LISTDB_DOT_H
|
|
|
|
|
|
|
|
// ************************************ listdb.h *********************************
|