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