InfoMaker报表及在PB程式中的应用.docx
- 文档编号:29320594
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:12
- 大小:22.12KB
InfoMaker报表及在PB程式中的应用.docx
《InfoMaker报表及在PB程式中的应用.docx》由会员分享,可在线阅读,更多相关《InfoMaker报表及在PB程式中的应用.docx(12页珍藏版)》请在冰豆网上搜索。
InfoMaker报表及在PB程式中的应用
InfoMaker报表及在PB程式中的应用
InfoMaker是Sybase推出的一款非常优秀的免费的(存疑)报表设计及浏览工具,在安装PB时或其它Sybase软件时可作为选择性安装,并不单独销售。
使用InfoMaker开发出来的报表可以直接在PB中使用,因此如果能够在PB程序中调用InfoMaker让用户自行设计数据窗口,将大大减轻了开发人员开发数据窗口的工作量,并且让用户拥有自己设计的程序界面(增进用户的参与感)。
其实InfoMaker的可执行程序是允许带参数的,以InfoMaker9.0的可执行程序im90.exe为例(以下全部以InfoMaker9.0来讲解,其它版本类似),"/P”指明报表类型,可取report、form、pipeline、query值,”/L"指明库文件,"/O"指明对象名称。
例:
执行im90.exe/Preport/Lc:
/test.pbl/Od_test_grid,将使用InfoMarker打开c:
/test.pbl中的d_test_grid报表。
在知道InfoMaker命令行参数的前提下,要在PB程序中调用它修改现有数据窗口,目标就是组合各种参数值。
【/P】选项是枚举值,如果是修改现有数据窗口,可以取值report。
【/L】选项是库文件,可以是pbl或pbd文件,如果数据窗口的dataobject是一个数据窗口对象,可以通过调用GetLibraryList、LibraryDirectory等函数来获取该数据窗口对象所在库文件。
为了不使用户覆盖你现有pbl或pbd中的对象,我建议你新建一个临时pbl,可以通过调用LibraryCreate 来创建,调用LibraryDelete来销毁。
【/O】选项是对象名称,如果是修改现有数据窗口,可以是数据窗口对象名称。
如果数据窗口的dataobject是一个数据窗口对象,你可以直接使用它。
不过出于保密考虑和担心用户覆盖现有同名对象,我建议你新建一个临时数据窗口对象,注意起名时不要与现有对象重名(需检测),这样不仅可以对付dataobject是一个数据窗口对象的情况,也可以对付dataobject是一个psr或调用数据窗口create创建的情况。
取其数据窗口语法,调用LibraryImport函数即可创建数据窗口对象。
成功组合各种参数值后就可以运行InfoMaker了,不过如果想让用户在使用InfoMaker时能得心应手和确保安全性,你还应作些可选配置。
如果你需要设计的数据窗口对象(新建的临时数据窗口对象)引用了或即将引用其它PB对象,如栏位编辑风格采用下拉数据窗口,使用嵌套报表,在对象属性中引用全局函数,这时你应该将相关的对象包括进来。
这就需要对InfoMaker运行环境进行一些配置,主要是修改im.ini文件选项,在im.ini中最需要我们配置的几个参数有Application段的QueryLib、StyleLib、DefLib,分别指明搜索库文件、样式库文件、缺省库文件。
QueryLib、StyleLib参数可以取应用库文件列表,注意各文件之间是以分号(;)分隔的,与PB库文件以逗号(,)分隔有所不同。
DefLib参数可以使用【/L】选项所指库文件。
如果你所开发的系统最终用户所熟悉的语言并非英语,你还应该进行一些本地化配置,比如在中国,最好是界面全部汉化。
你可以使用南极星等即时语言转换软件,或使用Multilizer等软件对InfoMaker相关DLL进行汉化。
笔者建议你采用第二种方法,因为通过你自己修改DLL中资源可能更贴近原意,这项工作最主要的是需要耐心和细心,当然也需要一定的英语功底和文字组织能力。
汉化的文件主要有pbapl90.dll、pbdev90.dll、pbdpp90.dll、pbdts90.dll、pbdwe90.dll、pbdwp90.dll、pblib90.dll、pbsys90.dll等,这些默认放在sybase/shared/powerbuilder目录下。
注意汉化这些文件后运行PB同样会得到汉化界面,因为PB也需要其中的某些DLL。
如果你想将InfoMaker改造成绿色软件(默认是需要通过安装程序来安装的),即无需安装只要拷贝文件即可使用,除了InfoMaker目录下所有文件外(其实只需im90.exe、im.ini、imstyle9.pbl文件),还应该拷贝以下文件放在目标电脑InfoMaker目录下,包括libjcc.dll、libjsybheap.dll、pbapl90.dll、pbcmp90.dll、pbdev90.dll、pbdpp90.dll、pbdts90.dll、pbdwe90.dll、pbdwp90.dll、pbeas90.dll、pblib90.dll、pborc90.dll、pbscr90.dll、pbsql90.dll、pbsys90.dll、pbudo90.dll、pbvm90.dll、pbwed90.dll。
如果你不能明确到底需要哪些文件,你也可以拷贝sybase/shared/powerbuilder目录下所有dll。
如果你需要使用完整的InfoMaker功能,建议还是采用默认安装程序。
如果出于安全考虑,你不想让用户看到(或修改)数据窗口对象的SQL语句或连接数据库,你仅仅需要拷贝上述文件,不过这样会在运行InfoMaker时弹出好几次对话框要求用户连接数据库,按关闭即可。
命令行参数和运行参数都配置好后,就可以运行了。
你可以通过调用PB的run函数或WINAPI的ShellExecute函数来执行,如果你想等待InfoMaker执行后再进行其它操作,你也可以调用WINAPI的ShellExecuteEx函数并结合WaitForSingleObject来执行。
以上仅仅考虑能使用InfoMaker来设计(修改)数据窗口,没有考虑到修改数据窗口后如何应用回去。
使用InfoMaker设计(修改)数据窗口并保存后,一种方法是重新打开对应窗口(前提是新的数据窗口对象覆盖原有同名数据窗口对象),这样就可以应用新的数据窗口对象属性了,但这样显然不专业。
另一种方法是使用LibraryExport获取数据窗口对象语法,然后通过数据窗口控件的create函数来重新创建,注意创建失败时的回滚、原有数据及状态的保存、检索参数值的保存等(这也涉及到较多的技术处理细节)。
另外,出于程序稳定性考虑,你还应该在应用新属性前检查哪些属性是不允许修改的,例如用于通常的数据维护的数据窗口,你不能允许用户增加栏位或删除栏位或修改栏位名称或修改栏位数据类型等,因为这样可能会导致引用列名错误、数据共享失败等。
另一个就是新属性应用的时机。
如果你是调用WINAPI的ShellExecuteEx函数并结合WaitForSingleObject来运行InfoMaker,你可以在调用后应用新属性。
如果你不等待InfoMaker结束后应用新属性,你可以创建一个菜单项(或相似功能对象)编写代码应用新属性。
通常在调用InfoMaker设计数据窗口并应用新属性后你还应该再做些善后工作,比如删除临时创建的库文件、恢复InfoMaker环境配置(需要先保存)。
当然,如果你确实想使用InfoMaker来设计报表,其中也涉及较多的技术处理细节,或许你还需要进行一些探索,希望本文能够给你带来一点启发(可能某些地方还是错误的),运用你比我更丰富的开发经验、更智慧的头脑通过不断的创新写出更简洁的实现代码,我相信,不久InfoMaker就能成为您所开发的系统的报表设计利器了。
InfoMaker是Sybase推出的一款非常优秀的报表设计及浏览工具,如果在你所开发的系统中能通过上述技巧巧妙结合,将为你的应用系统增加令人羡慕的特色。
在PB程序中的调用:
dw.dataobject = 'c:
\文件名.psr'
ds.dataobject = '\\192.168.0.2\report\文件名.psr'
关于InfoMaker
InfoMaker是功能强大的报告和数据维护工具。
可以使用InfoMaker创建以下对象:
∙报告(用于查看数据)。
∙表单(用于查看和更改数据)。
∙查询(用于自动检索报告或表单数据)。
∙管道(用于在数据库(或DBMS)之间传输数据)。
∙应用程序(用于结合报告和表单并将它们分发给用户)。
InfoMaker给多种基于桌面和服务器的数据库提供了内置接口。
在使用InfoMaker时,您是在图形环境中工作,在此环境中处理数据意味着您无须了解SQL。
在以图形方式创建报告和其它对象时,InfoMaker在后台创建所有的SQL语句。
有关InfoMaker的详细信息,请在[开始]菜单中选择[程序] > [Sybase] > [InfoMaker9.0] > [OnlineHelpFiles]。
也可以在应用程序中访问[Help]菜单,以获取完整的文档。
第1课:
入门
若要使用此InfoMaker教程,您必须连接到AdaptiveServerAnywhere示例数据库。
要连接到SQLAnywhereStudio9.0示例数据库,您需要创建一个数据库配置文件。
启动InfoMaker:
∙在[开始]菜单上,选择[程序] > [Sybase] > [InfoMaker9.0] > [InfoMaker]。
此时会出现InfoMaker主窗口。
该窗口包含PowerBar(它拥有用于访问InfoMaker绘制程序和联机帮助的按钮)。
使用InfoMaker为SQLAnywhereStudio示例数据库创建数据库配置文件
1.在InfoMaker中,打开[DatabaseProfiles]对话框。
从[Tools]菜单中选择[DatabaseProfile]。
2.选择[ODBODBC],然后单击[New]。
此时会出现[DatabaseProfileSetup]对话框。
3.在[Connection]选项卡上,输入下面的值:
oProfileName Anywhere
oDataSource ASA9.0Sample
oUserID DBA
oPassword SQL
4.单击[OK]。
此时,在ODBODBC下面就会列出配置文件Anywhere。
在创建数据源后连接到AdaptiveServerAnywhere示例数据库
1.如果[DatabaseProfiles]窗口尚未打开,请从[Tools]菜单中选择[DatabaseProfile]以打开该窗口。
2.从ODBC组中选择Anywhere,然后单击[Connect]。
第2课:
创建基本的报告
本节介绍如何创建基本的报告,如何预览和保存报告,以及如何在设计环境中更改设置。
创建报告
预览报告
保存报告
设置设计环境
创建报告
您可以创建多种类型的报告。
本节介绍如何根据单个表创建报告。
创建报告:
1.从[File]菜单中选择[New]。
2.在[New]对话框中,选择[Object]选项卡。
3.双击标记为[Tabular]的图标以选择表格显示样式。
将出现[TabularReportGenerator]向导。
4.选择[QuickSelect]数据源,并确保选择了[RetrieveonPreview]。
单击[Next]。
此时会出现[QuickSelect]对话框。
通过它可选择一个数据库表以及该表中的部分或全部列。
5.选择contact表。
6.选择以下列:
last_name、first_name、title、phone和fax。
(可能需要向下滚动。
)
InfoMaker可将选定的列移到对话框底部的网格中。
此网格可用于对列进行重新排序,并可用于提供排序和选择标准。
7.单击[OK]。
此时会出现[SelectColorandBorderSettings]对话框。
8.单击[Next]以使用缺省设置。
此时会出现一个对话框,其中包含您指定的所有选项。
9.单击[Finish]。
预览报告
在本节中,我们将在打印报告之前查看报告的外观。
InfoMaker主窗口顶部有工具栏。
工具栏的下面是预览窗格,它占据着窗口的其余部分。
预览窗格的顶部是标题栏。
在标题栏的左侧是所预览报告的名称,右侧是[最大化]/[最小化]按钮(用于调整预览窗格的大小)。
预览报告:
1.将指针放在预览窗格的右上角,然后单击[最大化]图标。
此时预览窗格会填充整个窗口。
注意,此时它包含报告的标题信息以及关于数据库的信息。
2.如果想打开或关闭标尺,请单击包含数据的部分。
然后,从[File]菜单中,选择[PrintPreviewRulers]。
3.单击预览窗格右上角的[最小化]图标,将预览窗格恢复到原来的大小和位置。
保存报告
保存报告:
1.从[File]菜单中选择[Save]。
即会出现[SaveReport]对话框。
2.在[Reports]字段中,键入contacts_by_jobrole。
于是它就成了报告的名称。
3.或者,您也可以通过在[Comments]框中添加注释来添加有关此报告的更多详细信息。
在[Comments]框中单击,并键入Thisreportshowsmycontactsgroupedbyjobrole.。
4.单击[OK]保存报告。
设置设计环境
本节中将对控件、网格和标尺进行修改。
设置设计环境:
1.从[Design]菜单中选择[Options]。
即会出现[ReportOptions]对话框。
2.确保选择了以下选项:
[ShowGrid]、[ShowRuler]以及[ShowEdges]和[RetrieveonPreview]。
3.确保没有选择[SnaptoGrid]。
4.您可以单击[Help]查看所有选项的说明。
5.单击[OK]。
第3课:
改进报告
本节将学习如何对报告进行各种改进,包括如下内容:
∙对数据进行排序。
∙创建和设置标头和标题的格式。
∙添加计算的字段,如日期、页码以及总计。
定义排序和分组
改进报告
定义排序和分组
在本节中,将按职务对联系人进行分组。
为此,先按职务对数据进行排序,然后按职务指定分组。
首先,定义排序。
对联系人进行排序
1.从[Rows]菜单中,选择[Sort]。
此时会出现[SpecifySortColumns]对话框。
2.将title从[SourceData]框拖到[Columns]框中。
3.将last_name和first_name拖到[Columns]框中。
4.将复选框保留为选中状态,以接受缺省的[Ascending]排序顺序。
5.单击[OK]。
接下来,基于title(职务)列定义分组,以便将所有具有相同职务的联系人分到一组:
对联系人进行分组:
1.从[Rows]菜单中,选择[CreateGroup]。
此时会出现[SpecifyGroupColumns]对话框。
2.将title拖到[Columns]框中,然后单击[OK]。
这样就完成了分组。
最大化[Preview]窗格,您将看到数据已经排序。
但是未显示分组。
改进报告
本节中将使用以下方法改进报告:
重新排列控件、添加标题和日期、添加页码以及添加总计。
调整组标题
1.将鼠标指针移到称为[HeaderGroupTitle]的灰色条上。
此时,指针就会变成双箭头。
2.将该区域向下拖动5个网格点。
3.将title列从预览窗格拖到组标题区域的底部。
4.在选定title列的同时,单击样式条上的B和I。
5.在预览视图中查看报告。
排列标题
1.将[FirstName]和[LastName]文本框拖到标题区域的右侧以填充空白区域。
2.将first_name和last_name列拖到详细信息区域的右侧以填充空白区域。
3.从[Edit]菜单中选择[Select] > [SelectText]。
此操作将选择所有标题。
因为此区域很窄,所以可能难以看出是否选择了这些标题。
4.在样式条上,单击[LeftJustification]按钮。
如果标题还不是粗体,请单击[Bold]按钮。
5.在[Preview]窗格中查看报告。
将标题添加到报告中
1.将标记为[Header]的灰色条向下拖动到约10个网格点。
2.从[Edit]菜单中选择[Select] > [SelectText]。
此操作将选择所有标题。
3.将所有标题向下拖动到灰色区域附近。
4.从[Insert]菜单中,选择[Control] > [Text]。
5.将指针移到[FirstName]框上面向上距页面顶部1个网格点的位置。
单击一次。
此操作将指定标题文本框的位置。
6.键入MyContacts
7.从样式条的下拉列表中选择字号14。
给报告添加一个日期
1.从[Insert]菜单中,选择[Control] > [Today()]。
2.将指针移到报告的左上角,然后单击。
此操作将日期添加到报告中。
为报告添加页码
1.将标记为[Footer]的灰色条向下拖到约4个网格点。
如有必要,请使用滚动条在[Design]视图底部留出地方。
将页脚条向下拖动,以便在页脚区域给页码留出地方。
2.从[Insert]菜单中选择[Control] > [Pagenofn]。
3.将指针放在页脚区域中心以下2个网格点的位置。
单击。
4.在样式条上选择字号10。
通过计算lastnames(姓)的数量来添加总计
1.将标记为[Summary]的灰色条向下拖动约6个网格点。
此操作将为总计留出地方。
2.从[Insert]菜单,选择[Control] > [ComputedField]。
3.将指针放在汇总区域中心以下约4个网格点的位置。
单击。
此时会出现[ModifyExpression]对话框。
4.在[Functions]框中,单击Count(#xforall)。
5.在[Columns]框中,单击[last_name]。
6.单击[Verify]。
此时会显示一条消息,指出表达式正确无误。
单击[OK]。
7.单击[OK]以完成计算字段的表达式定义。
设置总计的格式
1.从[Insert]菜单中,选择[Control] > [Text]。
2.将指针放在计算字段的左侧,然后单击。
3.键入Totalcontacts:
4.拖动文本框,使之与计算字段对齐。
5.可以使用以下方法将文本和计算字段捆绑在一起:
在按下鼠标左键的同时,用指针将两者圈起来,然后释放鼠标按钮。
6.在样式条上,选择字号10,然后单击B和I。
打印、保存和关闭报告:
1.从[File]菜单中,选择[PrintReport]。
2.在WindowsPrint对话框中,单击[OK]。
3.从[File]菜单中,选择[Close]。
4.如果提示保存所做的更改,请单击[Yes]。
参考信息
除报告外,InfoMaker还提供了以下功能:
创建图形、查询和数据输入表单。
有关InfoMaker的详细信息,请选择[开始] > [程序] > [SybaseSQLAnywhere9] > [InfoMaker9.0] > [OnlineHelpFiles]。
也可以在应用程序中单击[Help]菜单,以获取完整的文档。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- InfoMaker 报表 PB 程式 中的 应用