📄 attrdlg.cpp
字号:
// AttrDlg.cpp : implementation file
//
#include "stdafx.h"
#include "fksqxt.h"
#include "AttrDlg.h"
#include "InsertAttrDlg.h"
#include "ShowStringDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAttrDlg dialog
CAttrDlg::CAttrDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAttrDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAttrDlg)
m_Radio_sort = 2;
m_comboCXTYPE = -1;
m_comboLeiXing = -1;
m_ComboRMMC = -1;
//}}AFX_DATA_INIT
m_isAsc = true;
m_nSortedCol = 0;
}
void CAttrDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAttrDlg)
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
DDX_Radio(pDX, IDC_RADIO_BH, m_Radio_sort);
DDX_CBIndex(pDX, IDC_COMBO_CXTYPE, m_comboCXTYPE);
DDX_CBIndex(pDX, IDC_COMBO_CXTYPE2, m_comboLeiXing);
DDX_CBIndex(pDX, IDC_COMBO_CXRMMC, m_ComboRMMC);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAttrDlg, CDialog)
//{{AFX_MSG_MAP(CAttrDlg)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, OnColumnclickList1)
ON_BN_CLICKED(IDC_ChaXun, OnChaXun)
ON_BN_CLICKED(IDC_Btn_InsertRow, OnBtnInsertRow)
ON_BN_CLICKED(IDC_BtnDeleteRow, OnBtnDeleteRow)
ON_BN_CLICKED(IDC_SubmitSave, OnSubmitSave)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_NOTIFY(HDN_ITEMCHANGING, IDC_LIST1, OnItemchangingList1)
ON_BN_CLICKED(IDC_ChaXun2, OnChaXun2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAttrDlg message handlers
BOOL CAttrDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// 连接数据库
m_encaAdo.InitADOConn("","", "", "dbo.FKSQXT");
// 查询记录
m_rs = m_encaAdo.GetRecordSet("SELECT * FROM ATTRIBUTE");
m_ListCtrl.ModifyStyle(0,LVS_REPORT);
m_ListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
//title
m_ListCtrl.InsertColumn(1,"属性代码",LVCFMT_LEFT,60);
m_ListCtrl.InsertColumn(2,"属性名称",LVCFMT_LEFT,110);
m_ListCtrl.InsertColumn(3,"类型",LVCFMT_LEFT,70);
m_ListCtrl.InsertColumn(4,"长度",LVCFMT_LEFT,70);
m_ListCtrl.InsertColumn(5,"小数位数",LVCFMT_LEFT,70);
m_ListCtrl.InsertColumn(6,"首增加子系统名称",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(7,"增加人员",LVCFMT_LEFT,90);
m_ListCtrl.InsertColumn(8,"增加日期",LVCFMT_LEFT,120);
UpdateData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAttrDlg::UpdateData()
{
int a=-1;
while(!m_rs->adoEOF)
{
a++ ;
m_rs->MoveNext();
}
if(a < 0)
{
return;
}
m_ListCtrl.DeleteAllItems();
_variant_t var;
int iCount = 0;
m_rs->MoveFirst();
while( !m_rs->adoEOF )
{
if(iCount >= m_ListCtrl.GetItemCount())
{
m_ListCtrl.InsertItem(iCount,"");
}
var = m_rs->GetCollect("ATTR");//属性代码
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,0,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("ATTRMC");//属性名称
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,1,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("TYPE");//类型
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,2,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("LEN");//长度
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,3,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("DEC");//小数位数
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,4,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("ZXTMC");//首增加子系统名称
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,5,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("RMMC_SZ");//增加人员
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,6,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("NYR_SZ");//增加日期
if(var.vt!= VT_NULL)
{
CString NYR = (LPCSTR)_bstr_t(var);
NYR =NYR.Mid(0,NYR.Find(' ',0));
// MessageBox(NYR);
m_ListCtrl.SetItemText(iCount,7,LPCSTR(NYR));
//m_ListCtrl.SetItemText(iCount,7,(LPCSTR)_bstr_t(var));
}
m_ListCtrl.SetItemData(iCount,iCount);
m_rs->MoveNext();
iCount++;
}
}
void CAttrDlg::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iSubItem == m_nSortedCol)
{
m_isAsc = !m_isAsc;
}
else
{
m_isAsc = true;
}
m_nSortedCol = pNMListView->iSubItem;
for(int i=0;i<m_ListCtrl.GetItemCount();i++)
{
m_ListCtrl.SetItemData(i,i);
}
m_ListCtrl.SortItems(CompareFunc,(LPARAM)this);
*pResult = 0;
}
void CAttrDlg::OnChaXun()
{
// TODO: Add your control notification handler code here
CDialog::UpdateData(TRUE);
if(m_Radio_sort == 0 || m_Radio_sort == 1)
{
if(m_nSortedCol == m_Radio_sort)
{
m_isAsc = !m_isAsc;
}
else
{
m_isAsc = true;
m_nSortedCol = m_Radio_sort;
}
for(int i=0;i<m_ListCtrl.GetItemCount();i++)
{
m_ListCtrl.SetItemData(i,i);
}
m_ListCtrl.SortItems(CompareFunc,(LPARAM)this);
}
else
{
m_ListCtrl.DeleteAllItems();
m_rs = m_encaAdo.GetRecordSet("select * from ATTRIBUTE");
UpdateData();
}
}
int CALLBACK CAttrDlg::CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
CAttrDlg *pDlg = (CAttrDlg*)lParamSort;
CString str1 = pDlg->m_ListCtrl.GetItemText(lParam1,pDlg->m_nSortedCol);
CString str2 = pDlg->m_ListCtrl.GetItemText(lParam2,pDlg->m_nSortedCol);
if(pDlg->m_isAsc)
{
return strcmp(str2,str1);
}
else
{
return -strcmp(str2,str1);
}
}
void CAttrDlg::OnBtnInsertRow()
{
// TODO: Add your control notification handler code here
CInsertAttrDlg dlg;
dlg.DoModal();
UpdateData();
}
void CAttrDlg::OnBtnDeleteRow()
{
// TODO: Add your control notification handler code here
if(m_ListCtrl.GetSelectionMark() == -1)
{
MessageBox("没选择任何行");
}
/* if(CompareStr("123","123") == 0 &&
CompareStr("123","124") < 0 )
{
MessageBox("function CompareStr is correct!");
}
else
{
MessageBox("function CompareStr is not correct!");
}
return ;
*/
if(MessageBox("\t是否删除?","确认删除",MB_YESNO) != IDYES)
{
return;
}
CString attr = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),0);
CString strsql;
strsql.Format("select SYSTEM from ATTRIBUTE where ATTR = '%s'",attr);
m_rs = m_encaAdo.GetRecordSet(LPCSTR(strsql));
_variant_t var = m_rs->GetCollect("SYSTEM");
CString strYes = "是";
CString strDB = "";
if(var.vt != VT_NULL)
{
strDB = LPCSTR(_bstr_t(var));
}
//if(!CompareStr(strYes,strDB))
if(!strYes.Compare(strDB))
{
MessageBox("该属性已经在表中存在,不能删除.");
}
else
{
CString strsql2 = "";
strsql2.Format("delete from ATTRIBUTE where ATTR = '%s'",attr);
if(m_encaAdo.ExecuteSQL(LPCSTR(strsql2)))
{
MessageBox("删除成功!");
UpdateData();
}
else
{
MessageBox("删除失败!");
}
}
}
void CAttrDlg::OnSubmitSave()
{
// TODO: Add your control notification handler code here
this->EndDialog(0);
}
int CAttrDlg::CompareStr(CString str1, CString str2)
{
int len1 = str1.GetLength();
int len2 = str2.GetLength();
for(int i=0;i<len1 && i<len2;i++)
{
if(str1.GetAt(i) != str2.GetAt(i))
{
return str1.GetAt(i) - str2.GetAt(i);
}
}
return len1 - len2;
}
void CAttrDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
// MessageBox("OnItemdblclickList1");
CString strATTR = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),0);
CInsertAttrDlg dlg;
dlg.readATTR(strATTR);
dlg.DoModal();
UpdateData();
*pResult = 0;
}
void CAttrDlg::OnItemchangingList1(NMHDR* pNMHDR, LRESULT* pResult)
{
HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
// TODO: Add your control notification handler code here
// MessageBox("OnItemchangingList1");
*pResult = 0;
}
void CAttrDlg::OnChaXun2()
{
CDialog::UpdateData(TRUE);
/* CString strsql;
char array[8][10] = {"char",
"nchar",
"nvarchar",
"int",
"datetime",
"numeric",
"float",
"binary"};
if(m_comboLeiXing != -1)
{
strsql.Format("select * from ATTRIBUTE where TYPE like '%%%s%%'",array[m_comboLeiXing]);
// MessageBox(strsql);
m_ListCtrl.DeleteAllItems();
m_rs = m_encaAdo.GetRecordSet(LPCSTR(strsql));
UpdateData();
}
*/ /*char
nchar
nvarchar
int
datetime
numeric
float
binary
*/
/*陆拥军
闫兴安
张鹏
宋超*/
CString strsql;
char array[4][10] = {"陆拥军",
"闫兴安",
"张鹏",
"宋超"
};
if(m_ComboRMMC != -1)
{
strsql.Format("select * from ATTRIBUTE where RMMC_SZ like '%%%s%%'",array[m_ComboRMMC]);
CShowStringDlg dlg;
dlg.SetString(strsql);
// dlg.DoModal();
// MessageBox(strsql);
m_ListCtrl.DeleteAllItems();
m_rs = m_encaAdo.GetRecordSet(LPCSTR(strsql));
UpdateData();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -