




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 /P report /L c:/test.pbl /O d_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:文件名.psrds.dataobject=192.168.0.2report文件名.psr关于 InfoMakerInfoMaker 是功能强大的报告和数据维护工具。可以使用 InfoMaker 创建以下对象: 报告(用于查看数据)。 表单(用于查看和更改数据)。 查询(用于自动检索报告或表单数据)。 管道(用于在数据库(或 DBMS)之间传输数据)。 应用程序(用于结合报告和表单并将它们分发给用户)。InfoMaker 给多种基于桌面和服务器的数据库提供了内置接口。在使用 InfoMaker 时,您是在图形环境中工作,在此环境中处理数据意味着您无须了解 SQL。在以图形方式创建报告和其它对象时,InfoMaker 在后台创建所有的 SQL 语句。有关 InfoMaker 的详细信息,请在 开始 菜单中选择 程序 Sybase InfoMaker 9.0 Online Help Files。也可以在应用程序中访问 Help 菜单,以获取完整的文档。第 1 课:入门若要使用此 InfoMaker 教程,您必须连接到 Adaptive Server Anywhere 示例数据库。要连接到 SQL Anywhere Studio 9.0 示例数据库,您需要创建一个数据库配置文件。启动 InfoMaker: 在 开始 菜单上,选择 程序 Sybase InfoMaker 9.0 InfoMaker。此时会出现 InfoMaker 主窗口。该窗口包含 PowerBar(它拥有用于访问 InfoMaker 绘制程序和联机帮助的按钮)。使用 InfoMaker 为 SQL Anywhere Studio 示例数据库创建数据库配置文件1. 在 InfoMaker 中,打开 Database Profiles 对话框。从 Tools 菜单中选择 Database Profile。2. 选择 ODB ODBC,然后单击 New。此时会出现 Database Profile Setup 对话框。3. 在 Connection 选项卡上,输入下面的值:o Profile NameAnywhere o Data SourceASA 9.0 Sample o User IDDBA o PasswordSQL 4. 单击 OK。此时,在 ODB ODBC 下面就会列出配置文件 Anywhere。在创建数据源后连接到 Adaptive Server Anywhere 示例数据库1. 如果 Database Profiles 窗口尚未打开,请从 Tools 菜单中选择 Database Profile 以打开该窗口。2. 从 ODBC 组中选择 Anywhere,然后单击 Connect。第 2 课:创建基本的报告本节介绍如何创建基本的报告,如何预览和保存报告,以及如何在设计环境中更改设置。创建报告预览报告保存报告设置设计环境创建报告您可以创建多种类型的报告。本节介绍如何根据单个表创建报告。创建报告:1. 从 File 菜单中选择 New。2. 在 New 对话框中,选择 Object 选项卡。3. 双击标记为 Tabular 的图标以选择表格显示样式。将出现 Tabular Report Generator 向导。4. 选择 Quick Select 数据源,并确保选择了 Retrieve on Preview。单击 Next。此时会出现 Quick Select 对话框。通过它可选择一个数据库表以及该表中的部分或全部列。5. 选择 contact 表。6. 选择以下列:last_name、first_name、title、phone 和 fax。(可能需要向下滚动。)InfoMaker 可将选定的列移到对话框底部的网格中。此网格可用于对列进行重新排序,并可用于提供排序和选择标准。7. 单击 OK。此时会出现 Select Color and Border Settings 对话框。8. 单击 Next 以使用缺省设置。此时会出现一个对话框,其中包含您指定的所有选项。9. 单击 Finish。预览报告在本节中,我们将在打印报告之前查看报告的外观。InfoMaker 主窗口顶部有工具栏。工具栏的下面是预览窗格,它占据着窗口的其余部分。预览窗格的顶部是标题栏。在标题栏的左侧是所预览报告的名称,右侧是 最大化/最小化 按钮(用于调整预览窗格的大小)。 预览报告:1. 将指针放在预览窗格的右上角,然后单击 最大化 图标。此时预览窗格会填充整个窗口。注意,此时它包含报告的标题信息以及关于数据库的信息。2. 如果想打开或关闭标尺,请单击包含数据的部分。然后,从 File 菜单中,选择 Print Preview Rulers。3. 单击预览窗格右上角的 最小化 图标,将预览窗格恢复到原来的大小和位置。保存报告保存报告:1. 从 File 菜单中选择 Save。即会出现 Save Report 对话框。2. 在 Reports 字段中,键入 contacts_by_jobrole。于是它就成了报告的名称。3. 或者,您也可以通过在 Comments 框中添加注释来添加有关此报告的更多详细信息。在 Comments 框中单击,并键入 This report shows my contacts grouped by job role.。4. 单击 OK 保存报告。设置设计环境本节中将对控件、网格和标尺进行修改。设置设计环境:1. 从 Design 菜单中选择 Options。即会出现 Report Options 对话框。2. 确保选择了以下选项:Show Grid、Show Ruler 以及 Show Edges 和 Retrieve on Preview。3. 确保没有选择 Snap to Grid。4. 您可以单击 Help 查看所有选项的说明。5. 单击 OK。第 3 课:改进报告本节将学习如何对报告进行各种改进,包括如下内容: 对数据进行排序。 创建和设置标头和标题的格式。 添加计算的字段,如日期、页码以及总计。定义排序和分组改进报告定义排序和分组在本节中,将按职务对联系人进行分组。为此,先按职务对数据进行排序,然后按职务指定分组。首先,定义排序。对联系人进行排序1. 从 Rows 菜单中,选择 Sort。此时会出现 Specify Sort Columns 对话框。2. 将 title 从 Source Data 框拖到 Columns 框中。3. 将 last_name 和 first_name 拖到 Columns 框中。4. 将复选框保留为选中状态,以接受缺省的 Ascending 排序顺序。5. 单击 OK。接下来,基于 title(职务)列定义分组,以便将所有具有相同职务的联系人分到一组:对联系人进行分组:1. 从 Rows 菜单中,选择 Create Group。此时会出现 Specify Group Columns 对话框。2. 将 title 拖到 Columns 框中,然后单击 OK。这样就完成了分组。最大化 Preview 窗格,您将看到数据已经排序。但是未显示分组。改进报告本节中将使用以下方法改进报告:重新排列控件、添加标题和日期、添加页码以及添加总计。调整组标题1. 将鼠标指针移到称为 Header Group Title 的灰色条上。 此时,指针就会变成双箭头。2. 将该区域向下拖动 5 个网格点。3. 将 title 列从预览窗格拖到组标题区域的底部。4. 在选定 title 列的同时,单击样式条上的 B 和 I。5. 在预览视图中查看报告。排列标题1. 将 First Name 和 Last Name 文本框拖到标题区域的右侧以填充空白区域。2. 将 first_name 和 last_name 列拖到详细信息区域的右侧以填充空白区域。3. 从 Edit 菜单中选择 Select Select Text。此操作将选择所有标题。因为此区域很窄,所以可能难以看出是否选择了这些标题。4. 在样式条上,单击 Left Justification 按钮。如果标题还不是粗体,请单击 Bold 按钮。5. 在 Preview 窗格中查看报告。将标题添加到报告中1. 将标记为 Header 的灰色条向下拖动到约 10 个网格点。2. 从 Edit 菜单中选择 Select Select Text。此操作将选择所有标题。3. 将所有标题向下拖动到灰色区域附近。4. 从 Insert 菜单中,选择 Control Text。5. 将指针移到 First Name 框上面向上距页面顶部 1 个网格点的位置。单击一次。此操作将指定标题文本框的位置。6. 键入 My Contacts7. 从样式条的下拉列表中选择字号 14。给报告添加一个日期1. 从 Insert 菜单中,选择 Control Today()。2. 将指针移到报告的左上角,然后单击。此操作将日期添加到报告中。为报告添加页码1. 将标记为 Footer 的灰色条向下拖到约 4 个网格点。如有必要,请使用滚动条在 Design 视图底部留出地方。将页脚条向下拖动,以便在页脚区域给页码留出地方。2. 从 Insert 菜单中选择 Control Page n of n。3. 将指针放在页脚区域
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市中医院胸腰椎椎弓根螺钉置入精准度考核
- 2025年浙江大学医学院附属儿童医院招聘心电图室劳务派遣技师1人模拟试卷及完整答案详解1套
- 衡水市中医院咽部异物取出术考核
- 上海市人民医院安全生产法规与岗位责任制专项考试
- 北京市中医院钙磷代谢紊乱诊疗思维考核
- 2025年西安医学院第二附属医院招聘(84人)模拟试卷及答案详解1套
- 2025河北沧州市海兴县招聘社区工作者27人模拟试卷及答案详解(全优)
- 2025中心医院肿瘤影像诊断考核
- 秦皇岛市中医院便秘综合治疗方案制定考核
- 2025广西-东盟经济技术开发区社会福利院拟聘人员考前自测高频考点模拟试题及答案详解参考
- 糖皮质激素类药物临床应用指导原则(2023版)解读
- JT-T-1211.1-2018公路工程水泥混凝土用快速修补材料第1部分:水泥基修补材料
- 水利工程运维水利工程运行和日常维修养护方案
- 《客舱安全与应急处置》-课件:灭火设备:洗手间灭火系统及其他
- 公共卫生的村医培训
- 红领巾系法及标准敬礼姿势
- 超高龄病人ERCP麻醉管理课件
- 培养学生的思辨与分析能力
- 动物遗传育种学课件
- 不忘初心混声四部合唱谱孟卫东编
- 森林抚育投标方案
评论
0/150
提交评论