📄 initdlg.cpp
字号:
// InitDlg.cpp : implementation file
//
#include "stdafx.h"
#include "library.h"
#include "InitDlg.h"
#include "BorrowInformSet.h"
#include "UBISet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CInitDlg dialog
CInitDlg::CInitDlg(CWnd* pParent /*=NULL*/)
: CDialog(CInitDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CInitDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CInitDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CInitDlg)
DDX_Control(pDX, IDC_LIST2, m_list2);
DDX_Control(pDX, IDC_LIST1, m_list1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CInitDlg, CDialog)
//{{AFX_MSG_MAP(CInitDlg)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CInitDlg message handlers
BOOL CInitDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
if(!m_database.IsOpen())
{
//连接数据源
if(!m_database.OpenEx("DSN=MySQL;UID=sa;PWD=123;CDatabase::noOdbcDialog"))
{
MessageBox("连接数据库失败!","新书登记入库",MB_OK|MB_ICONINFORMATION);
return true;
}
}
CBorrowInformSet *m_pset=new CBorrowInformSet(&m_database);
//判断书库中是否有该书,进行相应操作
CString strSQL="SELECT * FROM BORROWINFORM WHERE Istate=1 OR Istate =3";
m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
//从文本文件中读取信息
CFileDialog dlg(TRUE, "SQL", "*.txt",OFN_HIDEREADONLY
|OFN_OVERWRITEPROMPT,"Text Files(*.txt)|*.txt|SQL Files(*.sql)|*.sql|All Files(*.*)|*.*||");
if ( dlg.DoModal()==IDOK )
{
//获取文件的绝对路径
CString sFileName=dlg.GetPathName();
//打开文件
CStdioFile out;
out.Open(sFileName, CStdioFile::modeReadWrite);
CString sSql="",s;
//读取文件
do
{
out.ReadString(s);
s.TrimLeft();
s.TrimRight();
if(s.GetLength()!=0)
{
//如果当前行中没有"have been delayed"字符串
if(s.Find("have been delayed") == -1)
{
CString sLeftTime;
CString sRightTime;
int i=s.Find(" ");
sLeftTime=s.Left(i);
sRightTime=s.Right(s.GetLength()-i);
sRightTime.TrimLeft();
//CString -->CTime 转换
//sLeftTime 转换
COleDateTime time1;
time1.ParseDateTime(sLeftTime);
SYSTEMTIME systime;
VariantTimeToSystemTime(time1, &systime);
CTime tm1(systime);
//sRightTime转换
COleDateTime time2;
time2.ParseDateTime(sRightTime);
VariantTimeToSystemTime(time2, &systime);
CTime tm2(systime);
//sRightTime 与sLeftTime 时间差
CTimeSpan ts=tm2-tm1; //ts为txt 中每行结束时间和起始时间差
m_pset->MoveFirst();
while(!m_pset->IsEOF())
{
CTime TableEndData=m_pset->m_Ienddate;
if(tm1<=TableEndData && TableEndData<=tm2)
{
m_pset->Edit();
CTimeSpan tspanOneDay(1,0,0,0); //定义CTimeSpan 对象,大小为1天。
m_pset->m_Ienddate=tm2+tspanOneDay; //归还日期修改为txt中结束时间+1天
m_pset->Update();
}
m_pset->MoveNext();
}
s+=" have been delayed";
}
}
sSql=sSql+(s+"\n");
}while (out.GetPosition()!=out.GetLength());
out.SeekToBegin();
out.Write(sSql,sSql.GetLength());
out.Close();
}
m_pset->Close();
m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 生成一绿色刷子
m_list1.InsertColumn(0,"借书信息产生号");
m_list1.InsertColumn(1,"图书ID");
m_list1.InsertColumn(2,"被借读者ID");
m_list1.InsertColumn(3,"借书日期");
m_list1.InsertColumn(4,"应还日期");
m_list1.InsertColumn(5,"续借次数");
//m_list1.InsertColumn(6,"实际还书日期");
m_list1.InsertColumn(6,"图书状态");
RECT rect;
m_list1.GetWindowRect(&rect);
int Width=rect.right-rect.left;
m_list1.SetColumnWidth(0,Width/7);
m_list1.SetColumnWidth(1,Width/7);
m_list1.SetColumnWidth(2,Width/7);
m_list1.SetColumnWidth(3,Width/7);
m_list1.SetColumnWidth(4,Width/7);
m_list1.SetColumnWidth(5,Width/7);
m_list1.SetColumnWidth(6,Width/7);
//m_list1.SetColumnWidth(7,Width/8);
m_list1.SetExtendedStyle(LVS_EX_FULLROWSELECT);
strSQL="SELECT * FROM BORROWINFORM ";
m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
CString strTemp;
int i=0;
char buf[50];
m_pset->MoveFirst();
while(!m_pset->IsEOF())
{
m_list1.InsertItem(i,buf);
strTemp.Format("%ld",m_pset->m_Iid);
m_list1.SetItemText(i,0,strTemp);
strTemp=m_pset->m_Ibid;
m_list1.SetItemText(i,1,strTemp);
strTemp=m_pset->m_Iuid;
m_list1.SetItemText(i,2,strTemp);
strTemp=m_pset->m_Ibegindate.Format("%Y-%m-%d");
m_list1.SetItemText(i,3,strTemp);
strTemp=m_pset->m_Ienddate.Format("%Y-%m-%d");
m_list1.SetItemText(i,4,strTemp);
strTemp.Format("%d",m_pset->m_Irenew);
m_list1.SetItemText(i,5,strTemp);
// strTemp=m_pset->m_Irealdate.Format("%Y-%m-%d");
// m_list1.SetItemText(i,6,strTemp);
strTemp.Format("%d",m_pset->m_Istate);
m_list1.SetItemText(i,6,strTemp);
i++;
m_pset->MoveNext();
UpdateData(FALSE);
}
m_pset->Close();
//列表控件二处理
m_list2.InsertColumn(0,"读者ID");
m_list2.InsertColumn(1,"读者姓名");
m_list2.InsertColumn(2,"读者性别");
m_list2.InsertColumn(3,"读者联系电话");
m_list2.InsertColumn(4,"用户状态");
m_list2.InsertColumn(5,"借阅信息产生号");
m_list2.InsertColumn(6,"借阅图书ID");
m_list2.InsertColumn(7,"书名");
m_list2.InsertColumn(8,"作者");
m_list2.GetWindowRect(&rect);
Width=rect.right-rect.left;
m_list2.SetColumnWidth(0,Width/9);
m_list2.SetColumnWidth(1,Width/9);
m_list2.SetColumnWidth(2,Width/9);
m_list2.SetColumnWidth(3,Width/9);
m_list2.SetColumnWidth(4,Width/9);
m_list2.SetColumnWidth(5,Width/9);
m_list2.SetColumnWidth(6,Width/9);
m_list2.SetColumnWidth(7,Width/9);
m_list2.SetColumnWidth(8,Width/9);
m_list2.SetExtendedStyle(LVS_EX_FULLROWSELECT);
CUBISet *m_pUBIset=new CUBISet(&m_database);
//判断书库中是否有该书,进行相应操作
strSQL="SELECT Bname, Bauthor,Iid,Ibid,Uid,Usex,Uname,Utel,Ureadstat\
FROM BOOK ,BORROWINFORM,USERS \
WHERE Uid=Iuid AND Bid=IBid";
m_pUBIset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
i=0;
ZeroMemory(buf,sizeof(buf));
m_pUBIset->MoveFirst();
while(!m_pUBIset->IsEOF())
{
m_list2.InsertItem(i,buf);
m_list2.SetItemText(i,0,strTemp);
strTemp=m_pUBIset->m_Bname;
m_list2.SetItemText(i,0,strTemp);
strTemp=m_pUBIset->m_Bauthor;
m_list2.SetItemText(i,1,strTemp);
/*
//strTemp.Format("%d",m_pUBIset->m_Iid);
/*
strTemp=m_pUBIset->m_Bauthor;
m_list2.SetItemText(i,1,strTemp);
strTemp=m_pUBIset->m_Uname;
m_list2.SetItemText(i,1,strTemp);
strTemp=m_pUBIset->m_Usex;
m_list2.SetItemText(i,2,strTemp);
strTemp=m_pUBIset->m_Utel;
m_list2.SetItemText(i,3,strTemp);
strTemp=m_pUBIset->m_Ureadstat;
m_list2.SetItemText(i,4,strTemp);
strTemp.Format("%d",m_pUBIset->m_Iid);
m_list2.SetItemText(i,5,strTemp);
strTemp=m_pUBIset->m_Ibid;
m_list2.SetItemText(i,6,strTemp);
strTemp=m_pUBIset->m_Bname;
m_list2.SetItemText(i,7,strTemp);
strTemp=m_pUBIset->m_Bauthor;
m_list2.SetItemText(i,8,strTemp); */
i++;
m_pUBIset->MoveNext();
UpdateData(FALSE);
}
m_pUBIset->Close();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
HBRUSH CInitDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor ==CTLCOLOR_DLG)
return m_brush; //返加绿色刷子
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(0, 255, 0));
pDC->SetTextColor(RGB(255,0,0));
}
if(nCtlColor== CTLCOLOR_LISTBOX)
{
pDC->SetTextColor(RGB(0,0,255));
//pDC->SetBkMode(TRANSPARENT);
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CInitDlg::OnCancel()
{
// TODO: Add extra cleanup here
if(m_database.IsOpen())
m_database.Close();
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -