📄 dlgwkinputsel.cpp
字号:
// DlgWkInputSel.cpp : implementation file
//
#include "stdafx.h"
#include "Kvip.h"
#include "DlgWkInputSel.h"
#include "StringSQL.H"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgWkInputSel dialog
CDlgWkInputSel::CDlgWkInputSel(CWnd* pParent /*=NULL*/)
: CDialog(CDlgWkInputSel::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgWkInputSel)
//}}AFX_DATA_INIT
m_strSQL = _T("Select * From kv_staff_mr");
m_strSel1 = _T("=sm_code;TEXT=编号;WIDTH=60;INDEXCOL=10;STYLE=UPPER");
m_strSel2 = _T("=sm_name;TEXT=用户名称;WIDTH=80;INDEXCOL=20");
m_strSel3 = _T("=sm_dept;TEXT=部门;WIDTH=80;INDEXCOL=30");
m_strCol1 = _T("");
m_strCol2 = _T("");
m_strCol3 = _T("");
m_strTitle = _T("选择");
m_pConnection = NULL;
m_bRetrieve = FALSE;
m_bCheck = true;
}
void CDlgWkInputSel::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgWkInputSel)
DDX_Control(pDX, IDC_SEL3, m_Sel3);
DDX_Control(pDX, IDC_SEL2, m_Sel2);
DDX_Control(pDX, IDC_SEL1, m_Sel1);
DDX_Control(pDX, IDC_MASTER, m_Master);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgWkInputSel, CDialog)
//{{AFX_MSG_MAP(CDlgWkInputSel)
ON_BN_CLICKED(IDC_OK, OnOk)
ON_BN_CLICKED(IDC_RETRIEVE, OnRetrieve)
ON_BN_CLICKED(IDC_CANCEL, OnCancel)
ON_NOTIFY(NM_DBLCLK, IDC_MASTER, OnDblclkMaster)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgWkInputSel message handlers
void CDlgWkInputSel::OnOk()
{
// TODO: Add your control notification handler code here
int nItem = m_Master.GetSelected();
m_strSel1 = m_Master.GetItemText(nItem, 0);
m_strSel2 = m_Master.GetItemText(nItem, 1);
m_strSel3 = m_Master.GetItemText(nItem, 2);
CDialog::OnOK();
}
void CDlgWkInputSel::OnCancel()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
void CDlgWkInputSel::OnRetrieve()
{
// TODO: Add your control notification handler code here
if(Retrieve())
m_Master.SetFocus();
}
//void CDlgWkInputSel::SetTitle(LPCSTR pTil1, LPCSTR pTil2, LPCSTR pTil3)
//{
// m_Til1.SetWindowText(pTil1);
// m_Til2.SetWindowText(pTil2);
// m_Til3.SetWindowText(pTil3);
//}
/*void CDlgWkInputSel::SetWhere(LPCSTR pWhere1, LPCSTR pWhere2, LPCSTR pWhere3)
{
m_strName1 = pWhere1;
m_strName2 = pWhere2;
m_strName3 = pWhere3;
}
*/
void CDlgWkInputSel::SetSelect1(LPCSTR pSel)
{
m_strSel1 = pSel;
}
void CDlgWkInputSel::SetSelect2(LPCSTR pSel)
{
m_strSel2 = pSel;
}
void CDlgWkInputSel::SetSelect3(LPCSTR pSel)
{
m_strSel3 = pSel;
}
void CDlgWkInputSel::SetConnection(CAdoConnection *pConnection,
BOOL bRetrieve,
BOOL bCheck)
{
m_pConnection = pConnection;
m_bRetrieve = bRetrieve;
m_bCheck = bCheck;
}
BOOL CDlgWkInputSel::Retrieve()
{
CString s1, s2,s3, sql;
CStringSQL sqlText;
CEdit *pEdit;
if(m_strSQL.IsEmpty()) return FALSE;
pEdit = (CEdit*)m_ListDoc.GetClass(IDC_SEL1);
ASSERT(pEdit);
pEdit->GetWindowText(s1);
pEdit = (CEdit*)m_ListDoc.GetClass(IDC_SEL2);
ASSERT(pEdit);
pEdit->GetWindowText(s2);
pEdit = (CEdit*)m_ListDoc.GetClass(IDC_SEL3);
ASSERT(pEdit);
pEdit->GetWindowText(s3);
sqlText.SetSelect(m_strSQL);
sqlText.SetWhere(m_strCol1, s1);
sqlText.SetWhere(m_strCol2, s2);
sqlText.SetWhere(m_strCol3, s3);
sql = sqlText.GetSQL();
return m_ListDoc.Retrieve(sql);
}
BOOL CDlgWkInputSel::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//设置搜索
if (!m_strSel1.IsEmpty()) m_Sel1.SetWindowText(m_strSel1);
if (!m_strSel2.IsEmpty()) m_Sel2.SetWindowText(m_strSel2);
if (!m_strSel3.IsEmpty()) m_Sel3.SetWindowText(m_strSel3);
if (!m_ListDoc.Init(this, (CListCtrlBase *)&m_Master))
{
MessageBox("注意:WK-00001生成窗体失败!", "系统提示", MB_OK|MB_ICONEXCLAMATION);
return false;
}
m_ListDoc.SetConnection(m_pConnection);
//分离出数据项名称
CDlgDataCell Cell;
int j = 0;
for(int i = 0; i < m_ListDoc.m_data.size(); i++)
{
Cell = m_ListDoc.m_data.at(i);
if (Cell.dwStyle & CDD_RETRIEVE)
{
if(i == 0)
{
m_strCol1 = Cell.strName;
j++;
}
if (i == 1)
{
m_strCol2 = Cell.strName;
j++;
}
if (i == 2)
{
m_strCol3 = Cell.strName;
break;
}
}
}
//初始化
SetWindowText(m_strTitle);
// m_Master.SetCheckboxes(m_bCheck);
m_ListDoc.Reset();
if (m_bRetrieve) Retrieve();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgWkInputSel::OnDblclkMaster(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
PostMessage(WM_COMMAND, IDC_OK, 0);
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -