📄 transactionrecord.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 + -