powerbuilder
wolfalcon
这个作者很懒,什么都没留下…
展开
-
pb dw中checkbox控件在点选后马上取消勾选的方法
需求:pb dw中的checkbox列在点击选择时,判断之前某列的值,如不满足条件,则取消勾选。使用过的方法及解释:1、在itemchanged事件中写 dw.objext.cbx[row] = 0. 不能达到要求。虽然itemchanged事件中的data变成了0.但是dw行中的checkbox的勾选状态并未被取消。2、在itemchanged事件中写dw.setitme(row, ...原创 2019-10-13 17:30:39 · 1892 阅读 · 0 评论 -
PB dw右键点击行变蓝,左键点击行不变色单元格变色,左右键交替换行点击上一次点击的行选取颜色不消失
在dw中要实现这样一个功能:左键点击选中某行(行变色),右键点击选中某行(行变色)同时弹出一个右键菜单。结果出现如下现象:右键点击如下左键点击如下:左键点击李桂芝,上一次右键点击的李玉海并没有灰色背景色。而左键点击却只让单元格变色并没有让整行变色。首先:李桂芝单元格变蓝是因为dw可编辑造成的,变成不可编辑后李桂芝变成黑色。那么如何使单元格不变成黑色呢?在dw的属性界...原创 2018-11-29 18:27:19 · 1470 阅读 · 0 评论 -
PB Error:Error accessing external object property *** at line 0 in open event of object *********.
pb用的好好的突然有一天在debug时出现莫名其妙的错误入图: 问题的关键在于错误出现在 line 0 的位置,也就是说根本无法调试,页面更刚open就弹出这个错误框,让你想解决都无法下手。最终发现这个问题是有debug中的watch变量的设置引起的。入图: 打开debug界面在watch中发现设置了观察了一个djh的变量,而如果你要查看的界面当中刚好有dw3这个空间,而这个dw3...原创 2018-11-25 11:07:22 · 13118 阅读 · 2 评论 -
pb中dw调用存储过程
在数据库中先写一个简单的存储过程CREATE Procedure [dbo].[sp1]( @Gid int)ASdelete from t_Test where Gid=@Gidselect * from t_Test --存储过程中加上这个语句是为了让前段dw在删除后能够在dw中显示删除后的结果集,如果不加这句话 --dw...原创 2018-05-29 13:12:01 · 1714 阅读 · 2 评论 -
win7_64下安装powerbuilder 12.5的技巧
下win7下安装pb12.5主要是想用pb.net的部分。第一次安装忘记了安装.net framework简直是罪过,但是经过这次实验证实后装也是可以滴。安装之后运行pb.net 12.5出现如下提示:解决方法非常简单, 在pb.net 12.5的图标的属性中选择以管理员身份运行此程序,但不能选择兼容性兼容模式,如果选择兼容模式依然会出现上述错误。 解决这个问题用...原创 2018-05-22 11:52:23 · 8417 阅读 · 2 评论 -
PB9安装时停留在setup is running的解决办法
安装过无数次pb9了,每一次都很顺利,可是这次在重装了win7后,再次安装pb9.0安装程序却卡在setup is running界面不动了。上网查,有说进入安全模式安装的,有说停止其他应用程序的,首先试了一下进入安全模式的方法,没用!又试着关闭了右下角运行的所有应用程序,依然没用!分析了一下,既然有人用关闭应用程序的方法能够解决,那么肯定是某个进程组织了PB9安装界面的弹出,马上调出任务管理器,原创 2018-05-04 21:48:29 · 6251 阅读 · 2 评论 -
pb 改变dw选中行颜色的小技巧
在dw的列上查看属性,找到Font属性tab.如图:点击backgroundColor右侧的小按钮。弹出对话框,如图:在expression当中输入上图所示的语句。该列所在的单元格,当所在行被选中时就会呈现设定的背景颜色了。原创 2017-01-16 18:08:34 · 6915 阅读 · 0 评论 -
pb dw datasource选择两个表联合查询,当其中一个表没有对应记录时的解决办法
pb dw datasource选择两个表联合查询,当其中一个表没有对应记录时的解决办法当两个表进行联合查询,以两表的某一公共字段相等作为查询条件。例如以表1为主表查询,当无论表二中有无对应的记录,都显示表1中查询到的记录。在dw的datasource中应做如下设置这样,在dw中就会得到预期的记过。如果选择第一项。则当表2中无对应记录时,则dw不会显示任何记录。而如果在dw原创 2017-01-03 23:29:36 · 3210 阅读 · 0 评论 -
pb9 如何新建一个library
在application上右键——选properties——而后在library list下——new....就可以了原创 2016-10-20 12:54:00 · 2392 阅读 · 0 评论 -
PB 通过 InternetConnect 函数连接ftp服务器
一、首先设置ftp服务器:我的电脑右键——管理——internet信息服务——网站 如图:网站右键——添加Ftp站点——填写信息 如图:下一步 如图:下一步 如图:完成——在网站列表中选中刚建立的ftp站点——右侧选择基本设置——测试连接会出现如图错误:回到基本设置——连接为 如图:确定——回到基本设置——测试连接 如图:...原创 2019-04-04 00:06:55 · 2544 阅读 · 0 评论 -
PB powerbuilder程序设计中的尺度单位PBU
在PowerBuilder中除了DataWindow画扳网格尺寸(可以选择像素、厘米等等),其他都是用PowerBuilder单位(PBU)计量的。而这个PBU单位是有区分X、Y坐标的,也就是垂直方向和水平方向。比如我们添加一个矩形,满心欢喜的输入width:500,height:500,却发现它不是一个正方形那么在程序设计中,需要参照不同方向的宽度来控制尺度,就要用到函数Units...转载 2019-04-16 22:47:32 · 1349 阅读 · 0 评论 -
pb dw中long类型的列,当值为0时不显示值,只显示空
现象如下:这里本来应该显示的是0。而它却显示空。解决办法。在该列的属性中进行修改如下图:在mask中将#后面加一个0即可。原创 2019-10-11 14:21:44 · 1138 阅读 · 0 评论 -
pb response类型窗体的作用。如果中断父窗体的open()事件。
当你在某一个窗体的open()事件中要打开一个子窗体做以一些操作。当子窗体打开的时候,暂停父窗体的open()事件,不要让父窗体打开。而当关闭子窗体时,父窗体再继续打开。这时候,将要弹出的子窗体设置成reponse!类型就可以了。...原创 2019-10-10 16:25:12 · 1242 阅读 · 0 评论 -
pb 如何创建动态二维数组
pb没有二维数组,但是可以通过结构体声明二维数组。步骤如下:1、如图在某个界面下或者某个自定义函数下点击view——structure。调出如下界面:2、设置结构体输入结构体名称,以及结构体成员,结构体成员而已是一位数组。如上图。而后就可以在声明该结构体的窗体或函数下使用该结构体,如图:3、结构体的使用声明一个结构体数组。该结构体数组就变成了一个动态的二维数组。...原创 2019-10-05 17:21:53 · 2013 阅读 · 0 评论 -
pb点击sle弹出子窗口dw,子窗口dw定位的问题及pb12.5偶然在界面放置一个dw后,鼠标没反应的解决办法
如图实现下图功能:点击sle空白处弹出下面的dw子窗口之前做的方法是,获取窗口的坐标。获取sle控件的相对坐标。然后再根据前两个坐标计算dw的应该显示的位置的坐标。这样做简直是太麻烦跟弱智了。这两天突然发现一个极其简便的方法。将窗口类型(windowType)改成popup!类型。而后直接在sle下面紧贴着放好dw。就可以实现这个功能。无论你怎么拖动窗口的位置。dw子窗口都会跟随移动。...原创 2019-09-18 22:25:19 · 931 阅读 · 0 评论 -
pb dw.update()时出现主键重复时如何屏蔽datawindow error对话框及截获出错信息
一行简单的代码if dw_2.update() = -1 then //ls_err= SQLCA.SQLErrText rollback using sqlca; if sqldb = 2627 then messagebox("","主键重复,保存失败!" + sqlerr) else messagebox("",...原创 2019-09-08 18:37:44 · 2300 阅读 · 1 评论 -
pb dw更新属性设置的问题updatable columns和unique key columns的设置
updatableColumns中“不”选择的列应该是标识列,例如id这种自增的标识列。而不是说updatable columns不选择主键而在unique key columns中选择主键。这是错误的。因为updatable columns中的列是要更新的列,主键如果不是标识列当然也是需要更新的。例如上图中的cardno是主键,但是由于是卡号列必须要更新。所以在updatable col...原创 2019-09-08 16:02:05 · 1313 阅读 · 0 评论 -
pb dw为多表联合查询时,如何利用存储过程同时更新多个表!
如图:一个多表联合查询的dw当我们在界面中对该dw的信息进行修改并想保存的时候,突然发现dw的update功能中只能对其中一个表进行更新。如图:这让人非常的苦恼。虽然可以通过后台代码进行表的操作和更新。但是总觉得这种方法太繁琐。而且似乎不是正途。于是研究了一下是否可以通过存储过程进行多表的更新呢。如图:pb的dw更新功能中有通过存储过程进行更新的选项。于是在SQL...原创 2019-09-08 11:35:38 · 1016 阅读 · 0 评论 -
pb datastore的数据如何显示在datawindow上
datastore最常用的用法是datastore dsds = create datastoreds.dataobject = 'd_XXX'然而问题在于,这样的用法只是给d_XXX找了个一个替身,数据的查询依然执行的是d_XXX的SQL。那么当datastore用自己的SQL查询出来的数据如何赋值给dw并在dw中显示呢?方法如下:datastore cardinfo /...原创 2019-06-09 15:33:37 · 2415 阅读 · 0 评论 -
powerbuilder调用dsoframer.ocx组件及操作 pb内嵌word组件及操作
首先下载dsoframer.ocxhttp://download.csdn.net/download/wolfalcon/9397898解压后DsoFramer_KB311765_x86.exe直接安装是1.3版本。文件夹内.ocx文件是2.2版本。如需2.2版本可以将文件拷入32位系统c:\windows\system32下,64位系统c:\windows\syswow64下而后原创 2016-01-10 13:28:43 · 6707 阅读 · 1 评论 -
pb setprofilestring()函数中使用相对路径
在setprofilestring()中使用相对路径时,会出现一个问题。当你在编译环境下运行程序时,即使你的相对路径书写正确,而你依然会得到setprofilestring()函数返回失败的结果。只有在工程编译后,运行编译完成的.exe文件,setprofilestring()函数才会执行成功。不要以为是你的相对路径写的不对。如果你的.ini文件就在工程的文件夹下。那么.ini文件的相对路径就原创 2013-07-24 22:30:54 · 5717 阅读 · 0 评论 -
powerbuilder中获取dw控件summary中的列值
summary中的列一般都是比较特殊列,一般完成 总数的统计,日期的提示等等。下面以日期列和统计总数的计算列为例说一下如何获取dw空间内处于summary中的列值。如果是日期列:datetime rqrq = dw_1.getitemdatetime(i, ‘rq’) // 其中引号中的 'rq' 与dw数据源中的相应字段名称相同, i的范围只要在dw控件行数的总数以内均可。原创 2012-12-04 17:09:03 · 4182 阅读 · 0 评论 -
powerbuild 外部数据源(external)的datawindow赋值
首先建立一个exteranl类型的freeform,并在窗体中dw控件引用它。这里用一个自定义的长字符串作为它的数据源。freeform中各列的列名情况如图:赋值代码:string rtnStr //注意pb中不能声明的同时赋值 rtnStr = '0123456789012012345678901234567于学波 012345原创 2012-12-04 17:34:38 · 4409 阅读 · 0 评论 -
powerbuilder中datawindow数据源控件中添加查询参数
问题:如何在quick select类型的datawinow数据源控件中添加查询参数首先在application上右键——new——datawindow——freedom/grid——OK——选择quick select——选择要查询的表名和列名——OK——next——完成控件的创建。此时点击顶部菜单栏的design——datasource会出现编辑数据源的对话框如图1:点击下原创 2012-12-01 10:48:36 · 10159 阅读 · 1 评论 -
powerbuilder freeform只显示一条数据的问题
问题:pb中的freeform在显示数据时,明明数据库中有多条数据,可是显示在freeform中却只有一条。在网上查了很多很多资料,怎么说的都有,但就是没一个说的是对的,真是让人无奈。网上说的最多的一种方法就是说因为dw的高度不够,只要把dw的高度放大,自然就能显示多行了,这么说的人我不知道他们是没理解提问人的意思呢,还是压根就是满嘴喷粪,真正的解决方法居然和他们所说的正好相反。当我们在f原创 2012-12-02 09:54:07 · 5300 阅读 · 0 评论 -
powerbuilder中外部数据源的freeform类型的dw在detail中不显示内容的问题
问题:在外部数据源的freeform类型的dw中,要显示内容无论是图片还是文字,如果将其放在dw的detail栏中,则在designer中可以看到效果,一旦程序运行则dw内的内容就会消失不见。解决办法如下:工程下右键——new——选择datawindow——选择freefrom类型如图:OK后选择外部数据源如图:点击next,为外部数据列起一个名字如图:ne原创 2012-11-30 16:11:37 · 3455 阅读 · 0 评论 -
pb9.0连接sql server2008全攻略
pb9不支持sql2000以上版本的数据库直连。因此要连接2000以上的版本必须用odbc。windows下的odbc管理器打开方式:窗体键+R 调出运行对话框 输入 odbcad32 确定弹出odbc管理器如图:这里选择用户dsn和系统dsn都可以,点击添加:如图:选择SQL server Native Client 这一项,如果在你的选项中没有,就要用SQLserv原创 2012-11-29 15:56:38 · 15456 阅读 · 6 评论 -
powerbuilder中指针的应用
在调用外部dll中的函数时,经常会用到指针。那么在pb中如何实现呢?先看一个dll说明文档中的函数声明:Function GetFamInfo(info:pchar,out flag:integer):pchar;stdcall; // flag是一个出口参数 函数的返回值和第一个参数都是指针类型pchar是delphi中的指针类型。那么我们在pb中应该怎么声明和调用呢?原创 2012-11-28 22:03:17 · 2700 阅读 · 0 评论 -
powerbuilder调用外部dll文件内函数
在powerbuilder中调用外部dll文件内函数,首先要在pb中进行声明,声明的位置放在如图所示:在pb中的任何一个Object上双击打开该object的面板并进入脚本编辑框。以窗体a为例,如图:打开脚本编辑框左上角的下拉列表选择Declare,而后选择右侧下拉列表的,Global External Functions在该脚本中编辑框中输入例如:[public]原创 2012-11-28 21:29:14 · 12157 阅读 · 0 评论 -
powerbuilder 修改自定义函数声明
在pb中定义完一个函数后如果再想对该函数的定义进行修改,方法如下:点击图中红色标志部分,调出函数定义模式即可:红线上两个按钮左侧为调出函数定义模式,右侧应该是error列表。原创 2012-12-06 10:06:12 · 1156 阅读 · 0 评论 -
powerbuilder 中插入控件列
在编辑datawindow时,我们经常会遇到需要向dw中插入空间列的情况,下面以插入checkbox控件列为例:新建一个dw,本例中用的是freeform。为freeform编辑好数据源后如图:在comumn Specification 的空白处单击右键,选择Append row选项,在最下面添加一列(虽然是Append row,但其实这里的每一行其实代表dw中的一个列)如图:原创 2012-12-06 10:37:03 · 3346 阅读 · 1 评论 -
dw内的dropdown dw列获取数据
在dw内设置一个dw类型的列很简单,选中列之后,在列属性的edit选项卡中的style type中选择dropdown dw.而后选择已经做好的datawindw。选中autoretrieve选项。选择display column 和 datacolumn后即可。在做该列的datawindow时你可能已经在该dw的preview中看到数据窗口的显示结果了。可是到此为止如果你运行工程点击该dropd原创 2013-06-24 17:26:43 · 1240 阅读 · 0 评论 -
pb9.0 5507升级8836过程中出现的问题以及升级后工程运行没有反映的解决方法。
1.pb9.0 5507升级到8836的过程中,安装完8836的补丁包后,有时会出现一个warning.大致意思是两个dll文件无法selfregister。升级之前将dll文件复制到pb安装目录下的share\powerbuilder文件夹下。再升级即可。例:F:\Program Files\Sybase\Shared\PowerBuilder。另外,升级直接安装8836的补丁就可以,不必非得按原创 2013-06-23 23:17:44 · 6074 阅读 · 0 评论 -
pb数据窗口的mouse selcetion属性
在工程中直接打开dw数据窗口的编辑界面,或者在窗体的dw容器中右键选择Modify datawindow...进入dw的编辑界面,在该界面中,点击空白处时,右侧出现的是整个dw的属性,如果选中dw的header,detail等列表中的某一列或控件之后,右侧的属性列表,显示的就是该列或该控件的属性。mouse selction选项在dw的属性列表的general选项卡下。因此点击空白处,选择右侧属性原创 2013-04-29 23:16:03 · 2387 阅读 · 1 评论 -
pb获取数据窗口滚动条滚动的水平或垂直距离
在dw的scrollvertical事件和scrollhorizontal事件中,其事件的参数就是滚动条滚动过的距离。可在instance variables当中声明一个局部变量,在这两个事件中获取距离并赋给该局部变量,而后在其他事件中使用该局部变量,得到滚动距离。原创 2013-04-28 11:41:55 · 6259 阅读 · 0 评论 -
如何实现datewindow数据窗口中的列为可编辑列
在datawindow中选中要作为可编辑列的列,然后点击pb9上部工具条中的那个Tab order按钮(如图所示),点击后datawindow中的各个列的上面会出现一个小小的红色数字,默认会都是0。不能编辑的原因就在于这个0。为0表示不可编辑。在这个小红数字上点击鼠标,可以对这个数字进行修改。在PB中tab order的顺序是按照10,20,30.....等以10为单位的数字增长的。修改完数字后保原创 2013-04-27 11:03:41 · 2028 阅读 · 0 评论 -
PB中用DataWindow.Update更新数据。
大多数情况下,您的应用程序将在网络环境下运行。有可能会有多个人同时使用一个程序。在这种情况下使用数据窗口应注意并发控制问题。 数据窗口的并发性控制可以用"rows"菜单的"Update Properties"项进行设定。 注:以下属性的位置在,datewindow的designer下,选择菜单栏中的Rows——Update Properties...1. Allow Up转载 2012-12-19 16:23:33 · 7229 阅读 · 0 评论 -
powerbuilder中的pbvm90.dll
pb打包后生成的.exe文件有时需要一些dll才能运行,其中比较重要的一个就是pbvm90.dll。这个dll文件是有版本的区别的,不能在网上随便下一个放到.exe目录里。可以在pb的安装目录中找到很多相应的dll文件,其中pbvm90.dll在 shared\powerbuilder 文件夹下原创 2012-12-07 23:39:21 · 2801 阅读 · 0 评论 -
powerbuilder datawindow中插入计算列
在pb中创建一个gird类型的datawindow,设置好数据源表格后,想对其中的某几列进行计算操作如下:点击如图按钮:点击后界面不会有任何反应,此时在dw的空白处点击一下鼠标左键,会出现如下提示框:此时可以在columns中选择要进行计算的列,并在左侧选择运算符,OK后,dw会在最后一列生产一个计算列。如图:此例中计算ljs和ckl两列的乘积,因此在最右侧原创 2012-12-06 16:23:37 · 6549 阅读 · 0 评论 -
powerbuilder工程的的open事件以及This apolication needs a script for its open event。窗体的命名
第一次接触powerbuilder简历了application工程之后,在窗体中随便放了几个控件写了几句简单的代码运行工程,出现了如下错误:This apolication needs a script for its open event上网查找原因,都告诉要在open事件中写打开窗体的语句既 open(窗体名)于是便在窗体的open事件中写了,但错误依旧。费了好半天的劲才明白原创 2012-11-27 22:21:38 · 4127 阅读 · 0 评论