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

📄 transactionrecord.cpp

📁 这是一个企业办公管理系统。实现了文件的制作、修改、传递、、保存、销毁、存档等一系列操作。为windows系统认证模式
💻 CPP
字号:
// TransactionRecord.cpp : implementation file
//

#include "stdafx.h"
#include "Office.h"
#include "TransactionRecord.h"
#include "Transaction.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTransactionRecord dialog


CTransactionRecord::CTransactionRecord(CWnd* pParent /*=NULL*/)
	: CDialog(CTransactionRecord::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTransactionRecord)
	m_transactionType = _T("");
	m_transactionDate = COleDateTime::GetCurrentTime();
	m_transactionSubject = _T("");
	m_content = _T("");
	//}}AFX_DATA_INIT
}


void CTransactionRecord::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTransactionRecord)
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_CBString(pDX, IDC_TRANSACTIONTYPE, m_transactionType);
	DDX_DateTimeCtrl(pDX, IDC_TRANSACTIONDATE, m_transactionDate);
	DDX_Text(pDX, IDC_TRANSACTIONSUBJECT, m_transactionSubject);
	DDX_Text(pDX, IDC_CONTENT, m_content);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTransactionRecord, CDialog)
	//{{AFX_MSG_MAP(CTransactionRecord)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_MODIFY, OnModify)
	ON_BN_CLICKED(IDC_SAVE, OnSave)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	ON_NOTIFY(NM_CLICK, IDC_LIST, OnClickList)
//	ON_BN_CLICKED(IDC_CANCEL, OnCancel)
	ON_BN_CLICKED(IDC_CANCEL1, OnCancel1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTransactionRecord message handlers

BOOL CTransactionRecord::OnInitDialog() 
{
	CDialog::OnInitDialog();

	DWORD style;
	style=m_list.GetExStyle();  //获取样式
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ; //设置样式
	m_list.SetExtendedStyle(style); //应用样式
	
	m_list.InsertColumn(0,"分类",LVCFMT_LEFT,100);  //添加列
	m_list.InsertColumn(1,"日期",LVCFMT_LEFT,100);
	m_list.InsertColumn(2,"主题",LVCFMT_LEFT,100);
	
	cwnd_list= GetDlgItem(IDC_LIST);  //获取列表框控件的窗口句柄
	cwnd_transactionType= GetDlgItem(IDC_TRANSACTIONTYPE);//获取事务类别控件的窗口句柄
	cwnd_transactionDate= GetDlgItem(IDC_TRANSACTIONDATE);//获取事务日期控件的窗口句柄
	cwnd_transactionSubject= GetDlgItem(IDC_TRANSACTIONSUBJECT);//获取事务主题控件的窗口句柄
	cwnd_content= GetDlgItem(IDC_CONTENT);//获取事务内容控件的窗口句柄

	cwnd_add= GetDlgItem(IDC_ADD);//获取添加按钮的窗口句柄
	cwnd_cancel= GetDlgItem(IDC_CANCEL1);//获取取消按钮的窗口句柄
	cwnd_delete= GetDlgItem(IDC_DELETE);//获取删除按钮的窗口句柄
	cwnd_modify= GetDlgItem(IDC_MODIFY);//获取修改按钮的窗口句柄
	cwnd_save= GetDlgItem(IDC_SAVE);//获取保存按钮控件的窗口句柄
	cwnd_exit= GetDlgItem(IDC_EXIT);//获取退出按钮的窗口句柄

	_RecordsetPtr m_pRecordset;  //记录集

	CString strSQL;
	strSQL="select * from transactionRecord"; //查询语句
	HRESULT hTRes;
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
			((COfficeApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText); //打开记录集
		int i=0;
		
		while(!(m_pRecordset->adoEOF))
		{
			m_list.InsertItem(i,((COfficeApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("transactionType"))); //事务类型
			m_list.SetItemText(i,1,((COfficeApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("transactionDate")));//事务日期
			m_list.SetItemText(i,2,((COfficeApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("transactionSubject")));//事务主题
			
			i++;
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext(); //记录集指针向后移动
		}
	}

	cwnd_list->EnableWindow(true);  //设置列表框控件可用
	cwnd_transactionType->EnableWindow(false); //设置事务类型控件不可用
	cwnd_transactionDate->EnableWindow(false);//设置事务日期控件不可用
	cwnd_transactionSubject->EnableWindow(false);//设置事务主题控件不可用
	cwnd_content->EnableWindow(false);//设置事务内容控件不可用

	cwnd_add->EnableWindow(true);  //设置添加按钮可用
	cwnd_cancel->EnableWindow(false);//设置取消按钮不可用
	cwnd_delete->EnableWindow(false); //设置删除按钮可用
	cwnd_modify->EnableWindow(false); //设置修改按钮可用
	cwnd_save->EnableWindow(false);  //设置保存按钮不可用
	cwnd_exit->EnableWindow(true);  //设置退出按钮可用
	
	flag=0;  //没有增加和修改
	
	return TRUE;  
}

void CTransactionRecord::OnAdd() 
{
	cwnd_list->EnableWindow(true);  //设置列表框控件可用
	cwnd_transactionType->EnableWindow(true);//设置事务类型控件可用
	cwnd_transactionDate->EnableWindow(true);//设置事务日期控件可用
	cwnd_transactionSubject->EnableWindow(true);//设置事务主题控件可用
	cwnd_content->EnableWindow(true);//设置事务内容控件可用

	cwnd_add->EnableWindow(false); //设置添加按钮不可用
	cwnd_cancel->EnableWindow(true); //设置取消按钮可用
	cwnd_delete->EnableWindow(false); //设置删除按钮不可用
	cwnd_modify->EnableWindow(false);//设置修改按钮不可用
	cwnd_save->EnableWindow(true); //设置保存按钮可用
	cwnd_exit->EnableWindow(false); //设置退出按钮不可用
	//设置变量的初值
	m_transactionType = _T("");//事务类型  
	m_transactionDate = COleDateTime::GetCurrentTime();//事务日期取当前日期
	m_transactionSubject = _T("");//事务主题
	m_content = _T("");//事务内容
	
	flag=1;//正在添加一条新的记录
}

void CTransactionRecord::OnDelete() 
{
	UpdateData(true);
	CTransaction transaction;//读写数据库事务记录表访问类
	transaction.sqlDelete(m_transactionSubject);//删除符合条件的记录

	cwnd_list->EnableWindow(true); //列表框控件可用
	cwnd_transactionType->EnableWindow(false); //事务类型控件不可用
	cwnd_transactionDate->EnableWindow(false); //事务日期控件不可用
	cwnd_transactionSubject->EnableWindow(false); //事务主题控件不可用
	cwnd_content->EnableWindow(false); //事务内容控件不可用

	cwnd_add->EnableWindow(true);  //添加按钮可用
	cwnd_cancel->EnableWindow(false); //取消按钮不可用
	cwnd_delete->EnableWindow(false); //删除按钮不可用
	cwnd_modify->EnableWindow(false); //修改按钮不可用
	cwnd_save->EnableWindow(false);  //保存按钮不可用
	cwnd_exit->EnableWindow(true);  //退出按钮可用
	//设定控件变量的初值
	m_transactionType = _T("");
	m_transactionDate = COleDateTime::GetCurrentTime();
	m_transactionSubject = _T("");
	m_content = _T("");

	m_list.DeleteAllItems();
	Refresh();
	
	UpdateData(false);//将控件变量的值更新到对话框
}

void CTransactionRecord::OnModify() 
{
	cwnd_list->EnableWindow(true); //列表框控件可用
	cwnd_transactionType->EnableWindow(true); //事务类型编辑框可用
	cwnd_transactionDate->EnableWindow(true); //事务日期编辑框可用
    //	cwnd_transactionSubject->EnableWindow(true); //事务主题编辑框可用
	cwnd_content->EnableWindow(true); //事务内容编辑框可用

	cwnd_add->EnableWindow(false); //添加按钮不可用
	cwnd_cancel->EnableWindow(true); //取消按钮可用
	cwnd_delete->EnableWindow(false); //删除按钮不可用
	cwnd_modify->EnableWindow(false); //修改按钮不可用
	cwnd_save->EnableWindow(true); //保存按钮可用
	cwnd_exit->EnableWindow(false); //退出按钮不可用

	flag=2;	 //正在修改一条记录
}

void CTransactionRecord::OnSave() 
{
	UpdateData(true);//将控件中的数据更新到变量
	cwnd_list->EnableWindow(true);//列表框控件可用
	cwnd_transactionType->EnableWindow(false);//事务类型控件不可用
	cwnd_transactionDate->EnableWindow(false); //事务日期控件不可用
	cwnd_transactionSubject->EnableWindow(false); //事务主题控件不可用
	cwnd_content->EnableWindow(false); //事务内容控件不可用

	cwnd_add->EnableWindow(true); //添加按钮可用
	cwnd_cancel->EnableWindow(false); //取消按钮不可用
	cwnd_delete->EnableWindow(true);  //删除按钮可用
	cwnd_modify->EnableWindow(true); //修改按钮可用
	cwnd_save->EnableWindow(false); //保存按钮不可用
	cwnd_exit->EnableWindow(true); //退出按钮可用
	if(flag==1)  //add
	{
		CTransaction transaction; //读写数据库事务记录表访问类
		transaction.SetContent(m_content); //设置新记录事务内容
		transaction.SetTransactionDate(m_transactionDate);//设置新记录事务日期
		transaction.SetTransactionType(m_transactionType);//设置新记录事务类型
		transaction.SetTransactionSubject(m_transactionSubject);//设置新记录事务主题

		transaction.sqlInsert();//将记录存入数据库
		
	}
	else //if(flag==2)  //modify
	{
		CTransaction transaction; //读写数据库事务记录表访问类
		transaction.SetContent(m_content); //设置新记录事务内容
		transaction.SetTransactionDate(m_transactionDate);//设置新记录事务日期
		transaction.SetTransactionType(m_transactionType);//设置新记录事务类型
	//	transaction.SetTransactionSubject(m_transactionSubject);//设置新记录事务主题
		transaction.sqlUpdate(m_transactionSubject); //更新数据库中的纪录
	}

	Refresh();
	flag=0;//已经保存	
}

/*void CTransactionRecord::OnCancel() 
{
	
}*/

void CTransactionRecord::OnExit() 
{
	this->OnCancel();	
}

void CTransactionRecord::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(true);
	POSITION pos = m_list.GetFirstSelectedItemPosition(); //获得单击的位置
	if(pos)
	{
		int nFirstSelItem = m_list.GetNextSelectedItem(pos); //获得单击的条目
		m_transactionSubject=m_list.GetItemText(nFirstSelItem,2);//获得单击的事务主题
	}

	CTransaction transaction; //访问事务记录数据库的类
	transaction.GetData(m_transactionSubject); //获取数据
	m_transactionDate=transaction.GetTransactionDate(); //事务日期
	m_transactionType=transaction.GetTransactionType(); //事务类型
	m_content=transaction.GetContent(); //事务内容

	UpdateData(false); //更新到对话框

	cwnd_add->EnableWindow(true); //添加按钮可用
	cwnd_cancel->EnableWindow(false); //取消按钮不可用
	cwnd_delete->EnableWindow(true); //删除按钮可用
	cwnd_modify->EnableWindow(true); //修改按钮可用
	cwnd_save->EnableWindow(false); //保存按钮不可用
	cwnd_exit->EnableWindow(true); //退出按钮可用
	
	*pResult = 0;
}

void CTransactionRecord::Refresh()
{
	CString strSQL;
	_RecordsetPtr m_pRecordset;  //记录集
	HRESULT hTRes;
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset")); //创建实例	

	strSQL="select * from transactionRecord"; //sql语句
	hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
			((COfficeApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);//打开记录集
	int i=0;
	m_list.DeleteAllItems();//删除列表框控件中的所有项
	CString str;
	while(!(m_pRecordset->adoEOF))
	{
			m_list.InsertItem(i,((COfficeApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("transactionType"))); //事务类型
			m_list.SetItemText(i,1,((COfficeApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("transactionDate")));//事务日期
			m_list.SetItemText(i,2,((COfficeApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("transactionSubject")));//事务主题
			
		m_pRecordset->MoveNext();//记录集指针向后移动
		i++;
	}
	m_pRecordset->Close();//关闭记录集

}

void CTransactionRecord::OnCancel1() 
{
	cwnd_list->EnableWindow(true);//列表框控件可用
	cwnd_transactionType->EnableWindow(false);//事务类型控件不可用
	cwnd_transactionDate->EnableWindow(false); //事务时间控件不可用
	cwnd_transactionSubject->EnableWindow(false); //事务主题控件不可用
	cwnd_content->EnableWindow(false); //事务内容控件不可用

	cwnd_add->EnableWindow(true); //添加按钮可用
	cwnd_cancel->EnableWindow(false); //取消按钮不可用
	cwnd_delete->EnableWindow(false); //删除按钮不可用
	cwnd_modify->EnableWindow(false); //修改按钮可用
	cwnd_save->EnableWindow(false); //保存按钮不可用
	cwnd_exit->EnableWindow(true); //退出按钮可用
	//为控件变量赋初值
	m_transactionType = _T("");
	m_transactionDate = COleDateTime::GetCurrentTime();
	m_transactionSubject = _T("");
	m_content = _T("");
	
	UpdateData(false);//将变量值更新到对话框
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -