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

作者&投稿:吴怎 (若有异议请与网页底部的电邮联系)
~

  我从 年的开始使用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




基用例和包含用例的功能分别是什么?
包含关系是:一个用例可以简单地包含其他用例具有的行为,并把它所包含 的用例行为作为自身行为的一部分。扩展关系是:一个用例被定义为基础用例的增量 扩展,是把新的行为插入到已有的用例中的办法。核心原则:当从事开发工作时,你应当主张最简单的解决方案就是最好的解决方案。不要过分构建(overbuild...

不规则过去式带翻译要30个
overbore overborne overbid 漫天要价 overbid overbidden, overbid overblow 吹过 overblew overblown overbuild 建造过多 overbuilt overbuilt overbuy 买得过贵 overbought overbought overcast 遮蔽 overcast overcast overcome 克服 overcame overcome overdo 做得过分 overdid overdone overdraw 透支 overdrew ...

小学阶段英语动词词组
overbuild overbuilt overbuilt overbuy overbought overbought overcast overcast overcast overcome overcame overcome overdo overdid overdone overdraw overdrew overdrawn overdrive overdrove overdriven overeat overate overeaten overfeed overfed overfed overfly overflew overflown overgrow overgrew overgrown ...

bug的过去分词
overbear overbore overborne overbid overbid overbidden,overbid overblow overblew overblown overbuild overbuilt overbuilt overbuy overbought overbought overcast overcast overcast overcome overcame overcome overdo overdid overdone overdraw overdrew overdrawn overdrive overdrove overdriven overeat overate over...

在现实中,非延续性动词转化为延续性动词。(常见)
overbear overbore overborneoverbid overbid overbidden,overbidoverblow overblew overblownoverbuild overbuilt overbuiltoverbuy overbought overboughtovercast overcast overcastovercome overcame overcomeoverdo overdid overdoneoverdraw overdrew overdrawnoverdrive overdrove overdrivenovereat overate overeatenoverfeed ...

不规则动词表
overbuild overbuilt overbuiltoverbuy overbought overboughtovercast overcast overcastovercome overcame overcomeoverdo overdid overdoneoverdraw overdrew overdrawnoverdrive overdrove overdrivenovereat overate overeatenoverfeed overfed overfedoverfly overflew overflownovergrow overgrew overgrownoverhang overhung over...

请问谁有英语不规则动词表,最好越多越好,1000个词汇以上,谢谢
overbear overbore overborneoverbid overbid overbidden,overbidoverblow overblew overblownoverbuild overbuilt overbuiltoverbuy overbought overboughtovercast overcast overcastovercome overcame overcomeoverdo overdid overdoneoverdraw overdrew overdrawnoverdrive overdrove overdrivenovereat overate overeatenoverfeed ...

要各种单词的过去式,急~~~
overbear overbore overborne overbid overbid overbidden, overbid overblow overblew overblown overbuild overbuilt overbuilt overbuy overbought overbought overcast overcast overcast overcome overcame overcome overdo overdid overdone overdraw overdrew overdrawn overdrive overdrove overdriven overea...

谁有初中英语动词表 包括(原行,单三,现在分词,过去式)
overbid overbid overbidden,overbid overblow overblew overblown overbuild overbuilt overbuilt overbuy overbought overbought overcast overcast overcast overcome overcame overcome overdo overdid overdone overdraw overdrew overdrawn overdrive overdrove overdriven overeat overate overeaten overfeed overfed over...

高分!帮忙找复合动词
如overwork(过度工作),withhold(扣留),cross-question(盘问),upbuild(建立),uplift(高举),fast-talk(花言巧语地企图说服),off-load(卸货),outeat(吃得比……多),outgo(比……走得远)还有overrate, underline, outrun downsize, upgrade whitewash, blacklist, foulmouth brow...

鄂城区15287297127: Powerbuilder为什么会没落?现在有那种工具可以替代PB做数据库开发 -
凤侦复方: 只想说powerbuilder真的很老了,pb语言曾经在02,03年因为其开发快而红极一时,但是现在基本都灭寂了,原因是没有很好的扩展性,不信的话lz搜索一下pb的问题,会发现很多的提问和回答都是06年以前的,所以现在powerbuilder是一个被淘汰的语言,当然一些公司还用pb很大一部分是他们早先产品是pb开发的,而且他们在维护时不可能用新的语言做一个系统,所以现在pb不是 一个流行的语言,建议楼主看看编辑java的esclipe或微软的vistual statio

鄂城区15287297127: Powerbuilder为什么会没落 -
凤侦复方: 个人感觉主要是后续开发者用 的人少了,比如说学生在学校全学java,.net,他们毕业后到公司直接就能用,如果pB在学校都学,那肯定会火的

鄂城区15287297127: powerbuilder数据库很常用么 -
凤侦复方: 1、powerbuilder是sybase公司的编程语言,不是数据库,这门语言的特点是开发C/S架构数据库管理系统的速度非常快,它有个数据窗口专利,对于数据库管理系统中的输入、编辑、删除几乎是一句话搞定,剩下的时间都是在画窗口和控制逻辑关系,呵呵 2、不常用,虽然有他的优势,但劣势也比较明显,比如底层支持几乎没有,虽然现在也推出了.net概念,甚至直接把C/S程序转换成B/S模式(试过一次,没转成功).不过现在的版本可以直接开发.NET了(没试过).其实主要的原因是,J2EE程序卖的贵,powerbuilder嘛,贱卖几乎,呵呵

鄂城区15287297127: powerbuilder是什么开发语言 -
凤侦复方: PowerBuilder开发语言简称(pb语言)是美国Sybase公司推出的数据库开发工具

鄂城区15287297127: 有谁知道什么是PowerBuilder呢?
凤侦复方: 特别是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什么地方;另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder可以使用数据库的标准操作语言SQL(结构化查询语言)进行

鄂城区15287297127: 什么是powerbuilde编程?可以举一个简单的案例吗?? -
凤侦复方: PowerBuilder美国Sybase公司研制的一种新型、快速开发工具,是客户机/服务器结构下,基于Windows3.x、Windows95和WindowsNT的一个集成化开发工具.它包含一个直观的图形界面和可扩展的面向对象的编程语言PowerScript,提供与当...

鄂城区15287297127: power builder是什么软件?作用是? -
凤侦复方: PowerBuilder是一个图形化的应用程序开发环境.使用PowerBuilder可以很容易地开发和数据库打交道的商业化应用软件.PowerBuilder开发的应用软件由窗口构成,窗口中不仅可以包含按...

鄂城区15287297127: .pdb是干嘛的??power designer和power builder是干嘛用的??? -
凤侦复方: 应该是pbd,power builder编写的程序编译后生成的库文件,类似 DLL 库文件 power designer 是sybase 公司的一个建模工具 power builder 也是sybase公司的,一个主要开发BS结构的数据库管理程序的编程语言

鄂城区15287297127: CBuild 和 PowerBuilder是什么?
凤侦复方: CBUILD,简称CBC,保兰德公司的基于C++的编程工具; POWERBUILDER,简称PB,赛贝思公司的基于C/S开发的编程工具,对于数据库有较强的快速开发能力; 两者区别,一个是C++标准语言,一个是POWER语言.OVER.

鄂城区15287297127: PowerBuilder 是什么编程工具?详细
凤侦复方: 简单说就是编写数据库的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网