📄 tabledlg.cpp
字号:
// TableDlg.cpp : implementation file
//
#include "stdafx.h"
#include "fksqxt.h"
#include "TableDlg.h"
#include "EncaADO.h"
#include "InsertTableDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTableDlg dialog
CTableDlg::CTableDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTableDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTableDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTableDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTableDlg)
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTableDlg, CDialog)
//{{AFX_MSG_MAP(CTableDlg)
ON_BN_CLICKED(IDC_InsertRow, OnInsertRow)
ON_BN_CLICKED(IDC_DeleteRow, OnDeleteRow)
ON_BN_CLICKED(IDC_SubmitSave, OnSubmitSave)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_BN_CLICKED(IDC_ReNew, OnReNew)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTableDlg message handlers
BOOL CTableDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// 连接数据库
m_encaAdo.InitADOConn("","", "", "dbo.FKSQXT");
// 查询记录
m_rs = m_encaAdo.GetRecordSet("SELECT * FROM TABLEZD order by ZXT ");
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,100);
m_ListCtrl.InsertColumn(4,"二维表名称",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(5,"表类别",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(6,"记录性质",LVCFMT_LEFT,60);
m_ListCtrl.InsertColumn(7,"存储位置",LVCFMT_LEFT,90);
m_ListCtrl.InsertColumn(8,"备注",LVCFMT_LEFT,60);
m_ListCtrl.InsertColumn(9,"文件是否存在",LVCFMT_LEFT,90);
UpdateData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTableDlg::UpdateData()
{
m_rs = m_encaAdo.GetRecordSet("SELECT * FROM TABLEZD order by ZXT ");
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,"");
}
m_ListCtrl.InsertItem(iCount,"");
var = m_rs->GetCollect("ZXT");//子系统
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,0,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("ZXTMC");//子系统名称
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,1,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("BH");//二维表代码
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,2,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("MC");//二维表名称
if(var.vt != VT_NULL)
{
m_ListCtrl.SetItemText(iCount,3,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("LB");//表类别
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,4,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("XZ");//记录性质
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,5,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("ADDR");//存储位置
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,6,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("BZ");//备注
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,7,(LPCSTR)_bstr_t(var));
}
var = m_rs->GetCollect("EXIST");//文件是否存在
if(var.vt!= VT_NULL)
{
m_ListCtrl.SetItemText(iCount,8,(LPCSTR)_bstr_t(var));
}
m_rs->MoveNext();
iCount++;
}
}
void CTableDlg::OnInsertRow()
{
// TODO: Add your control notification handler code here
CInsertTableDlg dlg;
dlg.DoModal();
UpdateData();
}
void CTableDlg::OnDeleteRow()
{
// TODO: Add your control notification handler code here
if(m_ListCtrl.GetSelectionMark() == -1)
{
MessageBox("没选择任何行");
return ;
}
/* 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 zxt = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),0);
CString bh = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),2);
CString addr = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),6);
CString strSQL;
strSQL.Format("select * from TABLEZD where ZXT = '%s' AND BH = '%s' AND ADDR = '%s'",
zxt,bh,addr);
m_rs = m_encaAdo.GetRecordSet(LPCSTR(strSQL));
_variant_t var = m_rs->GetCollect("EXIST");
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 TABLEZD where ZXT = '%s' AND BH = '%s' AND ADDR = '%s'",
zxt,bh,addr);
if(m_encaAdo.ExecuteSQL(LPCSTR(strsql2)))
{
MessageBox("删除成功!");
UpdateData();
}
else
{
MessageBox("删除失败!");
}
}
}
void CTableDlg::OnSubmitSave()
{
// TODO: Add your control notification handler code here
this->EndDialog(0);
}
void CTableDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
if(m_ListCtrl.GetSelectionMark() == -1)
{
// MessageBox("unselected");
}
else
{
// MessageBox("selected");
CInsertTableDlg dlg;
CString str0 = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),0);
CString str2 = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),2);
CString str6 = m_ListCtrl.GetItemText(m_ListCtrl.GetSelectionMark(),6);
// MessageBox(str);
if(dlg.readKey(str0,str2,str6))
{
// MessageBox("before DoModal");
dlg.DoModal();
UpdateData();
}
}
*pResult = 0;
}
void CTableDlg::OnReNew()
{
UpdateData();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -