图学PowerBuilder
anyqu
学有所思,日有所进.
展开
-
PB中文字标签背景透明实现方法
定义窗口实例变量:Boolean ib_painting st_1 的 Constructor 事件,程序:BackColor = 2^29 st_1 用 Event ID:pbm_paint 自定义用户事件 ue_paint ,程序: if IsValid(This) then if ib_painting then R转载 2016-01-26 22:06:27 · 4132 阅读 · 0 评论 -
PB dw 冻结数据窗口列
冻结数据窗口列2013-05-20 23:12:19分类: 数据库开发技术1.string ls_colx// Get x location of emp_fname columnls_colx = dw_data.Object.s01_voercode_t.x// Set the position of the horizontal split scrol转载 2014-09-26 20:09:18 · 4111 阅读 · 0 评论 -
PB自定义事件的妙用
pbm_custom01 - pbm_custom75 2009-12-08 17:22:12分类:C/C++ code 如何呼叫其他 PB 执行档中的 Event 常常有人问到 PowerBuilder 的执行档 (.exe), 在执行的过程中能不能相互呼叫.当一个使用者在同一台机器中执行人事系统及业务员系统时, 其中业务员系统中的员工资料, 是从人事系统的资料库来的, 所以转载 2014-09-26 19:39:37 · 3024 阅读 · 0 评论 -
PB窗口居中的实现方法
PB窗口居中的实现方法 在PB中,如何使打开的窗口在屏幕中居中显示呢?现在用得多的有以下两种(1)直接使用PB窗口中的center属性(PB9及以上版本才有该属性)。这种方法最为简单,但是明眼人都可以看出问题来:窗口上下并没有真正的居中,窗口被过分的往上抬了。(2)为了解决这个问题,大多数程序中都使用自定义的函数来实现窗口居中,实现方法无非就是先获取屏幕宽度及转载 2014-06-18 14:57:58 · 3918 阅读 · 0 评论 -
PB中判断该字段是否更改及原始值与当前值
今天根据客户的需求,当在单据中变更供应商时,需要在数据库中记录一下日志。这就需要用到GetItemString或GetItemNumber函数或GetItemStatus函数。 先解释一下这几个函数的意思: dwcontrol.GetItemStatus ( row, column, Primary! )可以获取该缓冲区内指定单元的状态,当参数column为0时,表示读取整个转载 2014-04-04 13:09:26 · 1464 阅读 · 0 评论 -
PowerBuilder 双击datawindow列标题排序
在Instance Variable 声明:string is_sortType = 'D'在dw_1的doubleclicked()事件:转载 2014-04-04 13:04:29 · 2904 阅读 · 0 评论 -
PB中使用OSTAROCX注意事项
1、不能安装支付宝控件(阿里旺旺)。经验证安装支付宝控件后,控件无法注册。或在添加控件时PB崩溃。2、保持注册控件的OCX位置固定。如果注成功后原OCX位置变动或删除,可能导致控件在PB中不好使。3、将PB可执行文件设置为以管理员方式运行(WIN7/8)注册控件时也请以管理员运行,X64系统请在SYSWOW64下运行。4、如果采用OSTAROCX打印过内容后,会在WINODWS目录下生原创 2013-12-18 12:58:14 · 1313 阅读 · 0 评论 -
图学PowerBuilder----创建窗口
1、直接创建直接创建窗口是窗口创建的最常用的也是最基本方式。在PB中选择New菜单,在弹出的窗口中选择Window即可。点击OK确认后在IDE中将创建一个窗口。在窗口的右侧属性栏中可对窗口进行各种设置:2、继承创建在面向对象编程中通过继承可以将开发好的对象扩展出更多的属性与方法,是面向对象的一个重要的特性。在PB中当我们开发完成一个窗口或其它对象后也可以通过原创 2012-05-11 14:30:17 · 2304 阅读 · 1 评论 -
ORA-00600: internal error code 解决办法
在程序中执行时提示如下错误。在网上查了很多都说可能是数据库的事儿。有的说解决办法有三种:1、打补丁2、更改ORACLE全局参数3、升级到11.2唉,可惜咱不是DBA,E文也差,说的各种方法都不实用。就觉得这个表的数据每天都得查几遍,怎么会出现这个问题呢?于是把代码粘到PLSQL里执行,如上图还真报错。还不死心,自己写:select * from T_Z_BRFY_MX原创 2013-11-06 18:18:04 · 4794 阅读 · 0 评论 -
pb中的打印----转
在PowerBuilder应用程序的开发中,各种报表的打印功能是必不可少的。Power-Builder4.0提供了大量与打印机进行通信的内部函数,用于各种打印输出。运用这些函数,您不仅可以打印常见的DataWindow对象,还可以打印字符串、位图、图形对象,甚至是全屏。DataWindow的两种打印方法: 在PowerBuilder中我们可以有两种方法打印DataW-indows。一种最简单的转载 2013-11-05 18:11:00 · 5169 阅读 · 0 评论 -
控制由Run运行的程序(简称Run程序)
在PB程序设计中,可以用Run()来运行一些程序。比如用户按了F1,就运行一个chm文件。但Run程序无法与PB主程序协调工作,若用户按了多次F1,就会启动Run程序的多个实例,主程序退出时,Run程序依然运行。可以用如下函数来使它们协调工作:在外部函数中引用:Function Ulong FindWindowA(Ulong classname, String window原创 2013-02-05 09:04:27 · 2494 阅读 · 3 评论 -
图学PowerBuilder---带参数启动程序时获取参数
如果一个PB程序是另一个系统的调用对象,那么就可能存在这种情况,当父系统调用时可能会直接传过来一个参数。被调用系统需要根据参数自动进行相关操作,而不是再从别的渠获取数据等。实际上调用时类似在快捷方式后加参数而已。如调用病案程序方法如下: c:\balg\bagl.exe /0576170 通过这样调用,被调用系统可根据“0575170”直接查询该号患者的信息-------------原创 2012-11-27 14:52:01 · 1816 阅读 · 0 评论 -
关于dropdowndatawindow的几个说明
分类: 1、如果dddw子数据窗口中含有检索参数,窗口打开时候如果retrieve了主窗口,会弹出子窗口检索参数输入框。解决方法:○取消主数据窗口dddw列的 autoretrieve属性,然后适当时机用脚本过滤。○在窗口open时候retrieve 主数据窗口前,需要用getchild给dddw传递参数,此时autoretrieve属性可以不关。 2、取dddw/dd转载 2014-09-26 20:46:51 · 1839 阅读 · 0 评论 -
转义字符在数据窗口setfilter中的应用
转义字符在数据窗口setfilter中的应用2014-01-02 15:37:28 分类: 数据库开发技术 经过一顿测试得出结果,分享给大家问题,比如说一个数据窗口中 有如下数据,我想过滤或者Find 规格中含有 字符串“100%”的数据,怎么写?编号 规格1 100%2 1100%转载 2014-09-26 19:54:13 · 497 阅读 · 0 评论 -
PB程序设计-创建窗口实例
作者:shadowfury2005-09-07 15:22分类:默认分类标签:在应用中,有可能要对查询到的数据进行对照比较,这时需要同时打开多个窗口;在MDI应用中,打开多个相同的窗口是经常遇到的,例如,同时打开多个编辑窗口编辑多个文件。打开多个相同窗口,是否可以多次使用Open语句来解决这个问题呢?不行,该语句只能激活已经打开的窗口,而不会重新打开一个窗口。只能通转载 2014-09-27 09:36:57 · 1644 阅读 · 1 评论 -
得到数据窗口中满足A条件的column B的distinct 数
得到数据窗口中满足A条件的column B的distinct 数2013-06-25 11:03:20 分类: 数据库开发技术long ll_cntll_cnt = Long(dw_1.Describe("Evaluate(~"count( if(xmlx = ~~~"A~~~",xmxl,f_null()) for all distinct )~",0)"))转载 2014-09-26 20:02:44 · 505 阅读 · 0 评论 -
在pb中实现声音文件的播放
在pb中实现声音文件的播放一个商业软件不仅要功能强大,而且界面也要美观,如果加入适量声音会增强软件的人机交互性,让软件给人更为深刻的印象。pb作为客户/服务器的客户端开发工具,在数据库管理上有强大的功能,但pb中本身没有播放声音的函数、对象。我们知道在windowsapi函数中有“sndplaysounda”可实现声音文件的播放。要在pb中调用该函数可按下例实现。1.首先在de转载 2014-09-26 21:22:51 · 5419 阅读 · 0 评论 -
动态创建用户对象对象的方法
分类: 分析代码:string ls_objectnameIF NOT IsValid(inv_NewStyle) or isNull(inv_NewStyle) THEN if ai_style= FlatStyle then ls_objectname = "n_cst_buttonsrv_NewStyle_flat" elseif ai_style= XPSt转载 2014-09-26 21:00:32 · 630 阅读 · 0 评论 -
锁住Grid数据窗口的指定列
分类: 锁住A列:Cliecked Event LONG I,LL_XX,LL_NEXTXX,LL_AAXXSTRING STR_COLUMN,STR_COLUMNXXLL_AAXX = LONG(DW_1.DESCRIBE("a_t.X"))FOR I = 1 TO LONG(DESCRIBE("DataWindow.Column.Count")) STR_COL转载 2014-09-26 21:01:29 · 745 阅读 · 0 评论 -
单击取Crosstab交叉报表表头值
分类: 点击取@上级id的显示值:String ls_click,ls_col_tmp,ls_valuedw_1.Object.DataWindow.Crosstab.StaticMode = Truels_click = dw_1.GetObjectAtPointer ( )ls_col_tmp = Left(ls_click,Pos(ls_click,转载 2014-09-26 20:53:58 · 840 阅读 · 0 评论 -
32 Bit - Windows API Calls for PowerBuilder
32 Bit - Windows API Calls for PowerBuilderThe following information lists the PowerBuilder syntax for calling Windows API functions. Also included is the PowerBuilder script needed to make the func转载 2014-09-26 20:42:31 · 2352 阅读 · 0 评论 -
数据窗口Pageup与Pagedown翻页
数据窗口Pageup与Pagedown翻页数据窗口的key实践中写:Long ll_handle ll_handle = Handle(This) Choose Case True Case KeyDown(KeyPageDown!) Send(ll_handle, 277, 3, 0) Case KeyDown(KeyPageUp!) Send(ll_hand转载 2014-09-26 20:39:36 · 1332 阅读 · 0 评论 -
PB如何触发带参数的自定义事件
PB如何触发带参数的自定义事件2012-04-27 10:25:55分类: 数据库开发技术 用代码触发事件时,可以使用函数triggerevent()/Postevent()而在触发带参数的自定义事件时,则按以下方法最好:语法:objectname.{trigger|post} {static|dynamic} EV转载 2014-09-26 20:36:35 · 2261 阅读 · 0 评论 -
通过脚本在窗体上加载ocx控件的方法
通过脚本在窗体上加载ocx控件的方法2012-09-14 22:04:27分类: 数据库开发技术New->Standard Visual->Olecontrol选中你的OCX控件后,给这个自定义对象起个名字。以后就可以在程序中随便用了,和使用一般的用户对象差不多。uo_myocx l_ocx //这个变量申明你可以放到变量定义的地方,全局也好、局部也好都可以转载 2014-09-26 20:32:36 · 737 阅读 · 0 评论 -
PB中利用Send 方法给窗口发指令
利用Send 方法给窗口发指令2013-07-13 10:15:09分类: 数据库开发技术Send(Handle(window), 274, 61488, 0) //最大化 Send(Handle(window), 274, 61472, 0) //最小化 Send(Handle(window), 274, 61728,转载 2014-09-26 20:00:11 · 3528 阅读 · 0 评论 -
图学PowerBuilder----去除启动后加载上次项目的方法
昨天试验二维码的例子搞得今天PB一打开加载上次的项目就报错,无奈重装了。后来同事告诉了一个方法,可以不用重装,在此分享一下:搜pb.ini打开找到 LastWorkspace=E:\公司程序\总院SSMZ to gaom\SSMZ\SSMZ.pbw 把后面内容清空保存,退出正常方法原创 2012-09-13 12:31:23 · 1709 阅读 · 0 评论 -
W7下无法打开帮助的解决方法!
以前用W7没注意,最近新安装了W7 64bit 用PB进行开发时打开帮助不好使,如下图:以为是我机器的问题,后来在其它同事W7的机器32bit 的也如此。经查这是W7上HLP文件格式的一个BUG,请安装相应的补丁:http://download.csdn.net/user/anyqu请选择相应的版本(本打算列出详细的地址,可是上传后一时半会不显示出来)只能让大家在这里找了!SO原创 2012-09-29 08:17:53 · 846 阅读 · 0 评论 -
图学PowerBuilder---DBMS XXX is not supported in your current installation
PB程序开发完成后给用户安装后主程序测试正常。但其中一EXE文件为其它人开发的通过FTP用于软件自动升级的程序。运行时总是提示”DBMS O90 is not supported in your current installation ”经过测试与安装的OCRALCE9没有关系。后来经过反复对比其它使用此程序的软件发现少了一个链接库文件:PO9090.dll将其拷到程序目录即可。原创 2012-09-08 21:44:09 · 5327 阅读 · 0 评论 -
图学PowerBuilder----关于分号与SELECT INTO
对于初学PB的人来说,有时就会遇到这样的问题。像我今天就遇到了。乍一看没错呀!SQL语句写了好几年了,没什么错呀!而且还是语法错误。晕死。下面来讨论一下错误的原因。PB做为一款数据库应用程序开发工具有其自身的特点。为什么要在开发工具前加上数据库应用程序的定语呢!因为与其它开发工具脱离数据库的开发环境不同的是,PB的开发建立在数据库连接的基础上。其它的开发工具在开发过程中与数据库打交道的都是原创 2012-05-16 11:25:25 · 3961 阅读 · 0 评论 -
图学PowerBuilder---PowerBuilder中PBM_系统事件 备查
虽然本系列是图学,但这篇没有图请大家不要拍砖,主要是为方便大家所以转来。-----------------------------------------------------------------------------------------------------------pbm_bmgetcheck 单选按钮或多选按钮是否被选。 pbm_bmgetstate 按钮是否加亮转载 2012-06-05 09:20:09 · 2131 阅读 · 0 评论 -
图学PowerBuilder----sqlca.sqlcode返回值的含义
在无论在何种基于数据库的程序开发中,SQL语句都是不可或缺的。在PB开发中SQL语句执行情况通过SQLCA.SQLCODE的反馈给开发者。那么这个返回值都代表什么含义呢!在网上搜索了一下。下面的内容转自:http://hi.baidu.com/yuyong1982912/blog/item/c7a05b800e33fcd5bc3e1e03.html---------------------原创 2012-05-16 10:04:58 · 9988 阅读 · 1 评论 -
图学PowerBuilder----怪异的编辑器
编辑一个小功能,让DW与窗体大小变化一起变化。超简单的功能。一直郁闷的是都是数值型怎么不能想减,搞来搞去发现这个怪异的怪胎只因为运算符与变量没有空格。dw_1.Height=newHeight - 200晕死了!看来代码规范还得多多注意!原创 2012-05-15 10:40:58 · 1376 阅读 · 0 评论 -
图学PowerBuilder----序
最近换了单位,新单位使用PB开发,又得从头学起。做了多年的程序开发,按习惯还是一步步来,把自己学到的东西在这里记录一下,也方便一下如我般愚钝的人顺便了解一下PB。此教程仅为学习PowerBuilder开发之参考资料。本资料中的内容仅围绕开发中涉及的部分内容,本资料不确保所述内容及方法的权威性、标准性及全面性。同时也请大侠们多提建议少拍砖扔蛋。原创 2012-05-11 11:14:36 · 908 阅读 · 0 评论 -
图学PowerBuilder----- 常用工具栏按钮
常用的工具栏按钮如下:原创 2012-05-11 11:21:31 · 2603 阅读 · 0 评论 -
图学PowerBuilder ------ 开发环境
先来认识一下开发环境原创 2012-05-11 11:19:12 · 1030 阅读 · 0 评论 -
图学PowerBuilder------窗口
窗口是Windows操作系统中最常用的交互界面。窗口可以为用户提示应用程序的系统信息,同时又可以从用户的鼠标和键盘操作中得到输入信息,并将它们反馈到应用系统中,从而实现用户和应用程序之间的沟通。窗口分类在PB中窗口分为主窗口、弹出窗口、子窗口、响应窗口四类。1、主窗口主窗口是独立运行的。一般情况下,一个应用程序只有一个主窗口,当主窗口关闭时,应用程序也停止运行。原创 2012-05-11 14:20:47 · 1499 阅读 · 0 评论 -
图学PowerBuilder ---- 创建一个应用
选择工具栏中的新建按钮输入路径和名称后保存在左侧的工作空间的树上点右键并选择NEW在弹出的窗口中选择TEMPLATE APPLication一路NEXT这里是需要选择数据源的。本例先不使用任何数据源,选最后一个NONE再一路NEXT。最后展开后如下图的开发环境点工具栏上跑动的小人(运行)按钮即可运行程序。有成就感吗?我原创 2012-05-11 11:33:33 · 1133 阅读 · 0 评论 -
图学PowerBuilder---(自定义)事件
在PB中,对于很多控件而言,在开发窗口中默认列出的并不是所有该控件支持的事件,如DW的鼠标按下,抬起等事件并不在其默认事件中。但这并不表示其不支持,我们可以采用(自定义)方式来扩展其事件。这里所说的自定义并不是真正的自定义,而是PB中已经默认有了相关的事件,我们只是对其进行一个类似重命名的操作。使我们需要的控件拥有它即可。如上图所示,在DW中并没有关于鼠标的按下,抬起,移动事件。接下来原创 2012-06-05 09:16:10 · 3496 阅读 · 0 评论 -
图学PowerBuilder---Can't Load OCI.dll 问题的解决!
PB开发了程序后给用户安装,装ORACLE9的客户端,装完配置连接成功,SQLPLUS也能正常访问。但运行程序时却总提示不能加载OCI.dll。在网上查了一下。基本上都是说因为权限的事,如下:安装orcale9i后一直出现“关于无法加载DLL(OCI.DLL)”,在网上搜索了一下,全是权限配置的问题,但一直找不到在xp中安全选项。后来多次摸索终于找着了,具体步骤如下:点击资源管理器原创 2012-09-08 21:35:26 · 3792 阅读 · 1 评论 -
Datawindow中每页打印固定行
2010-06-17 14:57 32人阅读 评论(0)收藏 举报第一步: 增加一个计算列,此计算列必须放在Detail段,Expression中输入:ceiling(getrow()/20),这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。 第二步: 定义分组,选择菜单Rows->Create Group...按计算列字段分组,并一定将c原创 2012-09-06 12:57:20 · 1231 阅读 · 0 评论