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

基于Vi sual Basi c的Lot us Not es郵件擴(kuò)展工具開發(fā)

2022-08-08 11:02:14梁育誠
機(jī)電信息 2022年15期
關(guān)鍵詞:數(shù)據(jù)庫用戶功能

梁育誠

(廣東電網(wǎng)有限責(zé)任公司江門供電局,廣東江門 529000)

0 引言

Lotus Notes于1989年創(chuàng)立,是一個企業(yè)級通信、協(xié)同工作平臺,擁有安全性高、易于管理等優(yōu)點(diǎn),符合企業(yè)網(wǎng)對應(yīng)用的要求。筆者單位采用基于Lotus Notes 7.0的定制版本作為內(nèi)部協(xié)同辦公工具,由于該版本最后更新時間為2005年,許多功能已遠(yuǎn)遠(yuǎn)落后于時代,不夠人性化,給實(shí)際工作帶來了一定的阻礙。所幸Lotus Notes自帶Lotus Script腳本語言可供開發(fā)人員在lotus designer中進(jìn)行更多個性化開發(fā),并且提供了一個COM類接口,可在VB、#C、java等語言中調(diào)用。

Visual Basic(以下簡稱“VB”)是與Lotus同時代非常受歡迎的開發(fā)語言,具有易學(xué)易用、編程簡潔、可視化UI設(shè)計(jì)、程序集成化程度高等優(yōu)點(diǎn),非常適用于快速開發(fā)小型窗體程序。

盡管VB在如今看來也是落后于時代的產(chǎn)物,但考慮到Lotus Script語法基本與VB相同以及VB開發(fā)窗體應(yīng)用的便捷性,因此還是決定采用VB6作為開發(fā)工具引入Lotus Domino Object組件進(jìn)行郵件擴(kuò)展工具開發(fā)。

1 需求分析

用戶在使用Lotus Notes發(fā)送郵件操作中,難免會出現(xiàn)重要公文、郵件內(nèi)容有誤或收件人有誤等情況,希望能立即撤回錯誤郵件并重新發(fā)送正確郵件,由于不希望錯誤內(nèi)容被閱讀,所以整個過程越快越有利;在執(zhí)行刪除之前,有的用戶可能僅想知道郵件在收件人當(dāng)中的已讀情況,根據(jù)已讀/未讀比例再進(jìn)行下一步操作的決策;對于較小的錯誤,如果能實(shí)現(xiàn)靜默修正功能,更能改善用戶體驗(yàn)。

Lotus Notes 7.0版本并沒有自帶查詢郵件是否已讀和撤回功能,并且從單位管理制度考慮,即使具有該功能,由于無法被管理員有效監(jiān)管,可能會導(dǎo)致該功能被大量濫用,增加服務(wù)器負(fù)擔(dān),甚至造成宕機(jī)風(fēng)險。傳統(tǒng)的方法是,用戶提出申請并得到管理員審核通過后,使用Notes自帶的郵件刪除工具進(jìn)行刪除。

新建刪除命令,填寫所需刪除郵件的標(biāo)題,必須保證完全相同。經(jīng)過一系列繁雜的設(shè)置后啟動程序,該工具將會在服務(wù)器中遍歷搜索所有用戶數(shù)據(jù)庫中該郵件的數(shù)據(jù),檢索到后則執(zhí)行刪除。整個過程非常漫長且卡頓,浪費(fèi)算力,并且由于其檢索邏輯是以標(biāo)題作為關(guān)鍵字,為避免被誤刪,所以用戶需要等待整個過程完成后才可以重新發(fā)出新郵件。管理員希望能減少人工操作,執(zhí)行快捷方便,并能自動導(dǎo)出相關(guān)日志記錄代替手工錄入,在執(zhí)行操作后用戶可以立即重新發(fā)送郵件,無須等待過程完成。

2 設(shè)計(jì)思路

第一步,分析數(shù)據(jù)結(jié)構(gòu)。根據(jù)官方提供的開發(fā)文檔以及在客戶端內(nèi)查看郵件屬性,可以得到一封郵件的所有屬性字段(圖1)。其中,$MessageID為郵件標(biāo)志,$Orig為郵件唯一標(biāo)志(與$MessageID主要區(qū)別為,當(dāng)一個用戶發(fā)件箱和收件箱皆有該郵件時,為確保$Orig在該用戶數(shù)據(jù)庫中的唯一性,收件箱中郵件的$Orig值會改變,而$MessageID則保持不變);SendTo為收件人數(shù)組;CopyTo為抄送人數(shù)組;BlindCopyTo為密送;From為發(fā)件人;Subject為主題;PostDate為發(fā)件時間;Body為正文內(nèi)容;ISNEWDOC為是否已讀標(biāo)志。以上為本次開發(fā)主要使用的屬性。

