本文介绍的方法和技巧都是笔者在实践中的一点积累,在此拿出来与大家一起分享。希望在阅读本文后会对您有所帮助或启发。文中如有任何不足之处还望同行们给予指教。在此,我先道声谢。
一、实现运行窗口居中
众所周知,powerbuilder 7.0在以前的版本中提供了图形化的预览工具,可以很方便的在设计阶段实现窗口居中。但是,到了7.0似乎该项工具被取消了,也没有什么属性来设置,至少我没有找到。每当我们需要将窗口居中的时候只有一点一点地调整它的x,y值,这一点十分让人头痛。出于无奈,只好通过编程实现。我们只在每个需要居中的窗口的open事件中写上这些代码就会实现窗口的自动居中。
要实现窗口的自动居中,我们可以用函数move()来实现。但是,由于我们开发出来的应用程序往往会在不同的设置环境中运行,虽然一般情况下是由我们为用户配置好的,但我们总不能保证用户显示器的设置模式不会改变。所幸的是,pb为我们提供了环境对象environment,该对象其实是一个系统结构,其中保存了pb应用程序的运行平台信息,例如,代码集,cpu类型等。其中当然会有我们需要的屏幕宽和高。为了得到该结构我们可以用函数getenvironment()。该函数的作用是得到关于操作系统,处理器和屏幕的系统信息。具体用法如下:
environment my_system integer li_screenwidth, li_screenheight getenvironment(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)/2, &
(li_screenheight - this.height)/2 )
二、数据窗口中实现字段的组合
你有没有碰到这样的情况,我们输入了客户的详细地址资料,包括省份,城市,地址,邮编。当我们要给客户们邮寄信函时需要将他们的省份,城市,地址,邮编连成在一起打印出来。然而,这些信息是分开存储的,即存在不同的字段。这时我们就可以利用powerbuiler提供的在数据窗口添加计算域(compute field)来实现字符字段的组合显示。
现在假设客户的省份,城市,地址,邮编分别存放在不同的字段中,它们是province,city,address,pc。我们要得到“邮编+省份+城市+地址”的格式,如:“(214001)江苏省无锡市人民路1号。",具体实现如下:
1、在需要显示的位置添加一个计算域(compute field)
2、在它的表达式栏中写上“ '(' + pc + ' )' + province + city + address ”
3、单击确定完成。
很容易是不是。需要提醒大家的是,计算域只能用来显示,不能对它进行修改,因为它没有tab属性,不能得到焦点。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器