?? 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 + -