第二步,檢索郵件方式。從數(shù)據(jù)結(jié)構(gòu)來看,既然每封郵件有其自身唯一對應(yīng)的主key,比起note自帶的工具采用標(biāo)題為關(guān)鍵字進(jìn)行檢索,選擇使用$MessageID會更加準(zhǔn)確和高效,同時也支持標(biāo)題精確檢索以及模糊檢索。

第三步,進(jìn)入收件人數(shù)據(jù)庫進(jìn)行檢索。由于每封郵件的收件人是有限的,無須全局遍歷檢索,只需要進(jìn)入每個收件人的數(shù)據(jù)庫檢索即可,能夠節(jié)省大量的檢索時間。可以通過MessageID獲取該郵件對象,然后獲取SendTo數(shù)據(jù)從而取得收件人列表。

第四步,檢索出來后讀取ISNEWDOC字段判斷郵件是否已讀,使用RemovePermanently(True)方法執(zhí)行刪除操作或ReplaceItemValue()方法執(zhí)行替換修改操作。

所有操作執(zhí)行完畢后,該郵件即已完全消失或者被修正,達(dá)到了郵件撤回或靜默修改的目的,操作結(jié)束。

3 窗體設(shè)計(jì)

根據(jù)設(shè)計(jì)思路第二步,用戶需要提供發(fā)件人信息以及需要撤回的郵件的MessageID,因此繪制兩個輸入框,為了提供關(guān)于該郵件的更多信息以便管理員確認(rèn),故加上主題、發(fā)送時間、正文顯示區(qū)域。繪制按鈕用以觸發(fā)檢索、修改及刪除等操作。根據(jù)管理員需求,再繪制一個狀態(tài)區(qū)域,即運(yùn)行過程細(xì)節(jié)展示區(qū)域以及導(dǎo)出日志按鈕。

4 開發(fā)

首先在Visual Basic 6中引用Lotus Domino Objects接口組件(圖2)。

主要用到以下幾個模塊代碼(僅列出部分核心代碼,非完整代碼):

4.1 核心方法介紹

CreateObject("Notes.NotesSession"):獲取當(dāng)前Note登錄的Session對象;GetDatabase("數(shù)據(jù)庫地址","names.nsf"):進(jìn)入通信錄數(shù)據(jù)庫;Search():方法搜索發(fā)件人地址;GetFirstDocument():獲取第一條搜索結(jié)果;GetFirstItem(字段名):獲取指定字段;GetDatabase(服務(wù)器,數(shù)據(jù)庫):獲取數(shù)據(jù)庫;GetLastDocument():獲取搜索結(jié)果中的最后一個文檔;emovePermanently(True)徹底刪除郵件(如果是false則是刪除到回收站);ReplaceItem Value(屬性,值):替換屬性值。

4.2 初始化

Dim aDC As Object;Dim Maildoc As Object;Dim session As Object;Dim Maildb As Object;Dim view As Object;Dim a() As String;Dim arr() As String;Set session=CreateObject("Notes.NotesSession")

4.3 檢索郵件

Set Maildb = session.GetDatabase ("數(shù)據(jù)庫地址","names.nsf") '進(jìn)入通信錄;If Not Maildb.IsOpen Then Maildb.Open;fajian=Text1.Text;Set aDC = Maildb.Search("owner=""" & fajian & """ & type=""Person""", Nothing,0) '在通信錄中搜索該地址;Set Maildoc = aDC.GetFirstDocument () ' 取得該條文檔;Set rtitem1 =Maildoc.GetFirstItem ("MailServer")'取得其所屬服務(wù)器sername=rtitem1.Text

