明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

談2種數(shù)據(jù)庫內容HTML格式的輸出方法

[摘要]摘要:在實際應用VFP編寫的各類應用系統(tǒng)過程中,用戶建立的大量信息,一般都是存貯在應用系統(tǒng)中的數(shù)據(jù)庫中。隨著網(wǎng)絡技術的迅速發(fā)展,許多數(shù)據(jù)信息要求在網(wǎng)上共享使用,如應用系統(tǒng)中數(shù)據(jù)庫已存在的信息,輸出為HTML格式的文件在網(wǎng)上進行瀏覽,可以解決數(shù)據(jù)共享的問題,本文介紹了利用轉換類庫和FrontPage...
摘要:在實際應用VFP編寫的各類應用系統(tǒng)過程中,用戶建立的大量信息,一般都是存貯在應用系統(tǒng)中的數(shù)據(jù)庫中。隨著網(wǎng)絡技術的迅速發(fā)展,許多數(shù)據(jù)信息要求在網(wǎng)上共享使用,如應用系統(tǒng)中數(shù)據(jù)庫已存在的信息,輸出為HTML格式的文件在網(wǎng)上進行瀏覽,可以解決數(shù)據(jù)共享的問題,本文介紹了利用轉換類庫和FrontPage2000與VFP編程兩種可以把數(shù)據(jù)庫內容轉換為HTML格式文件的方法。


  在實際應用VFP編寫各類應用系統(tǒng)過程中,用戶可能建立了大量的數(shù)據(jù)信息,這些信息一般都是存貯在各類數(shù)據(jù)表中,隨著網(wǎng)絡技術的迅速發(fā)展,許多數(shù)據(jù)信息要求在網(wǎng)上共享使用,如果相關的信息已經(jīng)存在數(shù)據(jù)表中,可以不需要重新輸入信息,直接生成可以在網(wǎng)上瀏覽使用的HTML格式文件,下面筆者介紹兩種數(shù)據(jù)庫內容到HTML格式輸出的方法。


一、是利用VFP提供的數(shù)據(jù)表內容轉換到HTML格式文件類庫實現(xiàn)。在VFP系統(tǒng)目的FFC子目錄下存在一個_internet.vcx類庫,其中_dbf2html為數(shù)據(jù)表到HTML格式轉換類,在使用時,可在表單控件窗口中使用添加類的方法將該類庫添加到控件中,并在表單中添加_dbf2html類,該類有關的屬性、事件和方法說明如下:

cSource屬性 指出生成HTML的數(shù)據(jù)表源文件名,缺省值為“”。

NgenOutput屬性 _GENHTML輸出選項

0 — 生成輸出文件

1 — 生成輸出文件并在Visual FoxPro編輯器中顯示它

2 — 生成輸出文件并在Internet Explorer編輯器中顯示它

3 — 在顯示Save As 對話框之后生成并顯示輸出文件

4 — 建立PUBLIC_oHTML對象并生成一個文件

5 — 建立PUBLIC_oHTML對象并不生成一個文件

缺省值為2

cOutFile屬性 指出輸出的HTML文件的名稱,缺省值為“”

IautoNameOutput屬性 指出_GENHTML是否自動基于源來命令該輸出文件,缺省值

為.T.。

IuseCurrentAlias屬性 指出是否使用當前別名作為源,缺省值為.T.。

Cscope屬性 指出輸出的范圍(例好NEXT或ALL),缺省值為“”。

CStyle屬性 指出Genhtml.dbf的ID字段列出的可視風格,缺省值為“”。

GenHTML方法 通過使用Csource、cOutpur和nGenOutput中指定的屬性調用

Genhtml.prg來生成HTML代碼

語法:GenHTML()

返回值:無

參數(shù):無

如果在磁盤中存在一個干部基本情況數(shù)據(jù)表,我們可以使用以上介紹的類庫自動將人員通信錄中的數(shù)據(jù)信息制作網(wǎng)頁格式。

新建一個表單,在表單中利用表單控件類中添加_internet.vcx類庫,點擊_dbf2html類添加到表單中,將該類的NAME屬性設為ZH,其它屬性均為默認值,然后在表單中添加一個命令按鈕COMMAND1,在該命令按鈕的CLICK事件中加入如下代碼:

FILE1=GETFILE("DBF") &&選擇一個數(shù)據(jù)表文件

FILE2=SUBS(FILE1,1,AT(".",FILE1)-1) &&去掉文件名后綴

FILE2=SUBS(FILE2,RAT("",FILE2)+1) &&去掉文件名的路徑

IF USED("&FILE2")

SELE &FILE2

ELSE

SELE 0

USE &FILE2

ENDIF

&&以上命令是確認一個數(shù)據(jù)文件已經(jīng)打開

THISFORM.ZH.GENHTML() &&執(zhí)行轉換程序

保存并運行這個表單,使用鼠標點擊窗口中的命令按鈕,將彈出一個選擇文件對話框,在這里可任意選擇一個數(shù)據(jù)表文件,我們選擇的是人員通信錄數(shù)據(jù)表,確定后會發(fā)現(xiàn),系統(tǒng)將會自動生成一個以所選擇的數(shù)據(jù)表文件同名的以HTM為擴展名的網(wǎng)頁文件并啟動瀏覽器瀏覽這個生成的HTM文件,實現(xiàn)了數(shù)據(jù)庫內容的HTML文件的輸出。


二、應用FrontPage2000網(wǎng)頁編輯工具與VFP系統(tǒng)編程技巧的結合實現(xiàn),前一種方法生成的HTML格式文件是以表格形式出現(xiàn)的,每一行為一條記錄,當數(shù)據(jù)庫中字段內容過多,瀏覽生成的HTML格式文件就非常不方便。而在實際工作中,常常需要將某一個人的情況生成一頁自定表格樣式的HTML格式文件,利用上文提供的方法就不能實現(xiàn)了?梢圆扇肍rontPage2000網(wǎng)頁編輯工具與VFP系統(tǒng)編程技巧的結合,實現(xiàn)方式多樣網(wǎng)頁文件的生成輸出要求。

首先使用FrontPage2000編輯工具,編輯一個所見即所得的靜態(tài)網(wǎng)頁,最終編輯的網(wǎng)頁如下圖:


在這個網(wǎng)頁設計器中,生成的表格中前面帶##的字符為所在生成網(wǎng)頁格式數(shù)據(jù)來源中的數(shù)據(jù)庫中的字段名稱,如##姓名,其中姓名為數(shù)據(jù)庫中字段名稱。查看HTML源文件,我們把該源文件全部進行選擇,然后進行復制操作。

新建一個數(shù)據(jù)庫存放網(wǎng)頁格式內容,該庫命名為LSK.DBF,數(shù)據(jù)庫中只有一個字段名為HTMLNR,備注型。為該數(shù)據(jù)庫增加一條空記錄,然后打開備注字段HTMLNR進入編輯窗口狀態(tài),然后執(zhí)行粘貼操作,把在FrontPage2000生成網(wǎng)頁格式源文件內容全部復制到該備注字段中,這樣一個設計完好的網(wǎng)頁格式庫就生成了,在這里也可以生成大量的、不同格式的網(wǎng)頁內容存貯到數(shù)據(jù)庫中,供隨時生成網(wǎng)頁使用,這里我們以一種樣式為例。

編寫一段轉換程序,該程序的主要工作原理為打開LSK數(shù)據(jù)庫,取出生成網(wǎng)頁的格式字符串內容,打開需要輸出內容的干部基本情況數(shù)據(jù)庫文件,用該數(shù)據(jù)庫中相應字段的內容替換網(wǎng)頁格式中以##為標識的字段串內容,全部字段內容替換完畢,最后將該格式的文本內容生成一個HTML文件,即可完成整個系統(tǒng)要求,編寫的程序如下:

USE LSK &&打開網(wǎng)頁格式內容庫

ZYNR=HTMLNR &&取出一個網(wǎng)頁格式內容文本

USE RYK &&打開需要生成網(wǎng)頁的數(shù)據(jù)庫

ZYNR=STRTRAN(ZYNR,"##姓名",RYK.姓名)

ZYNR=STRTRAN(ZYNR,"##性別",RYK.性別)

&&因為字符替換函數(shù)只能使用字符型,所以日期型和數(shù)字型必須進行轉換

ZYNR=STRTRAN(ZYNR,"##出生年月",STR(YEAR(RYK.出生年月))+‘.‘+STR(MONT(RYK.出生年月))+‘.‘+STR(DAY(RYK.出生年月)))

ZYNR=STRTRAN(ZYNR,"##曾用名",RYK.曾用名)

ZYNR=STRTRAN(ZYNR,"##民族",RYK.民族)

ZYNR=STRTRAN(ZYNR,"##工作年月",STR(YEAR(RYK.工作年月))+‘.‘+STR(MONT(RYK.工作年月))+‘.‘+STR(DAY(RYK.工作年月)))

ZYNR=STRTRAN(ZYNR,"##入學時間",STR(YEAR(RYK.入學時間))+‘.‘+STR(MONT(RYK.入學時間))+‘.‘+STR(DAY(RYK.入學時間)))

ZYNR=STRTRAN(ZYNR,"##畢業(yè)時間",STR(YEAR(RYK.畢業(yè)時間))+‘.‘+STR(MONT(RYK.畢業(yè)時間))+‘.‘+STR(DAY(RYK.畢業(yè)時間)))

ZYNR=STRTRAN(ZYNR,"##畢業(yè)院校",RYK.畢業(yè)院校)

ZYNR=STRTRAN(ZYNR,"##學歷",RYK.學歷)

ZYNR=STRTRAN(ZYNR,"##所學專業(yè)",RYK.所學專業(yè))

ZYNR=STRTRAN(ZYNR,"##家庭住址",RYK.家庭住址)

ZYNR=STRTRAN(ZYNR,"##郵政編碼",RYK.郵政編碼)

ZYNR=STRTRAN(ZYNR,"##家庭電話",RYK.家庭電話)

ZYNR=STRTRAN(ZYNR,"##家庭電話",RYK.家庭電話)

ZYNR=STRTRAN(ZYNR,"##手機號",RYK.手機號)

ZYNR=STRTRAN(ZYNR,"##工作單位",RYK.工作單位)

ZYNR=STRTRAN(ZYNR,"##現(xiàn)任何職",RYK.現(xiàn)任何職)

ZYNR=STRTRAN(ZYNR,"##個人簡歷",RYK.個人簡歷)

&&全部替換完畢,將最后的結果生成一個HTML文件

=STRTOFILE(ZYNR,‘ABC.HTM‘)

USE RYK

執(zhí)行這個程序,將會自動生成一個名字為ABC.HTM文件,在瀏覽器中查看這個文件,該文件顯示如下:


我們發(fā)現(xiàn)數(shù)據(jù)庫中的相關字段中的內容變成了該網(wǎng)頁中的內容,這樣就非常方便地實現(xiàn)了數(shù)據(jù)庫中內容到網(wǎng)頁格式文件的輸出。在實際應用過程中,還可以事先設計生成大量的不同樣式的網(wǎng)頁存貯在數(shù)據(jù)庫中,利用這個庫方便地實現(xiàn)各類網(wǎng)頁的輸出,擴展了數(shù)據(jù)庫數(shù)據(jù)內容的應用范圍。

以上兩種方法可以根據(jù)不同的要求進行使用,在實現(xiàn)應用中還可以先在數(shù)據(jù)庫中執(zhí)行查詢操作,然后將查詢的結果生成網(wǎng)頁進行瀏覽,應用方法會更加靈活,有興趣的讀者不妨一試。