PowerBuilder实用技巧八则(一)

PowerBuilder实用技巧八则(一),第1张

本文介绍的方法和技巧都是笔者在实践中的一点积累 在此拿出来与大家一起分享 希望在阅读本文后会对您有所帮助或启发 文中如有任何不足之处还望同行们给予指教 在此 我先道声谢

一 实现运行窗口居中

众所周知 PowerBuilder 在以前的版本中提供了图形化的预览工具 可以很方便的在设计阶段实现窗口居中 但是 到了 似乎该项工具被取消了 也没有什么属性来设置 至少我没有找到 每当我们需要将窗口居中的时候只有一点一点地调整它的X Y值 这一点十分让人头痛 出于无奈 只好通过编程实现 我们只在每个需要居中的窗口的Open事件中写上这些代码就会实现窗口的自动居中

要实现窗口的自动居中 我们可以用函数Move()来实现 但是 由于我们开发出来的应用程序往往会在不同的设置环境中运行 虽然一般情况下是由我们为用户配置好的 但我们总不能保证用户显示器的设置模式不会改变 所幸的是 PB为我们提供了环境对象Environment 该对象其实是一个系统结构 其中保存了PB应用程序的运行平台信息 例如 代码集 CPU类型等 其中当然会有我们需要的屏幕宽和高 为了得到该结构我们可以用函数GetEnvironment() 该函数的作用是得到关于 *** 作系统 处理器和屏幕的系统信息 具体用法如下

Environment my_systemInteger li_ScreenWidth li_ScreenHeightGetEnvironment(my_system)// 得到屏幕的总宽度和长度li_ScreenWidth = PixelsToUnits(my_system ScreenWidth XPixelsToUnits!)li_ScreenHeight = PixelsToUnits(my_system ScreenHeight XPixelsToUnits!)// 函数PixelsToUnits()的作用是将屏幕的像数转换成PowerBuilder使用的单位 因为像数通常不用于方形中 具体用法请参见函数手册 然后就可以用Move()来实现窗口居中

This Move((li_ScreenWidth this Width)/ &

(li_ScreenHeight this Height)/ )

二 数据窗口中实现字段的组合

你有没有碰到这样的情况 我们输入了客户的详细地址资料 包括省份 城市 地址 邮编 当我们要给客户们邮寄信函时需要将他们的省份 城市 地址 邮编连成在一起打印出来 然而 这些信息是分开存储的 即存在不同的字段 这时我们就可以利用PowerBuiler提供的在数据窗口添加计算域(Compute Field)来实现字符字段的组合显示

现在假设客户的省份 城市 地址 邮编分别存放在不同的字段中 它们是Province City Address PC 我们要得到 邮编+省份+城市+地址 的格式 如 ( )江苏省无锡市人民路 号 具体实现如下

在需要显示的位置添加一个计算域(Compute Field)

在它的表达式栏中写上 ( + PC + ) + Province + City + Address

单击确定完成

很容易是不是 需要提醒大家的是 计算域只能用来显示 不能对它进行修改 因为它没有TAB属性 不能得到焦点

三 数据窗口中的条码显示

在数据窗口中显示条码是不是很神秘?这对于没有接触过条码的人来说也许是这样 其实 它简单的不能再简单了 别忘了我们在写文稿时是如何使文稿看上去更有艺术化 没错我们会给它用上各种字体 问题不就解决了吗?条码也是种字体 只不过我们看不懂罢了 我们只要将需要用条码显示的字段的字体换上相应的条码字体就行了 比如 常用的 of 条码字库等 这些字体大多数是免费的 可以到网上去下载 然后安装就行了

四 数据窗口的自动刷新技术

在我们编写诸如像库存 销售等应用系统时 总希望程序能动态的自动刷新库存量或销售量 比如说每隔 秒刷新一次 要实现这样的功能只要我们利用数据窗口的时间间隔属性(Timer Interval) 当该值为 时数据窗口不进行刷新 如果要使数据窗口以每一秒钟的频率刷新的话 只要将该值设为 即 毫秒

我们还可以为应用程序添加闪烁报警的功能 就拿库存量来说吧 最常用的是当某货物的库存量达到一个最低库存量时程序应能自动判别 并用警告色显示 通常是红色 此时 我们只要在运用了上述的方法后再在需要闪烁的字段上 比如 库存量 在它的颜色属性中写上相应的语句 下面这段代码实现 当某一物品的库存量小于 的时候 程序以红色闪烁显示警告

lishixinzhi/Article/program/SQL/201311/16246

Powerbuilder编制的程序打包分为两部分 动态库文件及配置ODBC数据源

 一 动态库文件

由PB 自带的打包工具:PowerBuilder Runtime Packager         在Database? Interfaces选项中 选择

ODBC Database Driver(ODB)                        Sybase Adaptive Server Enterprise(SYC) 

便可生成程序所需要的动态库安装程序包 然后将程序包中的文件复制到程序目录中即可

int RunCountsRunCounts=profileint( TheOneRun ini RunFlag GetRunFlag )string GetNowPathGetNowPath = GetCurrentDirectory( )String DataBasePathDataBasePath=GetNowPath+ \phonebook_database db String DataBasePath_dll_ DataBasePath_dll_ DataBasePath_dll_ =GetNowPath+ \dbodbc DLL DataBasePath_dll_ =GetNowPath+ \dbeng exe if RunCounts= then RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\ODBC Drivers Adaptive Server Anywhere RegString! Installed ) RegistrySet( HKEY_LOCAL_MACHINE\SOFARE\ODBC\ODBCINST INI\ODBC Translators Adaptive Server Anywhere Translator RegString! Installed )RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\Adaptive Server Anywhere Driver RegString! DataBasePath_dll_ ) RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\Adaptive Server Anywhere Setup RegString! DataBasePath_dll_ ) RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\ODBC Data Sources phonebook_database RegString! Adaptive Server Anywhere ) registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\odbc data sources phonebook_database regstring! Adaptive Server Anywhere )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database driver regstring! DataBasePath_dll_ )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database start RegString! DataBasePath_dll_ )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database uid regstring! dba )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database pwd regstring! sql )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database databasename regstring! phonebook_database )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database databasefile regstring! DataBasePath)registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database autostop regstring! yes )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database Integrated regstring! no )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database Description regstring! phonebook_database )setprofilestring( TheOneRun ini RunFlag GetRunFlag )end ifSQLCA DBMS = ODBC SQLCA AutoCommit =falseSQLCA database=DataBasePathSQLCA DBParm = Connectstring= DSN=phonebook_databaseuid=dbapwd=sql CONNECT USING SQLCAif sqlca sqlcode <>Then messagebox( 数据库连接失败 请重启程序 Question! Ok!) setprofilestring( TheOneRun ini RunFlag GetRunFlag )close(主窗体名)Else open(主窗体名) lishixinzhi/Article/program/PB/201311/24560

    一 PowerBuilder的产生

PowerBuilder是美国著名的数据库应用开发工具生产厂商PowerSoft推出的成功产品 其第一版于 年 月正式投入市场 它是完全按照客户/服务器体系结构研制设计的 采用面向对象技术 图形化的应用开发环境 是数据库的前端开发工具

二 PowerBuilder的特点

它支持应用系统同时访问多种数据库 其中既包括Oracel Sybase之类的大型数据库 又包括FOXPRO之类支持ODBC接口的小型数据库 PowerBuilder是完全可视化的数据库开发工具 它提供了大量的控件 大大加快了项目的开发速度 也使开发者更容易掌握数据库的开发

它使用的编程语言叫做PowerScripr 它也是一种高级的 结构化的编程语言 PowerScript 提供了一套完整的嵌入式SQL语句 开发人员可以像使用其它语句一样自由地使用SQL语言 这样就大大增强了程序 *** 纵和访问数据库的能力 可以说PowerBuilder既适合初学者快速学习数据库的开发 又可以让有经验的开发人员开发出功能强大的数据库 是一种适用面非常广的开发工具

PowerBuilder是一个用来进行客户/服务器开发的完全的可视化开发环境 使用PowerBuilder 你可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口 这是一个总的概念 实际上是开发人员使用PowerBuilder去开发应用程序 由于所开发的各种应用程序充分利用了图形用户接口(GUI)的优点 所以PowerBuilder被认为是一个图形工具

在客户/服务器结构的应用中 PowerBuilder具有描述多个数据库连接与检索的能力 特别是PowerBuilder能从大多数流行的RDBMS中存取数据 且不管数据存放在什么地方 另外 各种应用程序又可以独立于RDBMS 因为PowerBuilder可以使用数据库的标准 *** 作语言SQL(结构化查询语言)进行

使用PowerBuilder 可以很容易地开发出功能强大的图形界面的访问服务器数据库的应用程序 PowerBuilder提供了建立符合工业标准的应用程序(例如订单登记 会计及制造系统)所需的所有工具

PowerBuilder应用程序由窗口组成 这些窗口包含用户与之交互的控件 开发人员可以使用所有标准空间(如按钮 复选框 下拉式列表框或编辑框)以及PowerBuilder提供的特殊的使应用程序更易于开发和使用的控件

通常人们把PowerBuilder看成是一种开发工具 实际上它比其他工具强得多 是一种强有力的开发环境 开发人员不仅能用它来开发用户容易使用的各种应用程序还可以通过PowerBuilder 修改数据库 利用 多个内部定义函数 可以开发能和其他应用程序进行的各种应用程序

PowerBuilder正在成为客户/服务器应用开发的标准 相对于其他任何客户/服务器开发环境 PowerBuilder使开发人员的工作更快 成本更低 质量更高 功能更强

PowerBuilder为应用开发提供了全面综合性的支持 可以分别概括为如下几点

·事件驱动的应用程序·功能强大的编程语言与函数 ·面向对象的编程 ·跨平台开发 ·开放的数据库连结系统      

三 PowerBuilder开发环境

lishixinzhi/Article/program/PB/201311/24547


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11840207.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存