中国电脑教育报1999年第2期

自编程序把FoxPro数据库转变成HTML超文本表格

张 庆

  Internet的WWW网页中有大量的二维表格,这些表格有的从数据库转化而来。笔者在将数据库文件转化为超文本表格时编写了一段程序来自动实现,效率很高,现介绍给读者朋友。程序的设计思想很简单:打开.DBF数据库,按记录顺序分别读取数据库的各字段,然后加上 HTML文件的表格控制符,写到超文本格式的.html文件中。笔者的程序用Visual FoxPro5.0写成,可在Foxpro各版本下使用。样例数据库为Taxed.dbf,源程序清单和生成的超文本文件TAX.HTM 清单附后。附图是浏览器 IE3.0 的浏览结果。

  * Pragram: dbf2htm.prg

  * 表结构: Taxed.dbf

*字段名 类型 宽度 小数位
*swdjzh 字符型

9

(税务登记证号)
*qymc 字符型

20

(企业名称)
*tbrq 日期型

8

(填表日期)
*sz 字符型

10

(税种)
*ynsk 数值型

8

2(应纳税种)

  set talk off

  set safe off

  cr=chr(13)+chr(10)

  text=″〈!-- A HTML table convented from Taxed.dbf --〉″+cr

  text=text+″〈Html〉″+cr

  text=text+″〈Head〉″+cr+″〈Title〉纳税情况统计表〈/Title〉″+cr;

   +″〈/Head〉″+cr

  text=text+″〈Body〉″+cr+″〈Table border=1〉″+cr

  text=text+″〈Caption〉纳税情况统计表〈/Caption〉″+cr

  text=text+″〈Tr〉″+cr;

  +″〈Th〉〈p〉税务登记证号〈/p〉〈/Th〉″+cr;

  +″〈Th〉〈p〉企业名称〈/p〉〈/Th〉″+cr;

  +″〈Th〉〈p〉填表日期〈/p〉〈/Th〉″+cr;

  +″〈Th〉〈p〉税种〈/p〉〈/Th〉″+cr;

  +″〈Th〉〈p〉应纳税款〈/p〉〈/Th〉″+cr;

  +″〈/Tr〉″+cr

  Use Taxed.dbf

  for i=1 to recc()

   text=text+″〈Tr〉″+cr

   go i

   scat to Datas

   for j=1 to fcount()

   do case

   case type(″Datas(j)″)=″C″

   text=text+″〈Td〉″+allt(datas(j))+″〈/Td〉″+cr

   case type(″Datas(j)″)=″D″

   text=text+″〈Td〉″+dtoc(datas(j))+″〈/Td〉″+cr

   case type(″Datas(j)″)=″N″

   text=text+″〈Td align=right〉″+allt(str(datas(j),10,2));

   +″〈/Td〉″+cr

   endcase

   endfor

   text=text+″〈/Tr〉″+cr

  endfor

  use

  text=text+″〈/Table〉″+cr+″〈/Body〉″+cr+″〈/Html〉″

  

  handle=fcreate(″Tax.htm″,0)

  if handle=-1

   wait window ″Can't Open TAX.HTM″

   cancel

   endif

  result=fputs(handle,text)

  if result=0

   wait window ″Failure writing TAX.HTM″

  else

   =fclose(handle)

   wait window ″Successful writing TAX.HTM !″timeout 3

  endif

  return

  

  //HTML 文件 TAX.HTM 清单:

  〈!-- A HTML table convented from Taxed.dbf --〉

  〈Html〉

  〈Head〉

  〈Title〉纳税情况统计表〈/Title〉

  〈/Head〉

  〈Body〉

  〈Table border=1〉

  〈Caption〉纳税情况统计表〈/Caption〉

  〈Tr〉

  〈Th〉〈p〉税务登记证号〈/p〉〈/Th〉

  〈Th〉〈p〉企业名称〈/p〉〈/Th〉

  〈Th〉〈p〉填表日期〈/p〉〈/Th〉

  〈Th〉〈p〉税种〈/p〉〈/Th〉

  〈Th〉〈p〉应纳税款〈/p〉〈/Th〉

  〈/Tr〉

  〈Tr〉

  〈Td〉731001283〈/Td〉

  〈Td〉红月亮餐厅〈/Td〉

  〈Td〉10/05/98〈/Td〉

  〈Td〉营业税〈/Td〉

  〈Td align=right〉500.00〈/Td〉

  〈/Tr〉

  〈Tr〉

  〈Td〉671218001〈/Td〉

  〈Td〉和诚打字复印部〈/Td〉

  〈Td〉10/05/98〈/Td〉

  〈Td〉个人所得税〈/Td〉

  〈Td align=right〉168.08〈/Td〉

  〈/Tr〉

  〈Tr〉

  〈Td〉701001117〈/Td〉

  〈Td〉微通计算机服务公司〈/Td〉

  〈Td〉10/06/98〈/Td〉

  〈Td〉城建税〈/Td〉

  〈Td align=right〉1200.00〈/Td〉

  〈/Tr〉

  〈Tr〉

  〈Td〉750328002〈/Td〉

  〈Td〉白鹿塬宾馆〈/Td〉

  〈Td〉10/07/98〈/Td〉

  〈Td〉教育费附加〈/Td〉

  〈Td align=right〉2000.00〈/Td〉

  〈/Tr〉

  〈Tr〉

  〈Td〉760901182〈/Td〉

  〈Td〉古城百货大厦〈/Td〉

  〈Td〉10/09/98〈/Td〉

  〈Td〉房产税〈/Td〉

  〈Td align=right〉10000.00〈/Td〉

  〈/Tr〉

  〈/Table〉

  〈/Body〉

  〈/Html〉

 

back.gif (1185 字节)