PowerBuilder鲜为人知但又绝对好用的技巧和窍门

 我来答
一袭可爱风1718
2022-09-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6536
采纳率:99%
帮助的人:36.9万
展开全部

  我从 年的开始使用PowerBuilder 那时还没有PFC 实际上 class library(类库) 的概念那时还是一个新名词 我们不得不使用PowerBuilder本身来从头开始创建每一个对象 特别的是 DataWindow使RAD(快速应用开发)变得真正的高效起来 下面让我们 从一些简单有用的例子开始吧

   将Tabular DataWindow转换为Grid DataWindow

  也许这是一个最有用的小窍门了 它可以将tabular DataWindow转换为grid DataWindow 反之亦然 在PowerBuilder x版本里 您可以右键单击一个对象来编辑源文件(edit source) 这比先前必须将教本导出再导入要简单的多 要将一个tabular DataWindow转换为grid DataWindow 只需要在library painter中右键单击DataWindow对象 在弹出菜单中选择Edit Source 打开script editor 变量 processing 控制着DataWindow的显示类型 将值改为 DataWindow会变成grid 改为 DataWindow就会变成tabular

   将DataWindow数据源从Select语句改变为Stored Procedure(存储过程)

  这也是一个非常有用的技巧 它涉及一些基本的技术 首选 创建或者确定一个合适的Stored Procedure 然后用这个Stored Procedure作数据源创建一个新的DataWindow 在library painter里 右键单击这个DataWindow 在弹出菜单中选择Edit Source 打开script editor 定位到以 Procedure 开头的行

  确保整行都被选中 将该行拷贝到剪贴板 然后找到您希望将数据源更改成存储过程的DataWindow 同样使用Edit Source打开script editor 定位到以 Retrueve 开头的行

  仍须选中整个行(它也许不止一行) 现在将整个Retrieve语句替换为剪贴板中的Procedure语句 关闭script editor 您现在就拥有了一个基于Stored Procedure的DataWindow

  为什么说这个技巧非常有用呢?这个技巧使您既可以保留DataWindow的设计又可以利用stored procedures 尤其是在您有许多基于SQL语句的DataWindow在数据库不断增长直到面临性能问题的时候 这项技术不仅节省了开发人员的大量时间 还能够保留原有的DataWindow界面 而用户丝毫不会察觉

   用stored procedure来更新DataWindow

  当DataWindow的数据源变成stored procedure Datawindow的更新能力就丢失了 这让很多开发人员不愿用stored procedure作为DataWindow的数据源 很多年以来 我一直避免使用stored procedure也是出于这个原因 无论如何 Stored Procedure Update 功能是奇妙的 首先 确定或者创建一个用于更新 插入 删除记录的stored procedures 打开DataWindow对象 从菜单栏上选择Rows > Stored Procedure Update

  在Tab页面上分别为insert delete update选择选择用于对应的存储过程 PowerBuilder会逐行列出stored procedure的参数 您可以为每个参数配置对应的DataWindow Column

  在stored procedure update配置完成后(可能需要保存并退出DataWindow Painter 然后重新打开) 选择菜单 Rows>update properties 您会发现 Stored Procedure 如同一个正常的表名一样出现在 Table to Update 下拉列表中

  如果您希望更新多张表 stored procedure update是一个很好的选择 任何一个利用过重置update标记等方法来完成多表更新的开发人员无疑会发现这种方法的非常的有价值

   在Powerscript中从stored procedure接收数据

  随着stored procedures的频繁使用 您肯定也希望能够直接在Powerscript中直接通过stored procedures来获取数据 典型的 在Powerscript中 我们使用datastore来完成这个任务 使用stored procedures的最终结果就是可以减少一些DataWindow对象的存在 而且它允许更多的代码复用 相同的procedure既可以在后端完成一个 Get 的请求 也可以用于前端的数据展示 如需在Powerscript中利用stored procedure接收数据 请参照以下脚本

   OpenUserObjectWithParm

  许多年前我曾在PowerSoft担任技术顾问 有一次在参加PowerSoft咨询会议的时候 无意中听到一个客户希望能够得到一些有关使用OpenUserObjectWithParm函数的一些建议 那个技术顾问从未听说过这个函数 我永远难忘那次会谈 它使我确信OpenUserObjectWithParm这个函数在很大程度上被大家忽略了 其实这个函数非常的有用 它允许你向一个user object传递参数 告诉它在Window上的什么位置来自行创建 它被存储在userobjects数组中的位置(可在runtime进行操作 window control[]) 还有开发人员能够想到的任何其它的参数 举个简单的例子 我们打开一个DataWindow 并允许用户从一个calendar对象中选择日期

  下面这行代码位于Window的Open事件中 它将创建一个类型为uo_drop_down_calendar的userobject x y座标分别为 并且标题显示为 Begin Date

  OpenUserObjectWithParm(iuo_begin Begin Date )

  这个技巧还有很多其他的用处

   SQL Tool

  有很多次 在作PowerBuilder应用的技术支持时 我们需要检测和定位一些关于数据的问题 但我们并不总可以连接到产品的数据库上 这种情况下 在前端的PowerBuilder应用中以系统管理员的身份执行SQL语句的方法就派上用场了 我为此编写了一个很有用的工具软件

  您可以从dropdown DataWindow中任意选择数据库表和字段名 轻松的构建需要的SQL语句而不用担心记不住那些字段的名字 还可以将SQL语句保存起来以备日后使用 例如 您的用户需要找出数据库中所有的可用的address类型 它很简单 您可以通过创建SQL语句来演示给他或她看

  用户将一条SQL语句输入到DataWindow中 然后点击 Execute(执行) 检索结果就会出现在下面的区域 用户还可以将数据结果另存为Excel等等

  如果用户需要更详细的SQL语句 您可以写下来然后e mail给他 用户只需要拷贝粘贴到窗体里就可以执行了 这种方法可以用于清理数据库问题 创建或执行stored procedures 创建特别的报告 甚至授权 您可以在enterprise manager作几乎任何事情 这个工具软件非常的有用 无论如何 要小心的使用 以免用户创建笛卡儿积或者恶意的更新数据

   保存动态创建的DataWindow

  让我们再深入讨论这个工具(SQL Tool) 倘若您的客户急需一个定制的报表 您可能想先飞速的的完成报表 等回来以后再重新规划集成到应用菜单中 于是 在您的手提电脑上写一个stored procedure e mail给您的系统管理员 您的系统管理员在SQL Tool窗口打开脚本

  用户通过执行这段脚本来创建stored procedure 您再告诉他们应该如何配置参数 然后执行存储过程 结果被输出到result set(结果集)窗口 现在看看如何能把这个结果保存成一个DataWindow

  打开DataWindow页面 然后点击 Create DataWindow

  现在点击 Retrieve DataWindow 刚才的结果集出现在DataWindow中 如果您希望保存这个DataWindow以便以后使用 点击 Save DataWindow 就可以了 您可以适当的修改格式并将它封装为一个报表

   结语

  作为PowerBuilder的开发人员 我们总是被要求完成惊人数量的工作 用户或是项目经理可能会要求极其苛刻 对一个开发人员来说 储备一个 军械库 的可依赖的技术和例子是非常重要的 PowerBuilder的队伍已经不像从前那么壮大了 在与那些大公司以及 *** 机构的IT经理们的接触过程里 我经常被迫去反驳那些所谓的PowerBuilder早已是 骨灰 (原文用了legacy 遗产) 过时货 废弃的 甚至 年代的技术 的断言 事实上 PowerBuilder仍旧是目前最棒的RAD开发工具 它可以让开发人员只需大约数小时的功夫就完成设计原型和产品级的代码 而非数天乃至数周 这也显示出开发环境是否以团队为导向的区别

  作为PowerBuilder的开发人员 我们拥有一个优于我们的其他IT同行最强大的工具 我真的希望以上这些技巧能够帮助初学者以及那些中级的开发人员 更加的信赖PowerBuilder

      编辑推荐

       ASP NET开发培训视频教程

lishixinzhi/Article/program/PB/201311/24591

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式