999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

工作提醒軟件設(shè)計(jì)研究

2008-12-31 00:00:00文昌辭楊寶華
電腦知識(shí)與技術(shù) 2008年32期

摘要:介紹了辦公室工作提醒軟件的開發(fā)背景以及在這種背景下該軟件應(yīng)具有的各項(xiàng)功能,簡(jiǎn)單說(shuō)明了在開發(fā)過(guò)程中需要用到的編程技術(shù),詳細(xì)說(shuō)明了這些功能的具體實(shí)現(xiàn)原理,并對(duì)后續(xù)開發(fā)完善提出了建議。

關(guān)鍵詞:控件;消息;消息映射宏;隊(duì)列;工作記錄;編輯;定時(shí)器;打印

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)32-1116-02

Research about Designing Office Work Notice Software

WEN Chang-ci, Yang Bao-hua, JIANG Zhi

(Jingchang office of Air Force, Beijng 100041, China)

Abstract: It introduces the development background and various functions of Office Work Notice Software,describes the programming techniques which are necessary in the related development process. In the following, it elaborates the detailed theory of realizing the previous function mentioned, and makes the suggestion which aims to fulfill the software functions in the future development.

Key words: control; message; message mapping macro; queue; work record; edit; timer; print

1 引言

辦公室的工作內(nèi)容比較雜且比較多,大部分需要保密,所以要辦理的手續(xù)很多。有的任務(wù)需要馬上處理;有的任務(wù)相對(duì)而言可以緩一緩;有的任務(wù)目前無(wú)法完成,需要定時(shí)檢查是否滿足條件,滿足后馬上辦理;有的任務(wù)可能剛進(jìn)行到一半,領(lǐng)導(dǎo)又決定取消了。在這樣一種工作內(nèi)容高度交叉、時(shí)刻都可能有新的任務(wù)并且經(jīng)常被中斷、中斷完成之后還得繼續(xù)處理的情況下,為了防止工作太忙而忘記某些事項(xiàng),借助于可視化開發(fā)工具VC++開發(fā)了“工作提醒”軟件,利用計(jì)算機(jī)來(lái)規(guī)劃安排工作、提醒自己關(guān)于工作的進(jìn)展情況。

2 編輯功能

2.1 錄入

借助于CEdit類文本框?qū)崿F(xiàn)該功能。用鼠標(biāo)雙擊選中欲修改的或還沒(méi)有填入內(nèi)容的記錄欄,在鼠標(biāo)附近出現(xiàn)一個(gè)CEdit類文本框控件,CEdit類文本框控件內(nèi)顯示記錄欄的當(dāng)前內(nèi)容。編輯相應(yīng)的文本內(nèi)容,當(dāng)焦點(diǎn)離開CEdit類文本框控件時(shí),發(fā)送的EN_KILLFOCUS消息通過(guò)消息映射宏ON_EN_KILLFOCUS(IDC_EDIT, OnKillfocusEdit)來(lái)調(diào)用CWorkNoticeView::OnKillfocusEdit()函數(shù),促使記錄欄中的內(nèi)容更改為CEdit類文本框控件的文本內(nèi)容,同時(shí)CEdit類文本框控件從界面上消失。關(guān)鍵代碼如下:

m_Edit.GetWindowText(temp);

m_MSFlexGrid.SetTextMatrix(save_row,save_col,temp);

2.2 刪除、添加、清空

通過(guò)右鍵點(diǎn)擊選中某項(xiàng)記錄,彈出彈出式菜單,選擇相應(yīng)的選項(xiàng),系統(tǒng)自動(dòng)發(fā)送的COMMAND消息通過(guò)ON_COMMAND(Delete,OnDelete)、ON_COMMAND(Add,OnAdd)、ON_COMMAND(clear, OnCLear) 消息映射宏映射到相應(yīng)函數(shù)實(shí)現(xiàn)。

2.3 刪除記錄

點(diǎn)擊菜單“刪除數(shù)據(jù)庫(kù)記錄”,系統(tǒng)自動(dòng)發(fā)送COMMAND消息,該消息通過(guò)消息映射宏ON_COMMAND(DeleteAll, OnDeleteAll)調(diào)用執(zhí)行CWorkNoticeView::OnDeleteAll()函數(shù),該函數(shù)實(shí)現(xiàn)刪除界面上所有記錄的功能。關(guān)鍵代碼如下:

do{m_ContentSet.Delete( );m_ContentSet.MoveNext();}

while(!m_ContentSet.IsEOF( ));

2.4 設(shè)置、記錄時(shí)間

用鼠標(biāo)雙擊選中時(shí)間記錄欄,在鼠標(biāo)附近出現(xiàn)一個(gè)CDateTimeCtrl類控件,通過(guò)微調(diào)按鈕調(diào)整CDateTimeCtrl類控件的時(shí)間設(shè)置,當(dāng)焦點(diǎn)離開CDateTimeCtrl類控件時(shí),發(fā)送的NM_KILLFOCUS消息通過(guò)消息映射宏ON_NOTIFY(NM_KILLFOCUS, IDC_DATETIMEPICKER1, OnKillfocusDatetimepicker1)調(diào)用OnKillfocusDatetimepicker1()函數(shù),借助于CDateTime、CTime、CDateTimeCtrl這三個(gè)類將時(shí)間記錄欄中的內(nèi)容更改為CDateTimeCtrl類控件的時(shí)間設(shè)置,同時(shí)CDateTimeCtrl類控件從界面上消失。關(guān)鍵代碼如下:

