⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formview0.cpp

📁 C++编写的数据库课程设计--报刊管理,内容详细
💻 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 + -