📄 formview0.cpp
字号:
// FORMVIEW0.cpp : 实现文件
//
#include "stdafx.h"
#include "DBDesign.h"
#include "FORMVIEW0.h"
#include ".\formview0.h"
// CFORMVIEW0 对话框
IMPLEMENT_DYNAMIC(CFORMVIEW0, CDialog)
CFORMVIEW0::CFORMVIEW0(CWnd* pParent /*=NULL*/)
: CDialog(CFORMVIEW0::IDD, pParent)
{
}
CFORMVIEW0::~CFORMVIEW0()
{
//MessageBox("asfsdaf");
//在此释放对象
}
void CFORMVIEW0::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_list);
}
BEGIN_MESSAGE_MAP(CFORMVIEW0, CDialog)
ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnNMRclickList1)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnLvnItemchangedList1)
ON_COMMAND(ID_32771, OnMenu0)
ON_COMMAND(ID_32772, OnMenu1)
END_MESSAGE_MAP()
// CFORMVIEW0 消息处理程序
BOOL CFORMVIEW0::OnInitDialog(void)
{
BOOL bResult;
bResult=CDialog::OnInitDialog();
m_list.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);
m_list.InsertColumn(0,"编号",LVCFMT_LEFT,70);
m_list.InsertColumn(1,"姓名",LVCFMT_LEFT,70);
m_list.InsertColumn(2,"地址",LVCFMT_LEFT,110);
m_list.InsertColumn(3,"订刊时间",LVCFMT_LEFT,70);
m_list.InsertColumn(4,"刊物",LVCFMT_LEFT,70);
m_list.InsertColumn(5,"期刊类别",LVCFMT_LEFT,70);
m_list.InsertColumn(6,"始",LVCFMT_LEFT,30);
m_list.InsertColumn(7,"止",LVCFMT_LEFT,30);
m_list.InsertColumn(8,"份数",LVCFMT_LEFT,40);
m_list.InsertColumn(9,"单价",LVCFMT_LEFT,40);
//m_list.InsertColumn(10,"是否投递",LVCFMT_LEFT,60);
LoadData();
//MessageBox("asdf");
return bResult;
}
void CFORMVIEW0::LoadData()
{
_RecordsetPtr pRecord;
_variant_t value;
CString temp,sql;
int i=0;
// 清空list
m_list.DeleteAllItems();
try
{
// 生成Recordset实例
pRecord.CreateInstance("ADODB.Recordset");
// 打开记录集,静态光标(静态记录集),乐观锁定方式
// 查询所有语句
sql="select customer.cno,customer.name,customer.addr,cus_order.orderdate,NMTABLE.title,NMTABLE.price,NMTABLE.period,cus_order.start,cus_order.term,cus_order.qty from customer,cus_order,[NMTABLE] where customer.cno=cus_order.cno and NMTABLE.nmno=cus_order.nmno";
pRecord->Open(_bstr_t(sql),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
while( !pRecord->adoEOF )
{
value = pRecord->GetCollect("cno");
if(value.vt!=VT_NULL)
{
value.ChangeType(VT_BSTR);
temp=value.bstrVal;
}
else
temp="";
m_list.InsertItem(i,temp);
value = pRecord->GetCollect("name");
if(value.vt!=VT_NULL)
temp=value.bstrVal;
else
temp="name";
m_list.SetItemText(i,1,temp.Trim());
value = pRecord->GetCollect("addr");
if(value.vt!=VT_NULL)
temp=value.bstrVal;
else
temp="";
m_list.SetItemText(i,2,temp.Trim());
value = pRecord->GetCollect("orderdate");
if(value.vt!=VT_NULL)
{
value.ChangeType(VT_BSTR);
temp=value.bstrVal;
}
else
temp="";
m_list.SetItemText(i,3,temp.Trim());
value = pRecord->GetCollect("title");
if(value.vt!=VT_NULL)
temp=value.bstrVal;
else
temp="";
m_list.SetItemText(i,4,temp.Trim());
value = pRecord->GetCollect("period");
if(value.vt!=VT_NULL)
temp=value.bstrVal;
else
temp="";
m_list.SetItemText(i,5,temp.Trim());
value = pRecord->GetCollect("start");
if(value.vt!=VT_NULL)
{
value.ChangeType(VT_BSTR);
temp=value.bstrVal;
}
else
temp="";
m_list.SetItemText(i,6,temp);
value = pRecord->GetCollect("term");
if(value.vt!=VT_NULL)
{
value.ChangeType(VT_BSTR);
temp=value.bstrVal;
}
else
temp="";
m_list.SetItemText(i,7,temp);
value = pRecord->GetCollect("qty");
if(value.vt!=VT_NULL)
{
value.ChangeType(VT_BSTR);
temp=value.bstrVal;
}
else
temp="";
m_list.SetItemText(i,8,temp);
value = pRecord->GetCollect("price");
if(value.vt!=VT_NULL)
{
value.ChangeType(VT_BSTR);
temp=value.bstrVal;
}
else
temp="";
m_list.SetItemText(i,9,temp);
i++;
pRecord->MoveNext();
}
pRecord->Close();
pRecord = NULL;
}
catch( _com_error *e )
{
MessageBox( e->ErrorMessage() );
}
//m_SltCombo.SetCurSel(0);
}
void CFORMVIEW0::OnNMRclickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
CPoint oPoint;
int istat;
CString pString;
CMenu menu ,*pSubMenu; //定义下面要用到的cmenu对象
menu.LoadMenu(IDR_MENU1);
pSubMenu = menu.GetSubMenu(0);
istat=m_list.GetSelectionMark();//用istat存放当前选定的是第几项
if(istat<0)
{
pSubMenu->EnableMenuItem(0,MF_BYPOSITION|MF_GRAYED);
}
GetCursorPos( &oPoint);
pSubMenu->TrackPopupMenu (TPM_LEFTALIGN, oPoint.x, oPoint.y, this); //在指定位置显示弹出菜单
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}
void CFORMVIEW0::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}
void CFORMVIEW0::OnMenu0()
{
CString SQL;
_CommandPtr m_pCommand;
int i;
i=m_list.GetSelectionMark();
SQL=(CString)"delete from [CUS_ORDER] where CNO=" + m_list.GetItemText(i,0);
SQL+=" and NMNO=(select NMNO from [NMTABLE] where title='" + m_list.GetItemText(i,4) + "')";
//MessageBox(SQL);
try
{
m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection = theApp.m_pConnection;
m_pCommand->CommandText = _bstr_t(SQL);
m_pCommand->Execute(NULL, NULL,adCmdText);
//m_pCommand->Release();
}
catch(...)
{
MessageBox("执行SQL语句出错!");
}
this->LoadData();
}
void CFORMVIEW0::OnMenu1()
{
this->LoadData();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -