📄 dunit.cpp
字号:
// DUnit.cpp : implementation file
//
#include "stdafx.h"
#include "qpglxt.h"
#include "DUnit.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDUnit dialog
CDUnit::CDUnit(CWnd* pParent /*=NULL*/)
: CDialog(CDUnit::IDD, pParent)
{
//{{AFX_DATA_INIT(CDUnit)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDUnit::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDUnit)
DDX_Control(pDX, IDC_STAUNIT, m_StaUnit);
DDX_Control(pDX, IDC_UNIT_LIST, m_List);
DDX_Control(pDX, IDC_UNIT_EDTUNIT, m_EdtUnit);
DDX_Control(pDX, IDC_UNIT_EDTID, m_EdtID);
DDX_Control(pDX, IDC_SPXX_BUTUNDO, m_ButUndo);
DDX_Control(pDX, IDC_SPXX_BUTSAVE, m_ButSave);
DDX_Control(pDX, IDC_SPXX_BUTEXIT, m_ButExit);
DDX_Control(pDX, IDC_SPXX_BUTDELE, m_ButDele);
DDX_Control(pDX, IDC_SPXX_BUTCHANGE, m_ButChange);
DDX_Control(pDX, IDC_SPXX_BUTADD, m_ButAdd);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDUnit, CDialog)
//{{AFX_MSG_MAP(CDUnit)
ON_BN_CLICKED(IDC_SPXX_BUTADD, OnSpxxButadd)
ON_BN_CLICKED(IDC_SPXX_BUTCHANGE, OnSpxxButchange)
ON_BN_CLICKED(IDC_SPXX_BUTDELE, OnSpxxButdele)
ON_BN_CLICKED(IDC_SPXX_BUTSAVE, OnSpxxButsave)
ON_BN_CLICKED(IDC_SPXX_BUTUNDO, OnSpxxButundo)
ON_BN_CLICKED(IDC_SPXX_BUTEXIT, OnSpxxButexit)
ON_LBN_SELCHANGE(IDC_UNIT_LIST, OnSelchangeUnitList)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDUnit message handlers
void CDUnit::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
}
BOOL CDUnit::OnInitDialog()
{
CDialog::OnInitDialog();
RxRecordset rst;
rst.Open(m_sDataBaseName);
m_sUnitTit=m_sUnitTit+":";
this->m_StaUnit.SetWindowText(m_sUnitTit);
this->m_List.SetDatabase(rst,m_sField);
this->SetWindowText(m_sCaption);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDUnit::Clear()
{
m_EdtUnit.SetWindowText("");
m_EdtID.SetWindowText("");
}
void CDUnit::Display(CString sUnit)
{
RxRecordset Drxt;
CString sSQL;
if(sUnit.IsEmpty())
return;
sSQL.Format("SELECT * FROM %s WHERE %s ='%s'",m_sDataBaseName,m_sField,sUnit);
Drxt.Open(sSQL,adCmdText);
CString sID;
sID=Drxt.GetFieldValue("编号");
sUnit=Drxt.GetFieldValue(m_sField);
m_EdtUnit.SetWindowText(sUnit);
m_EdtID.SetWindowText(sID);
}
void CDUnit::Enabled(bool bEnabled)
{
m_EdtUnit.EnableWindow(bEnabled);
m_List.EnableWindow(!bEnabled);
m_ButUndo.EnableWindow(bEnabled);
m_ButSave.EnableWindow(bEnabled);
m_ButExit.EnableWindow(!bEnabled);
m_ButDele.EnableWindow(!bEnabled);
m_ButChange.EnableWindow(!bEnabled);
m_ButAdd.EnableWindow(!bEnabled);
}
void CDUnit::OnSpxxButadd()
{
AddOrChange=1;
CString sNewID;
sNewID=ado.AutoNumber(m_sDataBaseName,"编号","",1);
this->Clear();
m_EdtID.SetWindowText(sNewID);
this->Enabled(true);
this->m_EdtUnit.SetFocus();
}
void CDUnit::OnSpxxButchange()
{
AddOrChange=2;
this->Enabled(true);
this->m_EdtUnit.SetFocus();
}
void CDUnit::OnSpxxButdele()
{
if(MessageBox("确定要删除记录吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
CString cID,sSQL;
this->m_EdtID.GetWindowText(cID);
sSQL.Format("DELETE FROM %s WHERE 编号=%s",m_sDataBaseName,cID);
bool isUsing=rst.Open(sSQL,adCmdText);
if(isUsing==false)
MessageBox("删除记录失败,一个或多个数据表使用了此条记录!","系统提示",MB_OK|MB_ICONSTOP);
this->UpdateWindow();
m_List.Refresh(m_sField);
}
void CDUnit::OnSpxxButsave()
{
if(MessageBox("确定要保存记录吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
CString sSQL,sID,sUnit;
m_EdtID.GetWindowText(sID);
m_EdtUnit.GetWindowText(sUnit);
CString stext;
for(int i=0;i<m_List.GetCount();i++)
{
m_List.GetText(i,stext);
if(stext==sUnit)
{
MessageBox("您输入的计量单位已经存在,请确认后重新输入!","系统提示",MB_OK|MB_ICONSTOP);
m_EdtUnit.SetFocus();
return;
}
}
if(this->AddOrChange==1)//添加
sSQL.Format("INSERT INTO %s VALUES(%s,'%s')",m_sDataBaseName,sID,sUnit);
else//修改
sSQL.Format("UPDATE %s SET %s='%s' WHERE 编号=%s",m_sDataBaseName,m_sField,sUnit,sID);
rst.Open(sSQL,adCmdText);
this->Enabled(false);
this->AddOrChange=0;
m_List.Refresh(m_sField);
m_ButAdd.SetFocus();
}
void CDUnit::OnSpxxButundo()
{
if(MessageBox("确定要撤消操作吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
this->Enabled(false);
this->Clear();
this->Display(m_sText);
}
void CDUnit::OnSpxxButexit()
{
this->OnCancel();
}
void CDUnit::OnSelchangeUnitList()
{
CString sText;
m_List.GetText(m_List.GetCurSel(),sText);
this->Display(sText);
m_sText=sText;
}
void CDUnit::SetDataBase(CString sDataBaseName,CString sField,CString sUnitTit)
{
m_sDataBaseName=sDataBaseName;
m_sField=sField;
m_sUnitTit=sUnitTit;
}
void CDUnit::SetCaption(CString sCaption)
{
m_sCaption=sCaption;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -