PB
lenya
这个作者很懒,什么都没留下…
展开
-
PowerBuilder面向对象的程序设计
PowerBuilder面向对象的程序设计<br />----在PowerBuilder的应用开发中,运用面向对象技术不是必须的,但是对于一个大型复杂应用系统的开发,如果采用了面向对象技术,则开发效率会大大提高。<br />----用PowerBuilder开发的好处是,即使您不懂得什么是面向对象技术,您也可能会下意识地用到面向对象技术的一些特性,但是如果您对这一技术有了充分的了解,那对您所设计程序的可重用性,可维护性和其他各方面的质量都会有大幅度提高。<br /><br />PowerBuilder的对象转载 2011-04-15 10:26:00 · 356 阅读 · 0 评论 -
PowerBuilder Native Interface(PBNI)
PowerBuilder Native Interface(PBNI)PowerBuilder 9现在对于其他开发语言的支援,有了全新的突破,在以往使用PowerBuilder开发程式时,要和C++或是Java程式互通有无是有一些折衷的办法,但是总是没有办法做到简易而且全面性的支援。现在只要透过PowerBuilder 9的PBNI技术,就可以让PowerBuilder的程式呼叫Java,或是在一个C++的程式中引用PowerBuilder NVO物件函数。 以往的PowerBuilder程式只能够透过外在转载 2011-01-06 10:56:00 · 884 阅读 · 0 评论 -
返回计算表达式的值
//===========================================================================//函数功能:返回计算表达式的值//参数: string thestr 计算表达式,如 2 * (3+5)//返回值:string retVal 计算表达式的结果值,如 2 * (3+5)的结果值为 16// 如果是一个不正确的表达式,则返回 false.//=======================原创 2010-11-12 18:52:00 · 275 阅读 · 0 评论 -
PB记录错误日志
li_file_no = FileOpen("system_error.log",LineMode!,Write!,Shared!,Append!)if li_file_no = 0 then Messagebox("出错信息","不能打开系统出错日志文件!",Exclamation!)else if FileWrite(li_file_no, "~r~n" + & "-------------------------------------------原创 2010-11-12 18:49:00 · 311 阅读 · 0 评论 -
如何限制应用程序只运行一次
问:请问如何限制应用程序只运行一次呢? 答:利用Windows的API函数FindWindow()、BringWindowToTop()、ShowWindow()可实现上述功能。①定义API: Funtion ulong FindWindowA( ulong winhandle, string wintitle ) Library "user32" Funtion uLong BringWindowToTop( ulong hwnd ) Library "user32" Funtion转载 2010-11-12 19:03:00 · 270 阅读 · 0 评论 -
DW动态由sql语法创建
string ls_sql,ls_syntax,ls_errls_sql = "select * from yd_sys_user"ls_syntax = sqlca.syntaxfromsql(ls_sql,"style(type= grid)",ls_err)if len(ls_err) > 0 then messagebox('',ls_err)else dw_1.create(ls_syntax,ls_err) if len(ls_err) > 0 then mes原创 2010-11-12 19:00:00 · 294 阅读 · 0 评论 -
数据窗口揭秘:未公开的数据窗口事件
数据窗口揭秘:未公开的数据窗口事件 (作者:Mark Brown) 到目前为止,PB的数据窗口控件仍是PB众多控件中功能最强大,最复杂的控件。 数据窗口固有的行为 大家对数据窗口固有的行为都很熟悉。不知道你发现没有,几乎不可能覆盖数据窗口固有的行为。它有自己的一套! 事实确实如此,数据窗口控件确实有自己的固有行为。数据窗口控件是一个完全独立的子窗口,它可以显示信息,可以独立于父窗口处理Windows消息。然而,与别的并不复杂的控件(例如:commandbutt转载 2010-11-12 18:58:00 · 692 阅读 · 0 评论 -
saveasascii
integer li_rnstring ls_filepath,ls_filename,ls_filetypels_filetype = "Excel文件(*.xls),*.xls,文本文件(*.txt),*.txt,网页文件(*.html),*.html,所有文件(*.*),*.*"goto cnncnn:li_rn = getfilesavename ("保存文件",ls_filepath,ls_filename,'excel文件',ls_filetype)if li_rn原创 2010-11-12 18:51:00 · 339 阅读 · 0 评论 -
选择颜色
long custom[ ]integer li_colorcustom[1]=rgb(255, 200, 1345678)custom[2]=8344736long ll_select_color = 255 //选择的颜色if li_color = ChooseColor( ll_select_color, custom [ ] ) = 1 then ...end if原创 2010-11-12 18:50:00 · 190 阅读 · 0 评论 -
比较列中的最大值wf_get_col_maxvalue
//=============wf_get_col_maxvalue=============////any wf_get_col_maxvalue (datawindow adw_data, string as_col)//adw_data:要比较列最大值的datawindow//as_col:要比较的列//return any lany_max//=======================================//string ls_coltypeany lan原创 2010-11-12 19:07:00 · 286 阅读 · 0 评论 -
动态创建下拉
$PBExportHeader$gf_dynamic_create_dwchild.srf$PBExportComments$动态创建下拉Datawindowchildglobal type gf_dynamic_create_dwchild from function_objectend typeforward prototypesglobal function integer gf_dynamic_create_dwchild (datawindow adw_dw, string原创 2010-11-12 19:01:00 · 285 阅读 · 0 评论 -
PB中实现备份数据库/还原数据库
//还原数据库//首先连接到MASTER数据库string ls_ServerName,ls_LogId,ls_LogPassTransaction SQLMASTERls_ServerName = SQLCA.ServerNamels_LogId = SQLCA.LogIdls_LogPass = SQLCA.LogPassdisconnect using sqlca;SQLMASTER = CREATE TransactionSQLMASTER.DBM原创 2010-11-12 18:56:00 · 389 阅读 · 0 评论 -
PowerBuilder中实现数据窗口打印预览通用方法
2008年03月31日 星期一 下午 03:10 我们在文字处理过程中,常常在打印前要预览,以便控制打印效果,特别在数据打印中要有选择地打印页面,更需要预览。PowerBuilder提供了程序开发过程中的数据打印预览,下面介绍在程序应用中实现打印预览通用方法。打印预览窗口w_preview一、下面讲述创建上述窗口的实现过程:1.创建一个新窗口W_preview,设置该窗口的类型(WindowType)为child!2.在主窗口中按示意图放置各个控件:Gb_1:用于显示的控件按钮,放在窗口最上面gb_2:用原创 2010-11-12 19:09:00 · 400 阅读 · 0 评论 -
动态创建的控件
multiLineEdit lsle_1 OpenUserObject( lsle_1, "multiLineEdit", 400, 400) lsle_1.Width = 3000lsle_1.Height = 800 lsle_1.TabOrder = 30 lsle_1.Border = TRUE lsle_1.BorderStyle = StyleLowered! lsle_1.text = "这是一个动态创建的控件!" lsle_1.visible = TRUE原创 2010-11-16 19:51:00 · 251 阅读 · 0 评论 -
获取dw检索时传进来的参数
<br />获取dw检索时传进来的参数,如图:<br />原创 2011-04-14 17:35:00 · 274 阅读 · 0 评论 -
PowerBuilder中的事务管理
PowerBuilder中的事务管理<br />----作为数据库的前台开发工具Power-Builder支持事务管理的操作。在Power-Builder中有一种称作事务(transaction)的对象,这个对象是PowerBuilder应用与数据库的通讯区域。PowerBuilder在应用开始时建立一个全局的事务对象SQLCA。由于大多数的应用只用到一个数据库,所以一般开发者主要也只用SQLCA作为与唯一数据库连接的事务对象。<br />----PowerScript中常用的事务管理的语句有四个:COMM转载 2011-04-15 10:28:00 · 381 阅读 · 0 评论 -
PB编程绝招
1. 如何使PB窗口总在最上层 通过SetWindowPos函数吧窗口的显示层次修改为HWND_TOPMOST,就可以使指定窗口永远不会被其他窗口覆盖,该函数声明为: Function Long SetWindowPos(Long hwnd, Long ord, Long x, Long y, Long dx, Long dy, Long uflag) Library “user32.dll” 参数1为要顶层显示的窗口句柄,参数2指定显示的层次,参数7为附加选项,其余参数指定窗口位置和大小,均可转载 2011-03-21 08:44:00 · 336 阅读 · 0 评论 -
PB中数据窗口设计的字段检验Validation Expression
PB中数据窗口设计的字段检验Validation expression_r_r,表达式中取字段录入值不是使用字段名,而是使用gettext()函数.例如检验字段必须录入数值型:IsNumber(GetText())如果不是数值型,则会弹出检验出错信息:Validation Message所录入的错误信息.注意:如果由于检验出错,会弹出信息,此时会激发DataWindow的LoseFocus事件,因此在LoseFocus事件中请不要执行AcceptText(),否则会弹出2次出错信息.引用自:http://b转载 2011-03-17 11:05:00 · 669 阅读 · 0 评论 -
sqlsa/sqlda使用示例
//获取相同条件下的所有记录数ls_sqlgetcnt += ls_sqlwhrprepare sqlsa from :ls_sqlgetcnt using sqlca;describe sqlsa into sqlda;declare my_cursor dynamic cursor for sqlsa;open dynamic my_cursor using descriptor sqlda;fetch my_cursor using descriptor sqlda;ll_原创 2011-03-07 09:13:00 · 478 阅读 · 0 评论 -
MD5算法在PB中的实现
开发者在线 Builder.com.cn 更新时间:2008-03-28作者:MIS/ERP开发 来源:CSDN MD5算法自从1991开发出来以后广泛用于数字签名和加密解密领域。目前使用PB外的语言可以较为简单地实现了MD5加密,使用PB来实现的比较鲜见,这可能有如下两方面的原因:一,PB在位运算方面未提供直接使用的函数,要实现位运算比较麻烦;二,在PB(PB10之前的版本)中无法直接获取字符的unicode值。如果能够攻破这两个难点,在熟悉MD5算法之后应该比较容易地在PB中实现MD5加密。转载 2011-03-03 09:32:00 · 485 阅读 · 1 评论 -
在PB程序中如何测试网络连接是否中断
添加者:Ericwoo, 最后更新者: Ericwoo 于 二月 20, 2009 (查看变更) 原作者:hygougou http://topic.csdn.net/t/20050412/18/3930736.html出于这样的考虑:connect using sqlca //如果远程数据库网络不通,这句语句将会耗费比较长的时间等待。所以考虑速度的问题,在连接之前现判断网络是否连通,如果连通则执行这句,不通则提示。//声明全局变量global varstring password_,password_转载 2011-02-25 11:08:00 · 609 阅读 · 0 评论 -
用PB实现客户端程序的自动升级
用PB实现客户端程序的自动升级C/S结构的运行模式虽然没有B/S结构更加容易扩展和简便,但由于其稳定性好、安全性高、运行速度快等特点,现在仍然被广泛应用于各种大型应用系统中,有些则和B/S形成混合的运行模式。 B/S优越于C/S的一个很大特点就是,客户端不需要安装客户端软件,通过浏览器就可以实现各种应用,并且服务器上的内容的变化可以快速反映到客户端。如果让客户端软件也实现自动升级,可以弥补C/S模式在这方面的缺陷。本文就给出了一种可自动升级客户端软件的设计思路,并给出了使用PB的实现方法。1 实现思路转载 2011-01-15 12:08:00 · 430 阅读 · 0 评论 -
使用存储过程创建datawindow
今天饶有兴趣,对使用stored procedures创建datawindow作了学习分析,作笔记如下:PowerBuilder Help 说明:OLE DB Using database stored procedures in DataWindow objectsYou can use database stored procedures as a data source for DataWindow objects. The following rules apply:Result set defin原创 2011-01-12 11:34:00 · 521 阅读 · 0 评论 -
PB数据窗口中代码列动态选择两法
PB数据窗口中代码列动态选择两法-------------------------------------------------------------------------------- 用PowerBuilder中的数据窗口设计数据录入界面时常碰到这样的问题:录入数据中的某一项要素(列)为"代码",其真正的含义存放于经常变动、以此"代码"为主键的对照表( 库)中。而用户希望利用下拉菜单动态选择时看到的是一个个"代码"所对应的"含义"。下面给出这一问题的两种解决方法。 方法一:为该对照表设计一数转载 2010-11-16 19:57:00 · 385 阅读 · 0 评论 -
检查列名是否有效
//检查列名是否有效as_colname //列名string ls_objectsls_objects= dw_2.describe("datawindow.objects")ls_objects= '~t' + ls + '~t'if pos(ls,'~t' + trim(as_colname) + '~t' ) > 0 then messagebox('','true')end if//v_e_oxddnr_产品编号原创 2010-11-12 19:00:00 · 237 阅读 · 0 评论 -
如何在 PB 中实现无标题可拖动的窗口
如何在 PB 中实现无标题可拖动的窗口当鼠标拖动时Windows 首先会向鼠标下的窗口发送一个 wm_nchittest 消息,窗口收到这个消息后再由窗口的消息处理函数进行处理,消息处理函数将 会返回一个整数表示鼠标正处于窗口的什么部位。大家只需要知道的是处理函数 返回2,表示鼠标正处于窗口的标题栏上。根据这一点,我们只要截获这条消息, 然后直接返回2。这样不管鼠标真正位于窗口的什 么部位,WINDOWS 一律认为鼠标位于标题栏上。因此,用户自然可以拖动窗口。 下面是具体的步骤:1 为窗口定义用户自定义事件原创 2010-11-12 18:52:00 · 488 阅读 · 0 评论 -
如何屏蔽Describe函数系统报错提示框
Q:如:dw_1.Describe("Evaluate( ' "+无效/错误+ " ',0) ") 老是会报PB自带的错误消息窗口,请问如何屏蔽错误消息窗口?A:先 dw_1.Object.DataWindow.NoUserPrompt = "yes "再dw_1.Describe...转载 2010-12-30 14:18:00 · 412 阅读 · 0 评论 -
pb的catch怎么用?
//pb的catch怎么用?1.catch(throwable ex)2.Choose Lower(ClassName(lany_my)) Case 'string' Try ls_list = lany_my Catch(runtimeerror runx) ls_list[1] = lany_my End Try Case Else End Choose原创 2010-10-23 10:43:00 · 379 阅读 · 0 评论 -
在数据窗口过滤以后,计算列值如何才能一起改变?
dw_1.filter() dw_1.groupcalc()转载 2010-10-23 08:17:00 · 175 阅读 · 0 评论 -
如何连续在同一张纸打印两个数据窗口?
如何连续在同一张纸打印两个数据窗口?dw_1.object.datawindow.print.filename="temp.prn"dw_2.object.datawindow.print.filename="temp.prn"dw_1.print()dw_2.print()原创 2010-10-21 16:38:00 · 396 阅读 · 0 评论 -
dw获取sql代码的四种方法:
string szselectszselect=dw_1.describe("datawindow.table.select")szselect=dw_1.describe("datawindow.table.sqlselect")szselect=dw_1.describe("datawindow.table.select.attribute")szselect=dw_1.getsqlselect()原创 2010-10-21 16:37:00 · 327 阅读 · 0 评论 -
调用API函数使你的程序子窗口'闪出'显示
类 别:用户界面 你是不是有时觉的你的应用程序的子窗口弹出的方式是不是太单调呢,最近本人学习API函数时发现了一个可以让你的子窗体用不同的方式弹出的函数,函数原形为: BOOL AnimateWindow( HWND hwnd, // handle to window DWORD dwTime, // duration of animation转载 2010-10-21 16:24:00 · 246 阅读 · 0 评论 -
DataWindow如何彻底禁止鼠标滚轮滚动到下一条或上一条记录
DataWindow如何彻底禁止鼠标滚轮滚动到下一条或上一条记录:方法一:other事件写 if message.number = 522 then return 1方法二:(个人觉得这种方法更好.)ue_vscroll,Event ID: pbm_vscroll 事件代码:return 1转载 2010-10-23 10:39:00 · 384 阅读 · 0 评论 -
This tip shows how to extract the width and height from a bitmap source file on disk.
This tip shows how to extract the width and height from a bitmap source file on disk.// Width and height of a picture inside a BMP fileint jobblob bulong width, heightjob = FileOpen( "filename.bmp", StreamMode!, Read! )FileRead( job, b )width = Long( Inte转载 2010-10-23 08:25:00 · 196 阅读 · 0 评论 -
让数据窗口的标题栏在选中后显示为蓝色
用消息WM_NCACTIVATE Constant Long WM_NCACTIVATE = 134 //86h Send(Handle(dw_1),WM_NCACTIVATE,1,0) //变兰 ;1=>0恢复 注:具体消息参数请查找MSDN原创 2010-10-21 16:34:00 · 236 阅读 · 0 评论 -
桌面区大小和得到任务栏的高度
有什么函数可以得到桌面区大小和得到任务栏的高度? --------------------------------------------------------------- 任务栏的高度? uses shellapi; procedure TForm1.Button1Click(Sender: TObject); var abd:TAppBarData; begin abd.cbSize:=sizeof(abd); SHAppBarMessage(ABM_GETTASKBARPOS,abd转载 2010-10-21 16:25:00 · 390 阅读 · 0 评论 -
PowerBuilder API Site
API Function List - 32 Bit:FUNCTION ulong AbortDoc(ulong hdc) LIBRARY "gdi32.dll" FUNCTION ulong AbortPath(ulong hdc) LIBRARY "gdi32.dll" FUNCTION ulong AbortPrinter(ulong hPrinter) LIBRARY "winspool.drv" FUNCTION ulong AbortSystemShutdown(ref string lpMac转载 2010-10-21 16:20:00 · 390 阅读 · 0 评论 -
获取数据窗口中summary区中一个计算字段的值
获取数据窗口中summary区中一个计算字段的值:dw_1.getitemdecimal( 1, "compute_mk"))dw_1.describe("Evaluate('sum(mk_qty for all)',1)")原创 2010-10-23 10:54:00 · 365 阅读 · 0 评论 -
sqlsa
declare lup dynamic procedure for sqlsa;msql="update mma set stock_gd = stock_gd - 10 where m_id like '"+mlike+"%'"prepare sqlsa from :msql;execute dynamic lup;close lup;原创 2010-10-21 16:32:00 · 197 阅读 · 0 评论 -
除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?
除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?方法一: long ll_Selected ll_Selected = long(dw_1.describe("evaluate('sum( if(IsSelected(), 1, 0) for all)',1)")) 方法二: long ll_Selected ll_Selected = long(dw_1.describe("evaluate('count(IsSelected() for all)',1)")) 方法三:upperboun原创 2010-10-21 16:45:00 · 296 阅读 · 0 评论