注册 登录
编程论坛 VFP论坛

一个很好用的原生prg--genhtml.prg,单机版改web版效率大大提升

sam_jiang 发布于 2025-05-11 22:31, 575 次点击
如果你的单机版应用有升级到Web版的需求,那么genhtml绝对是一个非常好用的工具,它可以大大地节省你的时间。
它是vfp自带一个非常实用的工具,一个prg文件。看看微软自己是怎么说的(金山词霸翻译的):
* GenHTML.PRG - HTML生成器。
*
*版权所有(c) 1998-2003 Microsoft Corp.
*1 Microsoft方式
*华盛顿州雷德蒙德市,邮编:98052
*
*描述:
*使用_HTML.VCX中的类生成HTML。
*
*参数列表:
* cOutFile:指定输出.HTM文件的名称。如果文件名不带
*指定了扩展名,使用.HTM。
*vSource:指定源文件名、别名或对象。
*nShow:0/.F./Empty =仅生成输出文件。
*1=创建输出文件并查看生成的文件。
*2=创建输出文件并在Internet Explorer中显示生成的文件。
*3=根据“另存为HTML”对话框选择创建输出文件并显示。
*4=创建公共_oHTML对象并生成文件。
*5=创建公共_oHTML对象,但不生成文件。
*vIELink:指定到Internet Explorer对象或Web浏览器控件的链接。
*.F./Empty=未创建链接。
*.T.=自动创建Internet Explorer实例。
*Object=对Internet Explorer或Web浏览器控件的引用。
*cStyle:在GenHTML.dbf中指定样式ID引用。
*cScope:通过设置.cScope来指定扫描范围。
*cHTMLClass:指定类,以及可选的类库和模块,
*为HTML对象实例化。
*语法:Class[,ClassLibrary[,Module]]

该程序最少需要2个参数,coutfile,vsource,其他的参数可以省略。vsource可以是dbf,frx,lbx,mnx,和scx 文件
我替大家先探路了,这个程序还不是很完美,不能识别form里的container,以及sharp等,有兴趣的可以给它完善一下。。。
我分别用form,和dbf做了个尝试,结果如图:
1,简单的form
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

2,复杂点的form,不能生成sharp,(线条)以及container。。。
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

3,dbf文件,我根据生成的html稍作了点修改,系统生成的html就是简单的黑色表格,挺难看的。。。
只有本站会员才能查看附件,请 登录


这个工具就在vfp的程序文件夹里,简单的用法如下:
程序代码:

if !UPPER("program files") $ SET("path")
    set path to sys(2004) addi
endif
genhtml("test.html","login.scx")
*genhtml("test1.html","supplier.scx")
*genhtml("test2.html","supplier.dbf")


如果你的程序有需要升级成web版的,那么赶紧去研究一下吧,最好完善它一下,分享给大家。。。


9 回复
#2
schtg2025-05-12 06:39
很好的,谢谢分享!
#3
sych2025-05-12 09:15
还有这功能,看来vfp真的很强大,现在了解的不及万一
#4
kangss2025-05-12 12:33
只有本站会员才能查看附件,请 登录

这个功能可能是VFP未完工的高级功能,可能会在10.0、11.0、12.0中能够直接编译发布web、安卓版

VFP6已经就有了
只有本站会员才能查看附件,请 登录
#5
girlsfriend2025-05-12 14:21
尽然有这个功能?
#6
easyppt2025-05-13 08:22
开眼界了
#7
sam_jiang2025-05-13 19:57
回复 4楼 kangss
vfp菜单里的这个命令就是调用这个prg

在微软公司的发展历程中,确实有几个与技术相关的里程碑和创新,其中包括了对“Active Document”技术的引入和推广,就是为web应用开发的。后来不了了之了~~~

vfp被抛弃的原因并不是太落后,而是太强大,毕竟一个软件涵盖数据库,应用程序,web应用,哪有拆开了分开了卖赚钱??? mssql怎么卖?vb,bc怎么卖?




#8
schtg2025-05-14 06:57
#9
aqyejun2025-05-15 16:04
#10
aqyejun2025-05-15 17:17
VFP6.0的帮助文件中对Genhtml.prg确实有介绍:
***开始
【_genhtml 系统内存变量】
请参阅
指定一个 HTML (Hypertext Markup Language) 生成程序。
语法
_GENHTML = ProgramName
参数
ProgramName
指定生成 HTML 的程序。如果所指定的 HTML 生成程序不在当前默认目录中,在程序名中应该包含路径。
说明
在默认情况下,_GENHTML 包含 Genhtml.prg。当从“文件菜单”中选择“另存为HTML”命令时,会执行 Genhtml.prg。并且创建一个包含 HTML 版本表单、报表或表的文本文件。只有当表单、菜单或报表设计器活动时,并且表单、菜单或报表已经保存了,“另存为 HTML”选项才可用,或者当打开一个浏览窗口时“另存为 HTML”选项才可用。
【Genhtml.prg】
Genhtml.prg 是 _GENHTML 系统变量在默认情况下调用的程序。
使用 _GenHTML 可很容易地收集静态数据,或用于转换表单、标签、报表、和菜单以便于查看、或通过 email 发送或以网页形式发布信息。使用 _GenHTML 还可使没有安装 Visual FoxPro 的站点也能共享数据,或者用于创建网页中所使用的模板。
当在“文件”菜单中选择了“另存为 HTML”选项时,GenHTML.PRG 即会自动运行。只有在“表单设计器”、“标签设计器”、“菜单设计器”、或“报表设计器”活动时,或者是在“浏览”窗口中有打开的表格或临时表时,“另存为 HTML”菜单选项才会有效。GenHTML 在使用 _HTML.VCX 类库中的类生成 HTML 文档时会以所指定的数据源作为基础。
可使用如下语法在“命令”窗口中运行 GenHTML:
DO (_GENHTML) WITH <cSourceFile> <cOutFile>[, <nShow>][,<vIELink>][,...
参数 说明
cOutFile 默认值 = “”
指定输出文件的文件名。默认的后缀名是 HTM。
 cSourceFile 默认值:= “”
指定源文件的文件名、别名或对象。
 nShow 默认值:= 0
指定 GenHTML 是否创建并打开输出文件。tnShow 可以是以下各值:
0 = 生成输出文件
1 = 生成输出文件,并在 Visual FoxPro 编辑器中显示它。
2 = 生成输出文件,并在 Internet Explorer 中显示它。
3 = 在使用了“另存为”对话框后生成并显示输出文件。
4 = 创建 PUBLIC _oHTML 对象,并生成文件。
5 = 创建 PUBLIC _oHTML 对象,不生成文件。
 vIELink 默认值:
指定与 Internet Explorer 对象或 Web 浏览器控件的链接。
 Object 默认值:
指定对 Internet Explorer 对象的引用。
 cStyle 默认值:
指定 GenHTML.DBF 中的 Style ID。
 tcScope 默认值:
通过设置 cScope 属性指定扫描的范围。
 cHTMLClass 默认值:
指定类,和 HTML 对象实例化的类库(可选)。
***结束

1