滕 敏
摘 要:針對當(dāng)前VFP教材中通用型字段描述的缺憾,提出在教學(xué)過程中加強(qiáng)實(shí)際應(yīng)用能力,加強(qiáng)數(shù)據(jù)庫應(yīng)用系統(tǒng)中多媒體數(shù)據(jù)的表現(xiàn)力。對在VFP 環(huán)境中如何利用通用型字段存儲和使用做出一定的研究,側(cè)重于廣大師生對大量的多媒體數(shù)據(jù)的處理和管理,并給出具體實(shí)例,有助于計(jì)算機(jī)教學(xué)的效果,同時(shí)增強(qiáng)學(xué)生對VFP學(xué)習(xí)的興趣和拓展知識的層面。
關(guān)鍵詞:VFP;G字段;多媒體數(shù)據(jù);數(shù)據(jù)傳輸
中圖分類號:TP392文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2009)20-131-03
Application Research of General-purpose Field in VFP
TENG Min
(Henan Judicial Police Vocational College,Zhengzhou,450011,China)
Abstract:Aiming to the shortcomings of general-purpose field description in current VFP textbooks,to strengthen the capacity of practical applications in teaching process and enhance the performance of multimedia data in system of database applications are proposed.This article makes certain research onhow to storage and use general-purpose field in the VFP environment,focusing on the vast number of teachers and students of a large number of multimedia data processing and management,andit gives specific examples,which help to effect of computer teaching,at the same time,enhances students interest in the VFP learning and expands the knowledge level.
Keywords:VFP;general-purpose field;multimedia data;data transmission
0 引 言
Visual FoxPro繼承dBASE,FoxBASE和FoxPro等語言簡單易用的特點(diǎn),在界面與功能上均有重要提高。其中通用型字段的多媒體數(shù)據(jù),最能反映出時(shí)代發(fā)展的需求,由單一黑白的英文操作界面進(jìn)步到面向?qū)ο蟮某绦蛟O(shè)計(jì),聲音、圖像、動畫、視頻等多媒體的表現(xiàn)形式,清晰、親近、逼真、形象,更能直觀地了解和掌握數(shù)據(jù),使數(shù)據(jù)的主體增添了不少的活力。隨著社會的不斷發(fā)展,人們對信息存儲和顯示的要求越來越高,多媒體數(shù)據(jù)在數(shù)據(jù)庫中的應(yīng)用倍受關(guān)注,如學(xué)生數(shù)據(jù)庫、圖書數(shù)據(jù)庫,以及財(cái)務(wù)數(shù)據(jù)庫中的照片、圖片、聲音、票據(jù)等。
然而,在大多數(shù)的教科書中,對通用型G字段的應(yīng)用一帶而過,筆者查閱了VFP十幾種教材,能對G字段詳講的僅有三本。形成這種局面的原因有兩種:一是針對教育部考試中心大綱來講,不管是理論考試,還是上機(jī)考試都沒有涉及到它的使用[1];二是編者對G字段重視不夠,它的敘述麻煩且實(shí)踐性強(qiáng)。目前,許多大學(xué)生學(xué)習(xí)該課程后,不能正確使用多種格式不同的多媒體文件,動手能力差,又沒有太多的參考書供學(xué)習(xí),在實(shí)用時(shí)易走彎路,費(fèi)時(shí)又費(fèi)力。所以這里把教學(xué)中總結(jié)出來的關(guān)于G字段的輸入和顯示方法呈現(xiàn)給讀者。
1 通用型字段數(shù)據(jù)的存儲
1.1 通過剪貼板實(shí)現(xiàn)數(shù)據(jù)的輸入
方法一:打開數(shù)據(jù)表瀏覽,用鼠標(biāo)雙擊G字段中的“gen”,同時(shí)G字段編輯器被打開;然后切換到另外的應(yīng)用程序,如Windows的畫圖程序,將選定內(nèi)容復(fù)制到剪貼板上,粘貼到G字段編輯窗口中[2]。
上述操作描述了利用剪貼板將Windows的圖片傳送到VFP。其實(shí),對于Word圖形、Excel表格,選中其中的部分內(nèi)容,包括抓拍的圖像都能通過剪貼板向G字段編輯窗口傳送。
在這里,當(dāng)想把整篇文檔(如.doc和.pdf等)或整個(gè)表格(.xls)都放在G字段窗口作為資料保存時(shí),只需將原文件打開全選復(fù)制,“粘貼”在G字段的編輯窗口中,此時(shí)看到的是局部畫面,如想查看全部,只需雙擊畫面即可,集中存儲原始資料非常方便實(shí)用。
方法二:把相關(guān)的多媒體文件拷貝后“編輯”/“粘貼”,在G字段的窗口中呈現(xiàn)的是一個(gè)文件圖標(biāo),查看數(shù)據(jù)時(shí)只需雙擊圖標(biāo)即可。
也就是說,常用的多媒體文件如:jpg,gif,ico,wmv,wav,wma,MP3等,在資源管理器中無需打開文件,復(fù)制文件名在剪貼板上,都可以粘貼在G字段編輯器中。只是在該處顯示的是包含擴(kuò)展名的文件名和圖標(biāo),雙擊后查看原數(shù)據(jù)的實(shí)際內(nèi)容,而bmp,doc,xls文件除外,它們將直接看到數(shù)據(jù)。
1.2 在VFP 的數(shù)據(jù)表中添加OLE對象
打開G字段編輯器窗口,選擇“編輯”/“插入對象”命令,出現(xiàn)插入對象對話框,若選擇“新建”可以從“文件”列表框中選擇要?jiǎng)?chuàng)建的對象類型;若選擇 “由文件創(chuàng)建”,則到指定的路徑選擇事先建成的文件;若只是建立一種鏈接關(guān)系,選中“鏈接”復(fù)選框,然后將可插入型OLE 對象鏈接或嵌入到通用型字段的每個(gè)記錄中[3]。鏈接和嵌入的OLE 對象幾乎涵蓋了各種類型的多媒體數(shù)據(jù)。
有些照片尺寸不一,格式不一,建立在一個(gè)G字段中存儲,一旦要調(diào)出顯示時(shí),不是以圖像顯示,就是以文件名出現(xiàn)。為了達(dá)到統(tǒng)一圖像出現(xiàn),在教學(xué)中采用下面的方法,首先統(tǒng)一G字段編輯器中每張圖片的插入方式:
(1) “編輯”→“插入對象…”→“由文件創(chuàng)建”→“Microsoft Word 圖片”→“確定”;
(2) 由上步在隨后打開的Word文檔中,“插入”→“圖片”→“來自文件…”(如圖1所示),這里選擇的余地較大。
圖1 圖像插入界面
1.3 用命令形式把多媒體數(shù)據(jù)文件放入G字段中
方法一:打開要插入G字段的數(shù)據(jù)表,指針定好,用替換命令來實(shí)現(xiàn)記錄G字段內(nèi)的數(shù)據(jù)插入或更新文件的內(nèi)容。格式如下[4]:
Replace
如:Replace照片with D:picturexxx.jpg
如果利用上命令語句編一程序,就可以把一批數(shù)據(jù)放入到G字段中。
方法二:該命令的一般格式如下[5]:
APPEND GENERAL
其中:GeneralFieldName通用字段變量名稱??梢杂脦в斜韯e名的字段名來指定在非當(dāng)前工作區(qū)中打開的表的G字段;對于FROM FileName,必須給出路徑和文件全名,包括擴(kuò)展名;LINK表示對象鏈接到G字段,不寫LINK代表對象嵌入到G字段。
該命令語句方便于大批量多媒體數(shù)據(jù)的存儲[6]。
例如:有100 張相片要添加到學(xué)生信息表中的“個(gè)人照片”字段上去,照片文件已按順序編號存盤,即“1.jpg~100.jpg”,文件路徑為“D:student_picture”,編寫代碼如下:
Use 學(xué)生信息
Count to N
Go top
For i=1 to N
Photo="D:student_picture"+alltrm(str(i))+".jpg"
Append general 個(gè)人照片 from &Photo;
Skip
Endfor
從上面幾種存儲G字段數(shù)據(jù)的方法中,用手工方式逐條復(fù)制和粘貼,主要適用于數(shù)據(jù)量較小,而且操作必須在交互方式下進(jìn)行,既費(fèi)時(shí)又費(fèi)力;如果輸入的數(shù)據(jù)量很大,則用命令方式實(shí)現(xiàn),既快捷又方便。
2 通用型字段的顯示
(1) 打開數(shù)據(jù)表,直接雙擊“Gen”查看內(nèi)容;也可以用SELECT-SQL命令查看。最簡單形式:
SELECT
(2) 如果通用字段存放的是圖形數(shù)據(jù),其輸出還可以直接用標(biāo)準(zhǔn)格式化輸出語句進(jìn)行輸出。命令格式如下[7]:
@
[SIZE
BITMAP用于顯示一個(gè).BMP位圖文件;SIZE顯示對象的大小,取默認(rèn)時(shí),以原來自然大小顯示;nEXP1,nEXP2指定對象的高度和寬度;ISOMETRIC/STRETCH決定縮放圖片,成比例縮放或出現(xiàn)充滿SIZE的大小而有可能圖像比例失真。
例如:編一程序自動顯示上題中全部學(xué)生的照片,每張照片顯示時(shí)間為2 s,程序如下:
Use 學(xué)生信息
Count to N
Go top
For i=1 to N
@3,5 SAY 個(gè)人照片
wait " " timeout 2
Skip
Endfor
(3) 采用ActiveX 綁定型控件(OLEBoundControl)顯示G型字段數(shù)據(jù)。
在新建表單中,單擊鼠標(biāo)右鍵“數(shù)據(jù)環(huán)境…”添加需顯示的數(shù)據(jù)表,插入ActiveX 綁定型控件(OLEBoundControl)在屬性框中,把ControlSource的值直接選擇表中的G字段;再插入其他控件或按鈕編寫代碼,以使記錄指針變化,及時(shí)刷新表單使控件顯示一致。下面便是一個(gè)非常簡單的例子。
例如:在表單中同步(表中記錄指針與照片隨之改變)顯示“學(xué)生信息”表中G字段“個(gè)人照片”的內(nèi)容。
① 用表單向?qū)Ы⒈韱?選表中部分字段(學(xué)號、姓名、分隊(duì)、個(gè)人照片);一直默認(rèn)下一步直到選擇“保存表單,并用表單設(shè)計(jì)器修改表單”完成;
② 進(jìn)入表單設(shè)計(jì)器,調(diào)整控件的位置和字體大小,選擇控件“BUTTONSET1”,把其中的cmdEdit,cmdDelete,cmdAdd,cmdPrint的Enabled和Visible兩個(gè)屬性統(tǒng)統(tǒng)設(shè)為.F.(運(yùn)行表單時(shí)不可見此按鈕);為保證數(shù)據(jù)的完整性,既不可修改也不可刪除(如圖2所示);
③ 移動命令按鈕位置,調(diào)整到實(shí)用美觀的狀態(tài)即可(如圖3所示)。
3 通用字段的說明
其實(shí)VFP中G字段的數(shù)據(jù)在使用時(shí),部分?jǐn)?shù)據(jù)也經(jīng)常會出現(xiàn)修改或更新,對此,常用的命令有[8]:Replace
其次在向數(shù)據(jù)表的G型字段添加內(nèi)容時(shí),由于一些操作必須使用Windows的剪貼板,如果粘貼的內(nèi)容過大,或者系統(tǒng)的內(nèi)在容量不夠時(shí),有可能造成添加內(nèi)容時(shí)的操作失敗,這也是無法避免的。
在數(shù)據(jù)表中存儲多媒體數(shù)據(jù)的主要目的是為便于使用,所以它的顯示尤為重要。針對圖片存儲的不同形式,圖片在VFP中的顯示也存在多種方式。除了前面推薦的方法,還有利用IMAGE控件進(jìn)行的;利用VFP庫Foxtools.fll,利用與MCI有關(guān)的API函數(shù)[11],可視類庫等方法枚不勝舉。由于需要編程的語句較長,專業(yè)水平要求相對高,并沒有一個(gè)普遍適用的人群,在此不再贅述。
圖2 表單設(shè)計(jì)器界面(一)
圖3 表單設(shè)計(jì)器界面(二)
4 結(jié) 語
總之,在信息多元化的今天,多媒體技術(shù)已滲透到計(jì)算機(jī)的各個(gè)方面,并成為高級語言性能的重要標(biāo)志之一。在教材中沒有充分展現(xiàn)的通用型字段,并不代表VFP不具備充分展示多媒體數(shù)據(jù)的功能。在教學(xué)環(huán)節(jié)中不能輕視忽略,需要根據(jù)學(xué)生的特點(diǎn),廣泛合理靈活地使用VFP。通過充分研究、挖掘,以達(dá)到最佳的教學(xué)效果。
參考文獻(xiàn)
[1]教育部考試中心.全國計(jì)算機(jī)等級考試考試大綱[M].北京:高等教育出版社,2004.
[2]史濟(jì)民.Visual FoxPr及其應(yīng)用系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2002.
[3]田銀磊.Visual FoxPro 程序設(shè)計(jì)及應(yīng)用[M].西安:西北大學(xué)出版社,2005.
[4]余文芳.Visual FoxPro 8.0程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2004.
[5]陳博.Visual FoxPro 8.0數(shù)據(jù)庫開發(fā)實(shí)例教程[M].北京:清華大學(xué)出版社,2004.
[6]江述華.數(shù)據(jù)庫的圖像處理方法[J].電腦知識與技術(shù),2008(5):1 040-1 042.
[7]周曉玉,杜菁.FoxPro簡明教程[M].北京:電子工業(yè)出版社,2001.
[8]史濟(jì)民,湯觀全.Visual FoxPro及其應(yīng)用系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2004.
[9]劉璐.圖片在VFP中的顯示與打印技術(shù)研究[J].機(jī)械管理開發(fā),2008,23(4):70-71.
[10]王毅.對VFP圖像處理的改進(jìn)[J].計(jì)算機(jī)與信息技術(shù),2007(15):326.
[11]姜景紅.有聲用戶界面設(shè)計(jì)技巧[J].通化師范學(xué)院學(xué)報(bào),2006,27(2):26-28.