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