Fixed code that did not work with Postgres
Removed all tabs, and replaced with spaces accordingly git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -14,28 +14,28 @@
|
||||
|
||||
Member functions for the classes defined in LISTDB.H
|
||||
|
||||
This class is used to present a generic ListBox lookup window for
|
||||
use with any of the object creation/selection choice widgets. This
|
||||
dialog window will present a (possibly) scrolling list of values
|
||||
that come from a data table source. Based on the object type passed
|
||||
in the constructor, a ListBox is built to present the user with a
|
||||
single selection listbox.
|
||||
This class is used to present a generic ListBox lookup window for
|
||||
use with any of the object creation/selection choice widgets. This
|
||||
dialog window will present a (possibly) scrolling list of values
|
||||
that come from a data table source. Based on the object type passed
|
||||
in the constructor, a ListBox is built to present the user with a
|
||||
single selection listbox.
|
||||
|
||||
The string selected from the list box is stored in the Global variable
|
||||
"ListDB_Seclection", and will remain set until another interation of this
|
||||
routine is called.
|
||||
The string selected from the list box is stored in the Global variable
|
||||
"ListDB_Seclection", and will remain set until another interation of this
|
||||
routine is called.
|
||||
|
||||
For each object (database) type that is to be used, an overridden
|
||||
constructor should be written to appropriately link to the proper
|
||||
data table/object for building the list.
|
||||
|
||||
For each object (database) type that is to be used, an overridden
|
||||
constructor should be written to appropriately link to the proper
|
||||
data table/object for building the list.
|
||||
|
||||
The data table record access is all handled through the routines
|
||||
in this module, interfacing with the methods defined in wxTable.
|
||||
|
||||
All objects which use data table access must be initialized and
|
||||
have opened the table prior to passing them in the dialog
|
||||
constructor, and the 'where' query should already have been set
|
||||
and performed before creating this dialog instance.
|
||||
All objects which use data table access must be initialized and
|
||||
have opened the table prior to passing them in the dialog
|
||||
constructor, and the 'where' query should already have been set
|
||||
and performed before creating this dialog instance.
|
||||
|
||||
// SYNOPSIS STOP
|
||||
*/
|
||||
@@ -95,44 +95,44 @@ const int LISTDB_NO_SPACES_BETWEEN_COLS = 3;
|
||||
*/
|
||||
char *GetExtendedDBErrorMsg2(char *ErrFile, int ErrLine)
|
||||
{
|
||||
static wxString msg;
|
||||
static wxString msg;
|
||||
|
||||
wxString tStr;
|
||||
wxString tStr;
|
||||
|
||||
if (ErrFile || ErrLine)
|
||||
{
|
||||
msg += "File: ";
|
||||
msg += ErrFile;
|
||||
msg += " Line: ";
|
||||
tStr.Printf("%d",ErrLine);
|
||||
msg += tStr.GetData();
|
||||
msg += "\n";
|
||||
}
|
||||
if (ErrFile || ErrLine)
|
||||
{
|
||||
msg += "File: ";
|
||||
msg += ErrFile;
|
||||
msg += " Line: ";
|
||||
tStr.Printf("%d",ErrLine);
|
||||
msg += tStr.GetData();
|
||||
msg += "\n";
|
||||
}
|
||||
|
||||
msg.Append ("\nODBC errors:\n");
|
||||
msg += "\n";
|
||||
|
||||
/* Scan through each database connection displaying
|
||||
* any ODBC errors that have occured. */
|
||||
for (DbList *pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
|
||||
{
|
||||
// Skip over any free connections
|
||||
if (pDbList->Free)
|
||||
continue;
|
||||
// Display errors for this connection
|
||||
for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++)
|
||||
{
|
||||
if (pDbList->PtrDb->errorList[i])
|
||||
{
|
||||
msg.Append(pDbList->PtrDb->errorList[i]);
|
||||
if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
|
||||
msg.Append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
msg += "\n";
|
||||
msg.Append ("\nODBC errors:\n");
|
||||
msg += "\n";
|
||||
|
||||
/* Scan through each database connection displaying
|
||||
* any ODBC errors that have occured. */
|
||||
for (DbList *pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
|
||||
{
|
||||
// Skip over any free connections
|
||||
if (pDbList->Free)
|
||||
continue;
|
||||
// Display errors for this connection
|
||||
for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++)
|
||||
{
|
||||
if (pDbList->PtrDb->errorList[i])
|
||||
{
|
||||
msg.Append(pDbList->PtrDb->errorList[i]);
|
||||
if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
|
||||
msg.Append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
msg += "\n";
|
||||
|
||||
return (char*) (const char*) msg;
|
||||
return (char*) (const char*) msg;
|
||||
} // GetExtendedDBErrorMsg
|
||||
|
||||
|
||||
@@ -141,7 +141,7 @@ char *GetExtendedDBErrorMsg2(char *ErrFile, int ErrLine)
|
||||
Clookup::Clookup(char *tblName, char *colName) : wxTable(READONLY_DB, tblName, 1, NULL, !QUERY_ONLY, DbConnectInf.defaultDir)
|
||||
{
|
||||
|
||||
SetColDefs (0, colName, DB_DATA_TYPE_VARCHAR, lookupCol, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE);
|
||||
SetColDefs (0, colName, DB_DATA_TYPE_VARCHAR, lookupCol, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE);
|
||||
|
||||
} // Clookup()
|
||||
|
||||
@@ -150,18 +150,18 @@ Clookup::Clookup(char *tblName, char *colName) : wxTable(READONLY_DB, tblName, 1
|
||||
Clookup2::Clookup2(char *tblName, char *colName1, char *colName2, wxDB *pDb)
|
||||
: wxTable(pDb, tblName, (1 + (strlen(colName2) > 0)), NULL, !QUERY_ONLY, DbConnectInf.defaultDir)
|
||||
{
|
||||
int i = 0;
|
||||
int i = 0;
|
||||
|
||||
SetColDefs (i, colName1, DB_DATA_TYPE_VARCHAR, lookupCol1, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE);
|
||||
SetColDefs (i, colName1, DB_DATA_TYPE_VARCHAR, lookupCol1, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE);
|
||||
|
||||
if (strlen(colName2) > 0)
|
||||
SetColDefs (++i, colName2, DB_DATA_TYPE_VARCHAR, lookupCol2, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE);
|
||||
if (strlen(colName2) > 0)
|
||||
SetColDefs (++i, colName2, DB_DATA_TYPE_VARCHAR, lookupCol2, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE);
|
||||
|
||||
} // Clookup2()
|
||||
|
||||
|
||||
BEGIN_EVENT_TABLE(ClookUpDlg, wxDialog)
|
||||
// EVT_LISTBOX(LOOKUP_DIALOG_SELECT, ClookUpDlg::SelectCallback)
|
||||
// EVT_LISTBOX(LOOKUP_DIALOG_SELECT, ClookUpDlg::SelectCallback)
|
||||
EVT_BUTTON(LOOKUP_DIALOG_OK, ClookUpDlg::OnButton)
|
||||
EVT_BUTTON(LOOKUP_DIALOG_CANCEL, ClookUpDlg::OnButton)
|
||||
EVT_CLOSE(ClookUpDlg::OnClose)
|
||||
@@ -169,70 +169,70 @@ END_EVENT_TABLE()
|
||||
|
||||
// This is a generic lookup constructor that will work with any table and any column
|
||||
ClookUpDlg::ClookUpDlg(wxWindow *parent, char *windowTitle, char *tableName, char *colName,
|
||||
char *where, char *orderBy) : wxDialog (parent, LOOKUP_DIALOG, "Select...", wxPoint(-1, -1), wxSize(400, 290))
|
||||
char *where, char *orderBy) : wxDialog (parent, LOOKUP_DIALOG, "Select...", wxPoint(-1, -1), wxSize(400, 290))
|
||||
{
|
||||
wxBeginBusyCursor();
|
||||
|
||||
strcpy(ListDB_Selection,"");
|
||||
widgetPtrsSet = FALSE;
|
||||
lookup = 0;
|
||||
lookup2 = 0;
|
||||
noDisplayCols = 1;
|
||||
col1Len = 0;
|
||||
wxBeginBusyCursor();
|
||||
|
||||
strcpy(ListDB_Selection,"");
|
||||
widgetPtrsSet = FALSE;
|
||||
lookup = 0;
|
||||
lookup2 = 0;
|
||||
noDisplayCols = 1;
|
||||
col1Len = 0;
|
||||
|
||||
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint(5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, "LookUpSelectList");
|
||||
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, "&Ok", wxPoint(113, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpOkBtn");
|
||||
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, "C&ancel", wxPoint(212, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpCancelBtn");
|
||||
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint( 5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, "LookUpSelectList");
|
||||
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, "&Ok", wxPoint(113, 222), wxSize( 70, 35), 0, wxDefaultValidator, "LookUpOkBtn");
|
||||
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, "C&ancel", wxPoint(212, 222), wxSize( 70, 35), 0, wxDefaultValidator, "LookUpCancelBtn");
|
||||
|
||||
widgetPtrsSet = TRUE;
|
||||
widgetPtrsSet = TRUE;
|
||||
|
||||
// Query the lookup table and display the result set
|
||||
if (!(lookup = new Clookup(tableName, colName)))
|
||||
{
|
||||
wxMessageBox("Error allocating memory for 'Clookup'object.","Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
// Query the lookup table and display the result set
|
||||
if (!(lookup = new Clookup(tableName, colName)))
|
||||
{
|
||||
wxMessageBox("Error allocating memory for 'Clookup'object.","Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!lookup->Open())
|
||||
{
|
||||
wxString tStr;
|
||||
tStr.Printf("Unable to open the table '%s'.",tableName);
|
||||
wxMessageBox(tStr,"ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
if (!lookup->Open())
|
||||
{
|
||||
wxString tStr;
|
||||
tStr.Printf("Unable to open the table '%s'.",tableName);
|
||||
wxMessageBox(tStr,"ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
lookup->orderBy = orderBy;
|
||||
lookup->where = where;
|
||||
if (!lookup->Query())
|
||||
{
|
||||
wxMessageBox("ODBC error during Query()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
lookup->orderBy = orderBy;
|
||||
lookup->where = where;
|
||||
if (!lookup->Query())
|
||||
{
|
||||
wxMessageBox("ODBC error during Query()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
// Fill in the list box from the query result set
|
||||
while (lookup->GetNext())
|
||||
pLookUpSelectList->Append(lookup->lookupCol);
|
||||
// Fill in the list box from the query result set
|
||||
while (lookup->GetNext())
|
||||
pLookUpSelectList->Append(lookup->lookupCol);
|
||||
|
||||
// Highlight the first list item
|
||||
pLookUpSelectList->SetSelection(0);
|
||||
// Highlight the first list item
|
||||
pLookUpSelectList->SetSelection(0);
|
||||
|
||||
// Make the OK activate by pressing Enter
|
||||
if (pLookUpSelectList->Number())
|
||||
pLookUpOkBtn->SetDefault();
|
||||
else
|
||||
{
|
||||
pLookUpCancelBtn->SetDefault();
|
||||
pLookUpOkBtn->Enable(FALSE);
|
||||
}
|
||||
// Make the OK activate by pressing Enter
|
||||
if (pLookUpSelectList->Number())
|
||||
pLookUpOkBtn->SetDefault();
|
||||
else
|
||||
{
|
||||
pLookUpCancelBtn->SetDefault();
|
||||
pLookUpOkBtn->Enable(FALSE);
|
||||
}
|
||||
|
||||
// Display the dialog window
|
||||
SetTitle(windowTitle);
|
||||
Centre(wxBOTH);
|
||||
wxEndBusyCursor();
|
||||
ShowModal();
|
||||
// Display the dialog window
|
||||
SetTitle(windowTitle);
|
||||
Centre(wxBOTH);
|
||||
wxEndBusyCursor();
|
||||
ShowModal();
|
||||
|
||||
} // Generic lookup constructor
|
||||
|
||||
@@ -241,7 +241,7 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, char *windowTitle, char *tableName, cha
|
||||
// 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
|
||||
// 1) 2 columns rather than one
|
||||
// 2) The ability to select DISTINCT column values
|
||||
//
|
||||
// Only set distinctValues equal to true if necessary. In many cases, the constraints
|
||||
@@ -262,154 +262,154 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, char *windowTitle, char *tableName, cha
|
||||
// in the lookup window.
|
||||
//
|
||||
ClookUpDlg::ClookUpDlg(wxWindow *parent, char *windowTitle, char *tableName,
|
||||
char *dispCol1, char *dispCol2, char *where, char *orderBy, bool distinctValues,
|
||||
char *selectStmt, int maxLenCol1, wxDB *pDb, bool allowOk) : wxDialog (parent, LOOKUP_DIALOG, "Select...", wxPoint(-1, -1), wxSize(400, 290))
|
||||
char *dispCol1, char *dispCol2, char *where, char *orderBy, bool distinctValues,
|
||||
char *selectStmt, int maxLenCol1, wxDB *pDb, bool allowOk) : wxDialog (parent, LOOKUP_DIALOG, "Select...", wxPoint(-1, -1), wxSize(400, 290))
|
||||
{
|
||||
wxBeginBusyCursor();
|
||||
|
||||
strcpy(ListDB_Selection,"");
|
||||
strcpy(ListDB_Selection2,"");
|
||||
widgetPtrsSet = FALSE;
|
||||
lookup = 0;
|
||||
lookup2 = 0;
|
||||
noDisplayCols = (strlen(dispCol2) ? 2 : 1);
|
||||
col1Len = 0;
|
||||
wxBeginBusyCursor();
|
||||
|
||||
strcpy(ListDB_Selection,"");
|
||||
strcpy(ListDB_Selection2,"");
|
||||
widgetPtrsSet = FALSE;
|
||||
lookup = 0;
|
||||
lookup2 = 0;
|
||||
noDisplayCols = (strlen(dispCol2) ? 2 : 1);
|
||||
col1Len = 0;
|
||||
|
||||
wxFont fixedFont(12,wxMODERN,wxNORMAL,wxNORMAL);
|
||||
wxFont fixedFont(12,wxMODERN,wxNORMAL,wxNORMAL);
|
||||
|
||||
// this is done with fixed font so that the second column (if any) will be left
|
||||
// justified in the second column
|
||||
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint(5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, "LookUpSelectList");
|
||||
// this is done with fixed font so that the second column (if any) will be left
|
||||
// justified in the second column
|
||||
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint(5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, "LookUpSelectList");
|
||||
|
||||
pLookUpSelectList->SetFont(fixedFont);
|
||||
|
||||
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, "&Ok", wxPoint(113, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpOkBtn");
|
||||
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, "C&ancel", wxPoint(212, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpCancelBtn");
|
||||
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, "&Ok", wxPoint(113, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpOkBtn");
|
||||
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, "C&ancel", wxPoint(212, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpCancelBtn");
|
||||
|
||||
widgetPtrsSet = TRUE;
|
||||
widgetPtrsSet = TRUE;
|
||||
|
||||
// Query the lookup table and display the result set
|
||||
if (!(lookup2 = new Clookup2(tableName, dispCol1, dispCol2, pDb)))
|
||||
{
|
||||
wxMessageBox("Error allocating memory for 'Clookup2'object.","Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
// Query the lookup table and display the result set
|
||||
if (!(lookup2 = new Clookup2(tableName, dispCol1, dispCol2, pDb)))
|
||||
{
|
||||
wxMessageBox("Error allocating memory for 'Clookup2'object.","Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!lookup2->Open())
|
||||
{
|
||||
wxString tStr;
|
||||
tStr.Printf("Unable to open the table '%s'.",tableName);
|
||||
tStr += GetExtendedDBErrorMsg2(__FILE__,__LINE__);
|
||||
wxMessageBox(tStr,"ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
if (!lookup2->Open())
|
||||
{
|
||||
wxString tStr;
|
||||
tStr.Printf("Unable to open the table '%s'.",tableName);
|
||||
tStr += GetExtendedDBErrorMsg2(__FILE__,__LINE__);
|
||||
wxMessageBox(tStr,"ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
// If displaying 2 columns, determine the maximum length of column1
|
||||
int maxColLen;
|
||||
if (maxLenCol1)
|
||||
maxColLen = col1Len = maxLenCol1; // user passed in max col length for column 1
|
||||
else
|
||||
{
|
||||
maxColLen = LOOKUP_COL_LEN;
|
||||
if (strlen(dispCol2))
|
||||
{
|
||||
wxString q = "SELECT MAX({fn LENGTH(";
|
||||
q += dispCol1;
|
||||
q += ")}), NULL";
|
||||
q += " FROM ";
|
||||
q += tableName;
|
||||
if (strlen(where))
|
||||
{
|
||||
q += " WHERE ";
|
||||
q += where;
|
||||
}
|
||||
if (!lookup2->QueryBySqlStmt((char*) (const char*) q))
|
||||
{
|
||||
wxMessageBox("ODBC error during QueryBySqlStmt()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
if (lookup2->GetNext())
|
||||
maxColLen = col1Len = atoi(lookup2->lookupCol1);
|
||||
else
|
||||
wxMessageBox("ODBC error during GetNext()","ODBC Error...");
|
||||
}
|
||||
}
|
||||
// If displaying 2 columns, determine the maximum length of column1
|
||||
int maxColLen;
|
||||
if (maxLenCol1)
|
||||
maxColLen = col1Len = maxLenCol1; // user passed in max col length for column 1
|
||||
else
|
||||
{
|
||||
maxColLen = LOOKUP_COL_LEN;
|
||||
if (strlen(dispCol2))
|
||||
{
|
||||
wxString q = "SELECT MAX({fn LENGTH(";
|
||||
q += dispCol1;
|
||||
q += ")}), NULL";
|
||||
q += " FROM ";
|
||||
q += tableName;
|
||||
if (strlen(where))
|
||||
{
|
||||
q += " WHERE ";
|
||||
q += where;
|
||||
}
|
||||
if (!lookup2->QueryBySqlStmt((char*) (const char*) q))
|
||||
{
|
||||
wxMessageBox("ODBC error during QueryBySqlStmt()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
if (lookup2->GetNext())
|
||||
maxColLen = col1Len = atoi(lookup2->lookupCol1);
|
||||
else
|
||||
wxMessageBox("ODBC error during GetNext()","ODBC Error...");
|
||||
}
|
||||
}
|
||||
|
||||
// Query the actual record set
|
||||
if (selectStmt && strlen(selectStmt)) // Query by sql stmt passed in
|
||||
{
|
||||
if (!lookup2->QueryBySqlStmt(selectStmt))
|
||||
{
|
||||
wxMessageBox("ODBC error during QueryBySqlStmt()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else // Query using where and order by clauses
|
||||
{
|
||||
lookup2->orderBy = orderBy;
|
||||
lookup2->where = where;
|
||||
if (!lookup2->Query(FALSE, distinctValues))
|
||||
{
|
||||
wxMessageBox("ODBC error during Query()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Query the actual record set
|
||||
if (selectStmt && strlen(selectStmt)) // Query by sql stmt passed in
|
||||
{
|
||||
if (!lookup2->QueryBySqlStmt(selectStmt))
|
||||
{
|
||||
wxMessageBox("ODBC error during QueryBySqlStmt()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else // Query using where and order by clauses
|
||||
{
|
||||
lookup2->orderBy = orderBy;
|
||||
lookup2->where = where;
|
||||
if (!lookup2->Query(FALSE, distinctValues))
|
||||
{
|
||||
wxMessageBox("ODBC error during Query()","ODBC Error...");
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Fill in the list box from the query result set
|
||||
wxString s;
|
||||
while (lookup2->GetNext())
|
||||
{
|
||||
s = lookup2->lookupCol1;
|
||||
if (strlen(dispCol2)) // Append the optional column 2
|
||||
{
|
||||
s.Append(' ', (maxColLen + LISTDB_NO_SPACES_BETWEEN_COLS - strlen(lookup2->lookupCol1)));
|
||||
s.Append(lookup2->lookupCol2);
|
||||
}
|
||||
pLookUpSelectList->Append(s);
|
||||
}
|
||||
// Fill in the list box from the query result set
|
||||
wxString s;
|
||||
while (lookup2->GetNext())
|
||||
{
|
||||
s = lookup2->lookupCol1;
|
||||
if (strlen(dispCol2)) // Append the optional column 2
|
||||
{
|
||||
s.Append(' ', (maxColLen + LISTDB_NO_SPACES_BETWEEN_COLS - strlen(lookup2->lookupCol1)));
|
||||
s.Append(lookup2->lookupCol2);
|
||||
}
|
||||
pLookUpSelectList->Append(s);
|
||||
}
|
||||
|
||||
// Highlight the first list item
|
||||
pLookUpSelectList->SetSelection(0);
|
||||
// Highlight the first list item
|
||||
pLookUpSelectList->SetSelection(0);
|
||||
|
||||
// Make the OK activate by pressing Enter
|
||||
if (pLookUpSelectList->Number())
|
||||
pLookUpOkBtn->SetDefault();
|
||||
else
|
||||
{
|
||||
pLookUpCancelBtn->SetDefault();
|
||||
pLookUpOkBtn->Enable(FALSE);
|
||||
}
|
||||
// Make the OK activate by pressing Enter
|
||||
if (pLookUpSelectList->Number())
|
||||
pLookUpOkBtn->SetDefault();
|
||||
else
|
||||
{
|
||||
pLookUpCancelBtn->SetDefault();
|
||||
pLookUpOkBtn->Enable(FALSE);
|
||||
}
|
||||
|
||||
pLookUpOkBtn->Enable(allowOk);
|
||||
pLookUpOkBtn->Enable(allowOk);
|
||||
|
||||
// Display the dialog window
|
||||
SetTitle(windowTitle);
|
||||
Centre(wxBOTH);
|
||||
wxEndBusyCursor();
|
||||
ShowModal();
|
||||
// Display the dialog window
|
||||
SetTitle(windowTitle);
|
||||
Centre(wxBOTH);
|
||||
wxEndBusyCursor();
|
||||
ShowModal();
|
||||
|
||||
} // Generic lookup constructor 2
|
||||
|
||||
|
||||
void ClookUpDlg::OnClose(wxCloseEvent& event)
|
||||
{
|
||||
widgetPtrsSet = FALSE;
|
||||
GetParent()->Enable(TRUE);
|
||||
widgetPtrsSet = FALSE;
|
||||
GetParent()->Enable(TRUE);
|
||||
|
||||
if (lookup)
|
||||
delete lookup;
|
||||
if (lookup2)
|
||||
delete lookup2;
|
||||
if (lookup)
|
||||
delete lookup;
|
||||
if (lookup2)
|
||||
delete lookup2;
|
||||
|
||||
while (wxIsBusy()) wxEndBusyCursor();
|
||||
while (wxIsBusy()) wxEndBusyCursor();
|
||||
event.Skip();
|
||||
|
||||
// return TRUE;
|
||||
// return TRUE;
|
||||
|
||||
} // ClookUpDlg::OnClose
|
||||
|
||||
@@ -423,47 +423,47 @@ void ClookUpDlg::OnButton( wxCommandEvent &event )
|
||||
|
||||
void ClookUpDlg::OnCommand(wxWindow& win, wxCommandEvent& event)
|
||||
{
|
||||
wxString widgetName = win.GetName();
|
||||
wxString widgetName = win.GetName();
|
||||
|
||||
if (widgetPtrsSet)
|
||||
{
|
||||
// OK Button
|
||||
if (widgetName == pLookUpOkBtn->GetName())
|
||||
{
|
||||
if (pLookUpSelectList->GetSelection() != -1)
|
||||
{
|
||||
if (noDisplayCols == 1)
|
||||
strcpy (ListDB_Selection, pLookUpSelectList->GetStringSelection());
|
||||
else // 2 display columns
|
||||
{
|
||||
wxString s = pLookUpSelectList->GetStringSelection();
|
||||
// Column 1
|
||||
s = s.SubString(0, col1Len-1);
|
||||
s = s.Strip();
|
||||
strcpy(ListDB_Selection, s);
|
||||
// Column 2
|
||||
s = pLookUpSelectList->GetStringSelection();
|
||||
s = s.Mid(col1Len + LISTDB_NO_SPACES_BETWEEN_COLS);
|
||||
s = s.Strip();
|
||||
strcpy(ListDB_Selection2, s);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(ListDB_Selection,"");
|
||||
strcpy(ListDB_Selection2,"");
|
||||
}
|
||||
Close();
|
||||
} // OK Button
|
||||
if (widgetPtrsSet)
|
||||
{
|
||||
// OK Button
|
||||
if (widgetName == pLookUpOkBtn->GetName())
|
||||
{
|
||||
if (pLookUpSelectList->GetSelection() != -1)
|
||||
{
|
||||
if (noDisplayCols == 1)
|
||||
strcpy (ListDB_Selection, pLookUpSelectList->GetStringSelection());
|
||||
else // 2 display columns
|
||||
{
|
||||
wxString s = pLookUpSelectList->GetStringSelection();
|
||||
// Column 1
|
||||
s = s.SubString(0, col1Len-1);
|
||||
s = s.Strip();
|
||||
strcpy(ListDB_Selection, s);
|
||||
// Column 2
|
||||
s = pLookUpSelectList->GetStringSelection();
|
||||
s = s.Mid(col1Len + LISTDB_NO_SPACES_BETWEEN_COLS);
|
||||
s = s.Strip();
|
||||
strcpy(ListDB_Selection2, s);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(ListDB_Selection,"");
|
||||
strcpy(ListDB_Selection2,"");
|
||||
}
|
||||
Close();
|
||||
} // OK Button
|
||||
|
||||
// Cancel Button
|
||||
if (widgetName == pLookUpCancelBtn->GetName())
|
||||
{
|
||||
strcpy (ListDB_Selection,"");
|
||||
strcpy (ListDB_Selection2,"");
|
||||
Close();
|
||||
} // Cancel Button
|
||||
}
|
||||
// Cancel Button
|
||||
if (widgetName == pLookUpCancelBtn->GetName())
|
||||
{
|
||||
strcpy (ListDB_Selection,"");
|
||||
strcpy (ListDB_Selection2,"");
|
||||
Close();
|
||||
} // Cancel Button
|
||||
}
|
||||
|
||||
}; // ClookUpDlg::OnCommand
|
||||
|
||||
|
Reference in New Issue
Block a user