KVIP考勤系統(tǒng)
最近用VC重寫了一個(gè)幾年前用PowerBuiler寫的軟件。軟件功能并不多,主要是我模仿PB做了幾個(gè)通用基類,還有這幾年收集的一些東東,以下是程序中使用到的主要的幾個(gè)類:
1、ADOxxxx是一個(gè)數(shù)據(jù)庫類。
2、CPreGraphic是實(shí)現(xiàn)繪制的類,DrawText()等
3、CPrePrint是控制打印機(jī)的類,CPrintDialog等
4、CDataWin是實(shí)現(xiàn)功能的主要類,它把VC在IDE介面中設(shè)計(jì)的窗口轉(zhuǎn)換成報(bào)表
5、CDlgDoc 單頁
6、CListDoc 表頁
使用方法:
1、在工程中加入ADO、DataWin目錄中的所有文件
2、在App中加入對(duì)COM的支持
App::InitInstance()加入CoInitialize(NULL);
App::ExitInstance()加入CoUninitialize();
3、生成一個(gè)CDataWin類的實(shí)例
CDataWin m_dlg;
m_dlg.Create(IDD_DIALOG1, this); 建
m_dlg.Init();
// m_dlg.SetDoubleRam(TRUE); 緩存,提高顯示速度
// m_dlg.SetPrintView(FALSE); 否模擬顯示
CRect rect; 位
GetClientRect(&rect);
rect.DeflateRect(10, 50, 10, 50);
m_dlg.MoveWindow(rect,FALSE);
m_dlg.ShowWindow(SW_SHOW);
4、執(zhí)行打印
m_dlg.OnPrint("Title1"); 印項(xiàng)目名稱,什么都沒關(guān)系
技術(shù)細(xì)節(jié)
在IDE窗口中加入三條PROGRESS,把窗口分成4個(gè)區(qū)域(頁頭、表體、表尾、頁尾)。在生成窗口后CDataWin會(huì)取出窗口中所有控件的位置、類型等,然后隱藏控件。CDataWin根據(jù)這些信息去連結(jié)數(shù)據(jù)庫,取出數(shù)據(jù)并顯示或打印出來。
a)標(biāo)題是SQL命令
b)=Name 等號(hào)+數(shù)據(jù)庫表項(xiàng)的名稱
c)其它為一般顯示。
主要初始化函數(shù)Init()包括以下功能:
InitGraphic(); 建繪圖類
ResetAll(); 位所有變量
InitBase(); 改窗口風(fēng)格、初始化紙張
fnEnumControl(); 舉所有子窗口
if(!Init4Control())
return FALSE; 始化窗口結(jié)構(gòu)
InitConnect(); 結(jié)數(shù)據(jù)庫
Open(m_strDefSQL); 開表格
UpdateRecord(); 入數(shù)據(jù)庫數(shù)據(jù)
ShowWindow(SW_SHOW); 示
窗口中的控件被轉(zhuǎn)換成統(tǒng)一的CDataCell結(jié)構(gòu),就象Grid中的項(xiàng)目。