應(yīng)用程序數(shù)據(jù)轉(zhuǎn)換設(shè)計(jì)方案

時(shí)間:2022-03-29 03:00:54

導(dǎo)語(yǔ):應(yīng)用程序數(shù)據(jù)轉(zhuǎn)換設(shè)計(jì)方案一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

1問(wèn)題的提出

在日常工作中通常會(huì)遇到這樣的問(wèn)題,客戶要求將基于B/S架構(gòu)的應(yīng)用程序中的相關(guān)數(shù)據(jù)平移到新系統(tǒng)中,但由于原系統(tǒng)的數(shù)據(jù)庫(kù)并不掌握在用戶手中,且原系統(tǒng)也并無(wú)數(shù)據(jù)導(dǎo)出功能,從而難以滿足用戶對(duì)新系統(tǒng)應(yīng)用的需要。那么,如何完整且快速的重現(xiàn)原系統(tǒng)數(shù)據(jù)并使之能夠平移到新系統(tǒng)中?我們知道基于B/S架構(gòu)的應(yīng)用程序?qū)?shù)據(jù)信息的顯示是以瀏覽器為主的,由于原系統(tǒng)對(duì)數(shù)據(jù)的處理和顯示方法無(wú)法控制,那么唯一的辦法就是將所需要的數(shù)據(jù)逐一復(fù)制出來(lái)。通常的做法是利用剪貼板完成逐個(gè)數(shù)據(jù)項(xiàng)的復(fù)制和粘貼工作,但這樣的方式對(duì)于單條記錄的數(shù)據(jù)還是可以的,有時(shí)甚至可以直接對(duì)照瀏覽器中顯示的數(shù)據(jù)重新錄入,但若數(shù)據(jù)記錄過(guò)多,這樣的方法明顯就不可取了。首先想到的是可以將瀏覽器中顯示的所有信息先全部復(fù)制到剪貼板中,然后再將剪貼板中的有用信息轉(zhuǎn)存到電子表格中,再通過(guò)電子表格導(dǎo)入到新系統(tǒng)中。當(dāng)然復(fù)制出來(lái)的數(shù)據(jù)要滿足新系統(tǒng)對(duì)數(shù)據(jù)組織形式和格式的要求,就一定需要對(duì)其進(jìn)行適當(dāng)?shù)奶幚?,且這一過(guò)程要能夠按要求自動(dòng)實(shí)現(xiàn)或者在少量人工干預(yù)的情況下自動(dòng)實(shí)現(xiàn)才可以提高工作效率。

2剪貼板應(yīng)用現(xiàn)狀

目前IT業(yè)有多種使用剪貼板進(jìn)行數(shù)據(jù)處理加工的手段,其中對(duì)數(shù)據(jù)、圖片的處理最多。到百度上搜索“剪貼板應(yīng)用”,可以搜索到162萬(wàn)條結(jié)果,大部分應(yīng)用是用來(lái)解決辦公上的問(wèn)題,這些都屬于簡(jiǎn)單應(yīng)用范疇。如果加上關(guān)鍵詞“基于Java”,那么搜索結(jié)果就僅僅只有1萬(wàn)條左右。目前剪貼板的應(yīng)用主要有以下幾個(gè)方面:(1)利用剪貼板進(jìn)行數(shù)據(jù)交換。(2)監(jiān)視剪貼板的數(shù)據(jù)。(3)創(chuàng)建多個(gè)剪貼板。(4)判斷剪貼板數(shù)據(jù)類型和數(shù)據(jù)格式,如判斷圖片數(shù)據(jù)和文本數(shù)據(jù)等。

3系統(tǒng)設(shè)計(jì)思路

3.1原始數(shù)據(jù)分析。通過(guò)對(duì)瀏覽器顯示的數(shù)據(jù)進(jìn)行復(fù)制后的內(nèi)容進(jìn)行分析,發(fā)現(xiàn)原始數(shù)據(jù)存在以下特點(diǎn):(1)無(wú)效字符紊亂了原始數(shù)據(jù);(2)有效數(shù)據(jù)長(zhǎng)度不一;(3)無(wú)意義的數(shù)據(jù)太多;(4)數(shù)據(jù)間可以找到明顯的數(shù)據(jù)界限。據(jù)此分析,要實(shí)現(xiàn)不同平下的數(shù)據(jù)共享,首先需要對(duì)無(wú)效字符和無(wú)意義的數(shù)據(jù)進(jìn)行處理,其次,由于有效數(shù)據(jù)長(zhǎng)度不一,故不能通過(guò)數(shù)據(jù)長(zhǎng)度進(jìn)行截取,,但可以依據(jù)數(shù)據(jù)之間存在的明顯界限符剔除無(wú)用數(shù)據(jù)和信息來(lái)獲取所有可用的數(shù)據(jù)。3.2處理流程設(shè)計(jì)。本程序的設(shè)計(jì)思路主要是通過(guò)監(jiān)控剪貼板有無(wú)數(shù)據(jù)和有數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)處理并轉(zhuǎn)存至電子表格、無(wú)數(shù)據(jù)時(shí)等待一個(gè)固定時(shí)間的過(guò)程反復(fù),程序結(jié)束后,可將電子表格中的數(shù)據(jù)導(dǎo)入到新系統(tǒng)中,從而實(shí)現(xiàn)舊系統(tǒng)中的數(shù)據(jù)準(zhǔn)確無(wú)誤地進(jìn)入新系統(tǒng)。程序設(shè)計(jì)流程如下:(1)系統(tǒng)初始化流程,主要對(duì)數(shù)據(jù)界限進(jìn)行定義、初始化電子表格首行字段內(nèi)容。同時(shí)需要在程序中對(duì)電子表格文件進(jìn)行創(chuàng)建、初始化工作等。(2)數(shù)據(jù)處理流程,主要對(duì)原始數(shù)據(jù)進(jìn)行處理以提取有用數(shù)據(jù)。為獲得正確的數(shù)據(jù)處理結(jié)果,可增加用戶隨時(shí)調(diào)整數(shù)據(jù)界限以及將提取的數(shù)據(jù)顯示給用戶的功能。(3)數(shù)據(jù)處理過(guò)程的可視化設(shè)計(jì)流程,將處理后的數(shù)據(jù)記錄到Excel文件中并實(shí)時(shí)顯示。

4系統(tǒng)實(shí)現(xiàn)及測(cè)試

4.1用戶界面設(shè)計(jì)。用戶界面是應(yīng)用程序與用戶進(jìn)行交互的窗口,設(shè)計(jì)的內(nèi)容包括:(1)界限定義塊:將用戶定義的數(shù)據(jù)界限內(nèi)容按順序記錄在ArrayList數(shù)組集合中;(2)數(shù)據(jù)測(cè)試塊:根據(jù)用戶定義的內(nèi)容和用戶復(fù)制的內(nèi)容,進(jìn)行數(shù)據(jù)測(cè)試,將測(cè)試結(jié)果顯示在工作表的相應(yīng)單元格中;(3)文件對(duì)話框:用于用戶選擇保存Excel文件的名稱;(4)正式運(yùn)行塊:用戶正式運(yùn)行系統(tǒng),通過(guò)剪貼板、電子表格和瀏覽器進(jìn)行數(shù)據(jù)處理。4.2程序邏輯設(shè)計(jì)。在Java應(yīng)用中,利用剪貼板進(jìn)行數(shù)據(jù)交換可使用的對(duì)象如下:(1)Clipboard:類,實(shí)現(xiàn)剪切/復(fù)制/粘貼操作并傳輸數(shù)據(jù)的機(jī)制;(2)Transferable:接口,是一個(gè)用于不同存儲(chǔ)介質(zhì)間數(shù)據(jù)傳輸?shù)慕涌?,要真正?shí)現(xiàn)從不同存儲(chǔ)介質(zhì)間的數(shù)據(jù)傳輸,則必須實(shí)現(xiàn)該接口;(3)DataFlavor:類,是封裝在Transferable接口中的類,用來(lái)指定該對(duì)象傳輸數(shù)據(jù)時(shí)的數(shù)據(jù)格式,就是說(shuō)是以字節(jié)形式傳輸還是以字符形式傳輸更或者是以圖片數(shù)據(jù)的形式傳輸;(4)StringSelection:類,實(shí)現(xiàn)了Transferable接口的類,該類傳輸數(shù)據(jù)時(shí)的格式已經(jīng)確定為stringFlavor;(5)ClipboardOwner:接口類,用于在剪貼板中的原始數(shù)據(jù)被替換時(shí)發(fā)出通知。根據(jù)需求,程序體分別定義了下面的模塊:SetXMMC:用于完成設(shè)置數(shù)據(jù)界限;InitXLSFile:用于完成Excel文件的初始化工作;CloseXLSFile:用于完成對(duì)Excel文件的保存和關(guān)閉工作;tmMainTimer:時(shí)間控制,每0.2秒循環(huán)控制監(jiān)控剪貼板數(shù)據(jù);StartAccess:正式數(shù)據(jù)處理流程,完成需求中的數(shù)據(jù)處理;TestAccess:測(cè)試數(shù)據(jù)處理流程,完成需求中的數(shù)據(jù)模擬處理,并顯示結(jié)果。4.3程序測(cè)試。程序運(yùn)行環(huán)境為操作系統(tǒng):WindowsXP、Windows7、Windows10等;Office版本:Office2007、Office2010、Office2013;瀏覽器:IE9、IE11、搜狗瀏覽器、Google瀏覽器等;效率檢測(cè):原系統(tǒng)數(shù)據(jù)量近4千條記錄,未使用該軟件進(jìn)行人工復(fù)制約需45人日;使用該軟件后實(shí)際僅需要2人日。

5結(jié)語(yǔ)

利用剪貼板是在不同應(yīng)用程序間進(jìn)行數(shù)據(jù)交換的重要手段之一,本程序即是借助于剪貼板實(shí)現(xiàn)了快速的數(shù)據(jù)轉(zhuǎn)換,不過(guò)因限于數(shù)據(jù)在瀏覽器中的顯示方式,本程序需要一定的人工干預(yù),即由用戶反復(fù)單擊“基礎(chǔ)信息”打開(kāi)“查看會(huì)員基礎(chǔ)信息”頁(yè)面后,連續(xù)進(jìn)行全選、復(fù)制和粘貼操作后而實(shí)現(xiàn)數(shù)據(jù)自動(dòng)轉(zhuǎn)換的。

【參考文獻(xiàn)】

[1]李朝中.一種剪貼板控制的實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2015,(13)

[2]何音建.剪貼板編程以及在Delphi中的應(yīng)用[J].電腦編程技巧與維護(hù),1998,(02).

作者:王香菊 單位:江蘇省江陰中等專業(yè)學(xué)校