m_DateTime.GetTime(timeDest);

m_Time.Format(\"%d時(shí)%d分\",timeDest.GetHour(),timeDest.GetMinute());

m_MSFlexGrid.SetTextMatrix(save_row,save_col,m_Time);

2.5 修改屬性

用鼠標(biāo)雙擊某項(xiàng)記錄對(duì)應(yīng)的“是否公事”屬性項(xiàng),對(duì)應(yīng)的屬性值在“True”與“False”之間交替變動(dòng)。當(dāng)鼠標(biāo)雙擊MSHFLEXGRID 表格控件時(shí),系統(tǒng)自動(dòng)發(fā)送DblClick消息,該消息通過(guò)消息映射宏ON_EVENT(CWorkNoticeView, IDC_MSHFLEXGRID1, -601, OnDblClickMshflexgrid1, VTS_NONE)調(diào)用執(zhí)行CWorkNoticeView::OnDblClickMshflexgrid()函數(shù),實(shí)現(xiàn)修改屬性的功能。關(guān)鍵代碼如下:

if(m_MSFlexGrid.GetText()==\"True\")m_MSFlexGrid.SetText(\"False\");

else m_MSFlexGrid.SetText(\"True\");

2.6 保存

點(diǎn)擊菜單“保存新記錄”,系統(tǒng)自動(dòng)發(fā)送COMMAND消息,該消息通過(guò)消息映射宏ON_COMMAND(Save, OnSave)調(diào)用執(zhí)行CWorkNoticeView::OnSave()函數(shù),該函數(shù)將最終數(shù)據(jù)更新寫入數(shù)據(jù)庫(kù)。關(guān)鍵代碼如下:

for(int row=1;row<=m_MSFlexGrid.GetRows()-1;row++)

{m_ContentSet.AddNew( );m_ContentSet.m_column1=m_MSFlexGrid.GetTextMatrix(row,0);……}

2.7 撤銷

對(duì)之前的操作進(jìn)行撤銷處理,需要設(shè)置兩個(gè)隊(duì)列,一個(gè)是Undo隊(duì)列,另一個(gè)是Redo隊(duì)列。所有正常的添加、刪除、修改操作都按序進(jìn)入U(xiǎn)ndo隊(duì)列,留給Undo操作時(shí)使用;每一次Undo操作之后將剛剛進(jìn)行的Undo操作放入Redo隊(duì)列,留給Redo操作時(shí)使用。UnDo操作的代碼略, ReDo操作的關(guān)鍵代碼如下:

list2[List2Num].operand=list1[List1Num].operand;

list2[List2Num++].XuHao=m_MSFlexGrid.GetTextMatrix(LineUndo,ColUndo);

m_MSFlexGrid.SetTextMatrix(LineUndo,ColUndo,list1[List1Num--].XuHao);

3 打印輸出

調(diào)用CWorkNoticeView::OnPrint()函數(shù),該函數(shù)在執(zhí)行時(shí)提示設(shè)置打印機(jī),設(shè)置打印機(jī)后可打印界面上所有的工作記錄。關(guān)鍵代碼為:

for(int row=0;row<=m_MSFlexGrid.GetRows()-1;row++)

{pDC->TextOut(X_pos,Y_pos,m_MSFlexGrid.GetTextMatrix(row,0));……}

4 定時(shí)提醒

4.1 設(shè)置提醒

可以通過(guò)菜單實(shí)現(xiàn)定時(shí)器的開關(guān),點(diǎn)擊選中菜單“設(shè)置”以發(fā)送COMMAND消息,COMMAND消息通過(guò)消息映射宏ON_COMMAND(AttributeReset, OnAttributeReset)調(diào)用執(zhí)行CWorkNoticeView:: OnAttributeReset()函數(shù),該函數(shù)負(fù)責(zé)對(duì)定時(shí)器的開關(guān)屬性進(jìn)行設(shè)置。如果定時(shí)器狀態(tài)為開,那么定時(shí)器會(huì)周期性地發(fā)出提醒信號(hào)。關(guān)鍵代碼如下:

TimerSetDialog.DoModal();TimerInteval=TimerSetDialog.gap*1000*60;

4.2 設(shè)置間隔

通過(guò)CDialog類的派生類設(shè)置。如果設(shè)置“提醒時(shí)間間隔”為5分鐘,那么程序在運(yùn)行時(shí)會(huì)每間隔5分鐘查詢一次數(shù)據(jù)庫(kù)中所有記錄,所有“完成時(shí)間記錄”為空的工作記錄將顯示在對(duì)話框界面上作為提醒。關(guān)鍵宏為:DDX_Text(pDX, IDC_EDIT1, gap);ON_BN_CLICKED(IDOK, On_TimerSetDialog_OK)

5 查詢

所有的工作記錄都存儲(chǔ)在數(shù)據(jù)庫(kù)中,需要查閱時(shí),可以通過(guò)菜單中的“SQL語(yǔ)句查詢”輸入查找條件。借助于CDaoRecordset類實(shí)現(xiàn),關(guān)鍵代碼如下:

m_DaoRecordset->Open(dbOpenDynaset,strSelect);

while (!m_DaoRecordset->IsEOF())

{COleVariant var = m_DaoRecordset->GetFieldValue(1);……}

6 格式轉(zhuǎn)換

把界面上顯示的工作記錄直接轉(zhuǎn)換成最終所需的word表格文檔,關(guān)鍵代碼如下:

創(chuàng)建Word實(shí)例:

oWordApp.CreateDispatch(\"Word.Application\", NULL)

創(chuàng)建新的word文檔:

Documents oDocs = oWordApp.GetDocuments(); Selection oSel = oWordApp.GetSelection();

添加工作記錄:

for(int row=0;row

{for(int col=0;col<6;col++)oSel.TypeText(m_MSFlexGrid.GetTextMatrix(row, col));……}

保存word文檔:

oActiveDoc.SaveAs(COleVariant(strFn), COleVariant((short)0),……);

7 結(jié)束語(yǔ)

辦公室的事情比較繁雜,在經(jīng)費(fèi)拮據(jù)的情況下如何利用現(xiàn)有的計(jì)算機(jī)硬件條件來(lái)幫助處理文秘類的事務(wù),是一項(xiàng)很實(shí)用的研究課題。考慮到保密工作的需要,將辦公輔助軟件做成B-S結(jié)構(gòu)的應(yīng)用程序,同時(shí)將此工作提醒程序封裝成一個(gè)小模塊,以ActiveX控件的形式嵌入到辦公輔助軟件中,這樣所有的涉密數(shù)據(jù)均駐留在服務(wù)器上,客戶端只需有瀏覽器即可。

參考文獻(xiàn):

[1] 廖進(jìn)華,文昌辭,王昭順.數(shù)據(jù)結(jié)構(gòu)[M].上海:上海交通大學(xué)出版社,2008:181-201.

[2] 潘愛(ài)民,王國(guó)印.Visual C++技術(shù)內(nèi)幕[M].北京:清華大學(xué)出版社,1999:3-210.

[3] 薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2000:84-166.

[4] 文昌辭,王昭順.軟件測(cè)試自動(dòng)化靜態(tài)分析研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005(4):987-989.

主站蜘蛛池模板: 色有码无码视频| 日本一区高清| 亚洲第一黄色网址| 天天操精品| 亚洲欧美一级一级a| 国产成人综合亚洲网址| 亚洲一区二区三区香蕉| 国产精品成人观看视频国产 | 一级看片免费视频| 999精品免费视频| 青青草91视频| 日韩av在线直播| 久操线在视频在线观看| 不卡视频国产| 成年人午夜免费视频| 国产亚洲精品自在线| 午夜不卡福利| 欧美一级色视频| 91精品国产自产91精品资源| 亚洲成a人片| 五月激情综合网| 国产高清国内精品福利| 国产欧美精品一区二区| 在线无码九区| 中文字幕第1页在线播| 女人爽到高潮免费视频大全| 国产白丝av| 国产97视频在线观看| 日本精品视频一区二区 | 天堂中文在线资源| 久久精品视频亚洲| 亚洲天堂首页| 国产午夜人做人免费视频| 激情亚洲天堂| 亚洲成a人片77777在线播放| 亚洲国产无码有码| 国产欧美亚洲精品第3页在线| 亚洲日韩在线满18点击进入| 久久性妇女精品免费| 国国产a国产片免费麻豆| 伊人成人在线| av在线手机播放| 97视频在线精品国自产拍| 亚洲香蕉在线| 91啪在线| 亚洲永久视频| 啪啪国产视频| 国产免费一级精品视频 | 午夜天堂视频| 国产精品欧美在线观看| 欧美精品啪啪| 在线看AV天堂| 亚洲午夜片| 国产人免费人成免费视频| 伊人丁香五月天久久综合| 免费毛片视频| 国产九九精品视频| 亚洲AV无码一区二区三区牲色| 国产清纯在线一区二区WWW| 国产三级成人| 亚洲第一av网站| 精品三级网站| 99er这里只有精品| 亚洲久悠悠色悠在线播放| 香蕉久久永久视频| 一级毛片在线播放免费观看 | 国产高清在线精品一区二区三区| 亚瑟天堂久久一区二区影院| 另类重口100页在线播放| 无码中字出轨中文人妻中文中| 爽爽影院十八禁在线观看| 亚洲第一成网站| 伊人欧美在线| 中文字幕日韩久久综合影院| 国产精品第一区| 香蕉视频在线观看www| 欧美成人aⅴ| 免费观看国产小粉嫩喷水| 久久国产精品麻豆系列| av一区二区三区高清久久| 福利视频久久| 黄色在线不卡|