📄 ruledlg.cpp
字号:
// RULEDLG.cpp : implementation file
//
#include "stdafx.h"
#include "KNC_MIS.h"
#include "RULEDLG.h"
#include "KNC_MISView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRULEDLG dialog
CRULEDLG::CRULEDLG(CWnd* pParent /*=NULL*/)
: CDialog(CRULEDLG::IDD, pParent)
{
//{{AFX_DATA_INIT(CRULEDLG)
m_sRulecontent = _T("");
m_sRulename = _T("");
m_sRuleid = _T("");
//}}AFX_DATA_INIT
}
void CRULEDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRULEDLG)
DDX_Control(pDX, IDC_LIST2, m_Rulelist);
DDX_Text(pDX, IDC_EDIT1, m_sRulecontent);
DDX_Text(pDX, IDC_EDIT2, m_sRulename);
DDX_Text(pDX, IDC_EDIT3, m_sRuleid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRULEDLG, CDialog)
//{{AFX_MSG_MAP(CRULEDLG)
ON_BN_CLICKED(IDC_Add, OnAdd)
ON_BN_CLICKED(IDC_Delete, OnDelete)
ON_BN_CLICKED(IDC_Motify, OnMotify)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRULEDLG message handlers
void CRULEDLG::OnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(true);
m_sRulecontent="";
m_sRulename="";
m_sRuleid="";
tx_ruleid->EnableWindow(true);
tx_rulename->EnableWindow(true);
tx_rulecontent->EnableWindow(true);
flag=1;
bt_save->EnableWindow(true);
bt_add->EnableWindow(false);
bt_modify->EnableWindow(false);
bt_delete->EnableWindow(false);
UpdateData(false);
}
void CRULEDLG::OnDelete()
{
// TODO: Add your control notification handler code here
// Del Records
_variant_t strQuery;
strQuery = "select * from TABLE1";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
POSITION pos = m_Rulelist.GetFirstSelectedItemPosition();
if ( pos == NULL )
{
AfxMessageBox(_T("没有选中的记录!"), MB_ICONEXCLAMATION);
return;
}
else
{
int iItem;
CString sRuleid;
while (pos)
{
iItem = m_Rulelist.GetNextSelectedItem(pos);
sRuleid = m_Rulelist.GetItemText(iItem, 0);
strQuery = "delete from TABLE1 where ruleid='"+sRuleid+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
m_Rulelist.DeleteItem(iItem);
}
}
m_sRuleid="";
m_sRulename="";
m_sRulecontent="";
UpdateData(false);
}
void CRULEDLG::OnMotify()
{
// TODO: Add your control notification handler code here
tx_ruleid->EnableWindow(true);
tx_rulecontent->EnableWindow(true);
tx_rulename->EnableWindow(true);
flag=2;
bt_save->EnableWindow(true);
bt_delete->EnableWindow(false);
bt_modify->EnableWindow(false);
}
void CRULEDLG::OnSave()
{
// TODO: Add your control notification handler code here
UpdateData(true);
// Make sure all needed info is available
CString sWarning="";
if ( ""==m_sRuleid ) sWarning=_T("规程编号");
else if ( ""==m_sRulename ) sWarning=_T("规程名称");
else if ( ""==m_sRulecontent ) sWarning=_T("规程内容");
if ( ""!=sWarning )
{
sWarning += _T("不能为空");
AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
return;
}
_variant_t strQuery;
if(flag==1) //添加记录
{
// Judge rule is unique
strQuery = "select * from TABLE1 where ruleid='"+m_sRuleid+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( 0!=iCount )
{
AfxMessageBox(_T("已经存在此规程记录!"), MB_ICONEXCLAMATION);
return;
}
}
else if(flag==2)//修改
{ //删除旧记录
strQuery = "delete from TABLE1 where ruleid='"+m_sRuleid+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
}
// Insert Record
strQuery = "insert TABLE1 (ruleid, rulename, rulecontent) \
values ('"+m_sRuleid+"', '"+m_sRulename+"', '"+m_sRulecontent+"')";
int iItem;
POSITION pos = m_Rulelist.GetFirstSelectedItemPosition();
iItem = m_Rulelist.GetNextSelectedItem(pos);
m_Rulelist.DeleteItem(iItem);
//更新列表框数据
int j;
j=m_Rulelist.GetItemCount();
m_Rulelist.InsertItem(j, m_sRulename);
m_Rulelist.SetItemText(j, 1 , m_sRuleid);
m_Rulelist.SetItemText(j, 2 , m_sRulecontent);
if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) )
{
if (flag==1)
{
AfxMessageBox(_T("添加加工规程成功!"), MB_ICONINFORMATION);
// Clear all input
m_sRuleid=m_sRulename=m_sRulecontent="";
UpdateData(false);
}
else AfxMessageBox(_T("修改加工规程成功!"), MB_ICONINFORMATION);
}
else
{
if (flag==1) AfxMessageBox(_T("添加加工规程失败!"), MB_ICONEXCLAMATION);
else AfxMessageBox(_T("修改加工规程失败!"), MB_ICONEXCLAMATION);
}
tx_rulecontent->EnableWindow(false);
tx_ruleid->EnableWindow(false);
tx_rulename->EnableWindow(false);
bt_add->EnableWindow(true);
bt_save->EnableWindow(false);
bt_modify->EnableWindow(false);
bt_delete->EnableWindow(false);
}
void CRULEDLG::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void CRULEDLG::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UpdateData(true);
POSITION pos = m_Rulelist.GetFirstSelectedItemPosition();
if(pos)
{
int nFirstSelItem = m_Rulelist.GetNextSelectedItem(pos);
m_sRulename=m_Rulelist.GetItemText(nFirstSelItem,0);
m_sRuleid=m_Rulelist.GetItemText(nFirstSelItem,1);
// m_sRulecontent=m_Rulelist.GetItemText(nFirstSelItem,2);
_variant_t strQueryq,Holder;
strQueryq = "select * from TABLE1 where ruleid='"+m_sRuleid+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQueryq);
Holder = theApp.m_pADOSet->GetCollect("rulecontent");
m_sRulecontent = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
}
//AfxMessageBox(str);
bt_delete->EnableWindow(true);
bt_modify->EnableWindow(true);
UpdateData(false);
*pResult = 0;
}
BOOL CRULEDLG::OnInitDialog()
{
CDialog::OnInitDialog();
_variant_t strQuery, Holder;
CString str;
DWORD style;
style=m_Rulelist.GetExStyle();
style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
m_Rulelist.SetExtendedStyle(style);
m_sOldRuleid = m_sRuleid;
// Set Color
//m_Codelist.SetBkColor(RGB(177, 151, 240));
// m_Codelist.SetTextColor(RGB(0,0,0));
// m_Codelist.SetTextBkColor(RGB(177, 151, 240));
// 设置表字段
m_Rulelist.InsertColumn(0,"规程名称",LVCFMT_LEFT,100);
m_Rulelist.InsertColumn(1,"规程编号",LVCFMT_LEFT,100);
m_Rulelist.InsertColumn(2,"内容",LVCFMT_LEFT,100);
flag=0;
tx_rulecontent=GetDlgItem(IDC_EDIT1);
tx_ruleid=GetDlgItem(IDC_EDIT3);
tx_rulename=GetDlgItem(IDC_EDIT2);
bt_add=GetDlgItem(IDC_Add);
bt_save=GetDlgItem(IDC_SAVE);
bt_modify=GetDlgItem(IDC_Motify);
bt_delete=GetDlgItem(IDC_Delete);
tx_rulecontent->EnableWindow(false);
tx_ruleid->EnableWindow(false);
tx_rulename->EnableWindow(false);
bt_add->EnableWindow(true);
bt_save->EnableWindow(false);
bt_modify->EnableWindow(false);
bt_delete->EnableWindow(false);
//列表框数据初始化
strQuery = "select * from TABLE1";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if (0==iCount) return 0;
theApp.m_pADOSet->MoveFirst();
for (int i=0; i<iCount; i++)
{
// Get rulename
Holder = theApp.m_pADOSet->GetCollect("rulename");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_Rulelist.InsertItem(i, str);
// Get ruleid
Holder = theApp.m_pADOSet->GetCollect("ruleid");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_Rulelist.SetItemText(i, 1, str);
// Get rulecontent
Holder = theApp.m_pADOSet->GetCollect("rulecontent");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_Rulelist.SetItemText(i, 2, str);
theApp.m_pADOSet->MoveNext();
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -