电竞比分网-中国电竞赛事及体育赛事平台

分享

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

 shahehyk 2013-03-01
  在實際應(yīng)用VFP編寫各類應(yīng)用系統(tǒng)過程中,用戶可能建立了大量的數(shù)據(jù)信息,這些信息一般都是存貯在各類數(shù)據(jù)表中,隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,許多數(shù)據(jù)信息要求在網(wǎng)上共享使用,如果相關(guān)的信息已經(jīng)存在數(shù)據(jù)表中,可以不需要重新輸入信息,直接生成可以在網(wǎng)上瀏覽使用的HTML格式文件,下面筆者介紹兩種數(shù)據(jù)庫內(nèi)容到HTML格式輸出的方法。
  一、是利用VFP提供的數(shù)據(jù)表內(nèi)容轉(zhuǎn)換到HTML格式文件類庫實現(xiàn)。在VFP系統(tǒng)目的FFC子目錄下存在一個_internet.vcx類庫,其中_dbf2html為數(shù)據(jù)表到HTML格式轉(zhuǎn)換類,在使用時,可在表單控件窗口中使用添加類的方法將該類庫添加到控件中,并在表單中添加_dbf2html類,該類有關(guān)的屬性、事件和方法說明如下:
  cSource屬性指出生成HTML的數(shù)據(jù)表源文件名,缺省值為“”。
  NgenOutput屬性_GENHTML輸出選項
  0—生成輸出文件
  1—生成輸出文件并在VisualFoxPro編輯器中顯示它
  2—生成輸出文件并在InternetExplorer編輯器中顯示它
  3—在顯示SaveAs對話框之后生成并顯示輸出文件
  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中指定的屬性調(diào)用
  Genhtml.prg來生成HTML代碼
  語法:GenHTML()
  返回值:無
  參數(shù):無
  如果在磁盤中存在一個干部基本情況數(shù)據(jù)表,我們可以使用以上介紹的類庫自動將人員通信錄中的數(shù)據(jù)信息制作網(wǎng)頁格式。
  新建一個表單,在表單中利用表單控件類中添加_internet.vcx類庫,點擊_dbf2html類添加到表單中,將該類的NAME屬性設(shè)為ZH,其它屬性均為默認值,然后在表單中添加一個命令按鈕COMMAND1,在該命令按鈕的CLICK事件中加入如下代碼:
FILE1=GETFILE("DBF")&&選擇一個數(shù)據(jù)表文件
FILE2=SUBS(FILE1,1,AT(".",FILE1)-1)&&去掉文件名后綴
FILE2=SUBS(FILE2,RAT("\",FILE2)+1)&&去掉文件名的路徑
IFUSED("&FILE2")
SELE&FILE2
ELSE
SELE0
USE&FILE2
ENDIF&&以上命令是確認一個數(shù)據(jù)文件已經(jīng)打開
THISFORM.ZH.GENHTML()&&執(zhí)行轉(zhuǎn)換程序
  保存并運行這個表單,使用鼠標點擊窗口中的命令按鈕,將彈出一個選擇文件對話框,在這里可任意選擇一個數(shù)據(jù)表文件,我們選擇的是人員通信錄數(shù)據(jù)表,確定后會發(fā)現(xiàn),系統(tǒng)將會自動生成一個以所選擇的數(shù)據(jù)表文件同名的以HTM為擴展名的網(wǎng)頁文件并啟動瀏覽器瀏覽這個生成的HTM文件,實現(xiàn)了數(shù)據(jù)庫內(nèi)容的HTML文件的輸出。
  二、應(yīng)用FrontPage2000網(wǎng)頁編輯工具與VFP系統(tǒng)編程技巧的結(jié)合實現(xiàn),前一種方法生成的HTML格式文件是以表格形式出現(xiàn)的,每一行為一條記錄,當數(shù)據(jù)庫中字段內(nèi)容過多,瀏覽生成的HTML格式文件就非常不方便。而在實際工作中,常常需要將某一個人的情況生成一頁自定表格樣式的HTML格式文件,利用上文提供的方法就不能實現(xiàn)了。可以采取應(yīng)用FrontPage2000網(wǎng)頁編輯工具與VFP系統(tǒng)編程技巧的結(jié)合,實現(xiàn)方式多樣網(wǎng)頁文件的生成輸出要求。
  首先使用FrontPage2000編輯工具,編輯一個所見即所得的靜態(tài)網(wǎng)頁,最終編輯的網(wǎng)頁如下圖:
  在這個網(wǎng)頁設(shè)計器中,生成的表格中前面帶##的字符為所在生成網(wǎng)頁格式數(shù)據(jù)來源中的數(shù)據(jù)庫中的字段名稱,如##姓名,其中姓名為數(shù)據(jù)庫中字段名稱。查看HTML源文件,我們把該源文件全部進行選擇,然后進行復(fù)制操作。
  新建一個數(shù)據(jù)庫存放網(wǎng)頁格式內(nèi)容,該庫命名為LSK.DBF,數(shù)據(jù)庫中只有一個字段名為HTMLNR,備注型。為該數(shù)據(jù)庫增加一條空記錄,然后打開備注字段HTMLNR進入編輯窗口狀態(tài),然后執(zhí)行粘貼操作,把在FrontPage2000生成網(wǎng)頁格式源文件內(nèi)容全部復(fù)制到該備注字段中,這樣一個設(shè)計完好的網(wǎng)頁格式庫就生成了,在這里也可以生成大量的、不同格式的網(wǎng)頁內(nèi)容存貯到數(shù)據(jù)庫中,供隨時生成網(wǎng)頁使用,這里我們以一種樣式為例。
  編寫一段轉(zhuǎn)換程序,該程序的主要工作原理為打開LSK數(shù)據(jù)庫,取出生成網(wǎng)頁的格式字符串內(nèi)容,打開需要輸出內(nèi)容的干部基本情況數(shù)據(jù)庫文件,用該數(shù)據(jù)庫中相應(yīng)字段的內(nèi)容替換網(wǎng)頁格式中以##為標識的字段串內(nèi)容,全部字段內(nèi)容替換完畢,最后將該格式的文本內(nèi)容生成一個HTML文件,即可完成整個系統(tǒng)要求,編寫的程序如下:
  USELSK&&打開網(wǎng)頁格式內(nèi)容庫
  ZYNR=HTMLNR&&取出一個網(wǎng)頁格式內(nèi)容文本
  USERYK&&打開需要生成網(wǎng)頁的數(shù)據(jù)庫
  ZYNR=STRTRAN(ZYNR,"##姓名",RYK.姓名)
  ZYNR=STRTRAN(ZYNR,"##性別",RYK.性別)
  &&因為字符替換函數(shù)只能使用字符型,所以日期型和數(shù)字型必須進行轉(zhuǎn)換
  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.個人簡歷)
  &&全部替換完畢,將最后的結(jié)果生成一個HTML文件
  =STRTOFILE(ZYNR,'ABC.HTM')
  USERYK
  執(zhí)行這個程序,將會自動生成一個名字為ABC.HTM文件,在瀏覽器中查看這個文件,該文件顯示如下:
  我們發(fā)現(xiàn)數(shù)據(jù)庫中的相關(guān)字段中的內(nèi)容變成了該網(wǎng)頁中的內(nèi)容,這樣就非常方便地實現(xiàn)了數(shù)據(jù)庫中內(nèi)容到網(wǎng)頁格式文件的輸出。在實際應(yīng)用過程中,還可以事先設(shè)計生成大量的不同樣式的網(wǎng)頁存貯在數(shù)據(jù)庫中,利用這個庫方便地實現(xiàn)各類網(wǎng)頁的輸出,擴展了數(shù)據(jù)庫數(shù)據(jù)內(nèi)容的應(yīng)用范圍。
  以上兩種方法可以根據(jù)不同的要求進行使用,在實現(xiàn)應(yīng)用中還可以先在數(shù)據(jù)庫中執(zhí)行查詢操作,然后將查詢的結(jié)果生成網(wǎng)頁進行瀏覽,應(yīng)用方法會更加靈活,有興趣的讀者不妨一試。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多