首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > PB中使用FORMULA ONE入门介绍
【标  题】:PB中使用FORMULA ONE入门介绍
【关键字】:NE,RM,PB,ORM,FOR,OR,FORM,PB,FORMULA,ONE
【来  源】:网络

PB中使用FORMULA ONE入门介绍

在使用 POWERBUILDER 编程中,往往会遇到处理复杂表格的情况,这些表格数量很大,表格结构复杂,如用一般的 FREEFORM 风格的数据窗口来实现,则报表编程工作会占相当大的时间及精力,一旦报表格式略有改变,则程序的维护工作会很繁琐。其实 VISUAL COMPONENTS 的 FORMULA ONE 就是一个与 POWERBUILDER 结合非常紧密的报表工具,我们可以从 POWERBUILDER 进入 FORMULA ONE ,还可以在 POWERBUILDER 下直接使用 FORMULA ONE 提供的各种函数,因为 FORMULA ONE 的文件小,与数据库的存取操作速度较快,所以建议使用它来制作报表。下面详细介绍它的使用方法:

一、 安装及使用 FORMULA ONE

formula one在本站有下载,注意6.0版本安装过程中要输入序列号,否则使用时会告警。安装完毕后,运行 vcf1.exe 可看到如上的程序环境,其文件后缀名为 vts ,它兼容中文,具备类似 EXCEL 的功能:如格式编排、制作表格线、移动和复制单元格、单元格的计算、画简单框图等等。另外, FORMULA ONE 中还具有上百种函数,可以在 VISUAL C++ 、 VISUAL BASIC 、和 POWERBUILDER 中引用。对此不再详细说明。

二、在 POWERBUILDER 窗口中加入一个 OLE 控件

POWERBUILDER 支持 WINDOWS 具备的对象连接与嵌入功能(即 OLE 功能),我们可以直接在窗口上放置 OLE 2.0 的控件,然后将 WINDOWS 支持的 OLE 对象连接到 OLE 2.0 控件中,这样就能在 POWERBUILDER 应用中利用 OLE 服务器的命令和函数完成对 OLE 对象的操作工作。

在 POWERBUILDER 的窗口中点中 OLE 图标:

会出现“插入对象”对话框,选择 insert control 标签项(如下图),

在对象列表中选择 Vci Formula One Workbook ,按确定键后,选好插入位置点击鼠标,即加入了一个名为 ole_1 的 OLE 对象,在其上用鼠标右键选中 OCX Properties 项,在 Show 标签下可将 Row Heading 和 Column Heading 项取消选中,将 Tabs 的值由 Bottom 改为 Off (如下图),加入的 OLE 对象就是一个没有行头、列头及标签的空白表格。

三、 FORMULA ONE 文件与窗口中的 OLE 对象之间进行读写操作

Ole_1.object.read(“filename”,ref return1)

该句将一个 FORMULA ONE 文件内容读入 OLE 对象,返回值为 return1 。

此后在窗口的 ole_1 中会出现该文件内容,可直接在窗口上修改其内容,也可以双击鼠标右键可进入 FORMULA ONE 的编辑环境中进行修改。

Ole_1.object.savefiledlg(“ 保存文件 ”,ref filename,ref return1)

Ole_1.object.write(filename,return1)

这两句首先给出一个保存文件对话框,让使用者输入一个 FORMULA ONE 文件名,然后再将 OLE 对象内容写入 FORMULA ONE 文件。

实际上, read 、 write 、 savefiledlg 等函数都是 FORMULA ONE 所有的, POWERBUILDER 中只需在 Ole_1 后加一个 object 即可引用这些函数。

四、数据库与 FORMULA ONE 文件之间进行读写操作:

1. 数据库中大文本字段内容读入 FORMULA ONE 文件中:

selectblob 大文本字段名 into :blob 变量名 from 表名 where…

该句查询大文本字段内容到 blob 变量中。

If fileexist(“file1.vts”) then

filedelete(“file1.vts”)

End if

Return1=fileopen(“file1.vts”,streammode!,write!)

以上语句新建了一个临时文件 file1.vts

If return1<>-1 then

filewrite(return1,blob 变量 )

fileclose(return1)

Else

messagebox(“error”, “Can't open file!”)

End if

本条件语句将 blob 变量的内容写入临时文件中,如出错则告警。

2.FORMULA ONE 文件的内容存入数据库中

return1=fileopen(“file1.vts”,streammode!,write!)

If return1<>-1 then

fileread(return1,blob 变量 )

fileclose(return1)

end if

以上语句将临时文件内容读入 blob 变量中。

if len ( blob 变量 )>0 then

updateblob 表名 set 大文本字段名 =:blob 变量 where…

end if

该条件语句给数据库中的大文本字段赋值。

如上所述可以利用 FORMULA ONE 的文件实现 POWERBUILDER 窗口中 OLE 对象与数据库大文本字段之间信息传送。此外,在 POWERBUILDER 中也提供数据窗口中用 EXCEL 做 OLE 对象来存取数据库的大文本字段,但它不能调用 EXCEL 的函数,因此不够灵活。此种方法占用的系统资源是 FORMULA ONE 的数倍,在大型数据库的存取操作中会大大增加日志,存取速度也会减慢,因此不适合大范围应用。

在日常应用中,首先制作一个 FORMULA ONE 的报表模板文件,通过 POWERBUILDER 窗口的 OLE 对象打开该文件,填好内容后存入数据库,此后就可以对数据库中已存在的报表字段进行存取操作。如果报表格式发生变化,则直接修改模板文件即可,不需要改动程序,维护相当方便。

在PB中如何对ASA进行数据备份:【上一篇】
PB 5中PFC的使用:【下一篇】
【相关文章】
  • pb函数库之打印函数
  • pb函数库之窗口操作函数
  • pb函数库之国际化函数
  • pb函数库之其他函数
  • pb中如何使用数学函数集(如反三角函数)?
  • pb函数库之数组函数
  • pb函数库之Blob(大二进制对象)函数
  • pb函数库之数据类型检查与转换函数
  • pb函数库之数值计算函数
  • pb函数库之字符串操作函数
  • 【随机文章】
  • Unix(Linux) C编程问题精粹
  • java金额转换
  • 基于nio和java.util.concurrent的多线程服务器编写,一步一步(1)
  • Users warn of ILM backlash
  • COM和.NET的互操作
  • smarty缓存控制
  • WORD2000第十七讲 插入图片
  • 使用Bonnie++进行系统IO性能测试(转载)
  • Fireworks MX2004中一款图标的制作方法
  • 2004年计算机等级考试二级C语言试题及答案
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.