Set rtitem2 =Maildoc.GetFirstItem("MailFile") '取得其數(shù)據(jù)庫地址;dbname = rtitem2.Text;Set Maildb =session.GetDatabase (sername, dbname) '進(jìn)入其郵箱;If Not Maildb.IsOpen Then Maildb.Open;If Combo1.Text ="MessageID" Then;docid = Left (Trim (Replace(Replace(Replace(Text2.Text,"""",""),Chr(13),""),Chr(10),"")),49)'輸入郵件ID;Keyword="@Contains($MessageID;"""& docid & """)";End If;Set aDC = Maildb.Search(Keyword, Nothing, 0) '搜索該郵件;Set Maildoc = aDC.GetLastDocument()'獲取該郵件;

Set rtitem3=Maildoc.GetFirstItem ("SendTo")'獲取收件人;Set rtitem4=Maildoc.GetFirstItem("CopyTo")“獲取抄送人;

Setsubject1= Maildoc.GetFirstItem ("Subject") '獲取標(biāo)題;

Setposttime= Maildoc.GetFirstItem("PostedDate") '獲取發(fā)件時間;

4.4 執(zhí)行查詢是否已讀/修改/刪除操作

4.5 交互優(yōu)化

在上述核心代碼的基礎(chǔ)上,加入一些容錯機(jī)制、自動補(bǔ)全、群組收件人展開、按照主題模糊查詢、郵件批量修改、日志導(dǎo)出、僅刪除未讀等功能優(yōu)化客戶體驗(yàn),具體代碼不再贅述。

5 測試

開發(fā)完成后進(jìn)行測試,順利運(yùn)行成功(圖3)。

6 結(jié)語

使用Domino接口與VB開發(fā)語言,既可以發(fā)揮Lotus Note強(qiáng)大的文檔處理能力,又可以發(fā)揮VB友好的可視化功能,并且開發(fā)快捷,工作效率提升明顯。

猜你喜歡
數(shù)據(jù)庫用戶功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關(guān)于非首都功能疏解的幾點(diǎn)思考
數(shù)據(jù)庫
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
數(shù)據(jù)庫
如何獲取一億海外用戶
主站蜘蛛池模板: 72种姿势欧美久久久久大黄蕉| 日韩av无码精品专区| 婷婷激情亚洲| 伊人无码视屏| 狠狠综合久久久久综| 色综合成人| 免费人成在线观看成人片| 欧美日韩福利| 强奷白丝美女在线观看| 国产91精品最新在线播放| 色爽网免费视频| 国产乱人乱偷精品视频a人人澡| 无码福利视频| 亚洲黄色高清| 韩国v欧美v亚洲v日本v| 91av国产在线| 在线欧美一区| 欧美性色综合网| 欧美日韩一区二区三区在线视频| 波多野结衣无码视频在线观看| 国产91导航| 狠狠操夜夜爽| 国产99在线观看| 久草美女视频| 亚洲国产成人无码AV在线影院L| 成年女人a毛片免费视频| 国产午夜人做人免费视频中文| 91综合色区亚洲熟妇p| 成年人福利视频| 国产在线观看第二页| 国产麻豆福利av在线播放| 在线欧美日韩| 2021国产精品自拍| 国产成人禁片在线观看| 色悠久久综合| 午夜免费视频网站| 日日噜噜夜夜狠狠视频| 无码啪啪精品天堂浪潮av| 免费看一级毛片波多结衣| 亚洲精品国产成人7777| 99热亚洲精品6码| 久久网欧美| 午夜限制老子影院888| 欧美一区中文字幕| 乱人伦中文视频在线观看免费| 91色在线观看| 真实国产乱子伦视频| 欧美一级专区免费大片| 91po国产在线精品免费观看| 91麻豆精品视频| 亚洲中文字幕精品| 任我操在线视频| www.91在线播放| 日韩在线网址| 秋霞一区二区三区| 看av免费毛片手机播放| 亚洲视频免| 色视频久久| 国产正在播放| 精品自窥自偷在线看| 亚洲精品中文字幕午夜| 在线无码九区| 日韩成人午夜| 婷婷丁香色| 白丝美女办公室高潮喷水视频| 亚洲码一区二区三区| 婷婷99视频精品全部在线观看 | 亚洲swag精品自拍一区| 91精品国产无线乱码在线| 免费 国产 无码久久久| 亚洲一欧洲中文字幕在线| 亚洲国产中文欧美在线人成大黄瓜| 美女啪啪无遮挡| 亚洲av成人无码网站在线观看| 国产美女在线观看| 日韩欧美中文字幕在线韩免费| 凹凸国产熟女精品视频| 国产精品爽爽va在线无码观看| 国产亚洲日韩av在线| 大学生久久香蕉国产线观看| 又黄又湿又爽的视频| 国产波多野结衣中文在线播放|