PB源码大全

getfirstletter.zip 5K 取汉字拼音的首字母ctrl_alt_del.zip 5K 关掉ctrl_alt_del热键multithread.zip 8K 多线程实现的例程wallpaper.zip 10K 显示图片的例程w_test.srw 4K 如何使用COM对象:WORD EXCELerrortrap.zip 19K 错误陷阱模块,错误信息可以是中文的了taskbar5.zip 10K 把PB程序加入到系统任务栏(WIN95/97/98系统)exfuns.zip 23K 常用的外部动态链接库函数alltext45.zip 3419K 现RichText,功能更强大,中文不会出现问题。

(但不能象PB自带的RichText可以和DataWindow紧密结合)closeapp.zip 5K 关闭程序context.zip 14K 实现Win95风格的上下文帮助,原来只有VB才有此功能,请看PB如何实现,帅呆了!multi.zip 41K sybase提供一个关于在在PB中实现多线程的例子。

使用SharedObjectRegister,SharedObjectGet函数实现。

mdigraph_v2.zip 97K 允许在MDI主窗口显示图形,加强程序视觉效果。

解决了当其它应用覆盖MDI窗口会出现图片被盖住的部分不能刷新。

例如切换输入法就会出现上述问题。

numerical.zip 14K 一个用户对象用于实现十进制,二进制,十六进制之间的互相转换,已经写了一个简单的例程.调用很方便.使用PFC的用户只需简单的将n_cst_numerical替换为本程序中的对象即可.pbfix.zip 17383K PB 6.5.1中对以前PB版本进行修正过的错误列表。

pfc.txt 34K PFC入门的中文介绍,PFC是PowerBuilder开发组为PB开发的框架包,结构严谨,功能强大,为PB专业开发人员的首选。

需要深入全面学习还需仔细阅读Online Book。

虽然是英文的,但是目前介绍最全面的书籍。

另外《PowerBuilder 6.0程序设计大全》也有一章是中文入门介绍。

wangsamp.zip 8K 一个使用Windows自带的扫描仪控件的例子,用VB编写的,可以用到PB 中.是微软自Windows97开始附加的一个kodak提供的ImagingControls.并且还带有在线帮助.在windows 97中有它的1.0版本,windows 98是2.1版本.并且在Win97中带有VB制作的例子,只要安装Win97就有,它的存放路径是windows\wangsamp(使用win97朋友不用下载了).此控件有四组功能,分别为:(控件的详细使用方法可以看windows\help\wangocxd.hlp) kodak 图像编辑控件(ImgEdit.ocx)kodak 图像管理控件(ImgAdmin.ocx)kodak 图像扫描控件(ImgScan.ocx)kodak 图像缩略图控件(ImgThumb.ocx).account.zip 2296K 一个财务系统源代码pb65ckb2.zip 2004K pb65汉化核心模块PB701Maint.zip 19144K pb7.1patchpb6v11.zip 73K 例程query.zip 11K 有一些朋友提出对于记录个数很多的表进行查询的问题,得到的大多数解答是限制返回的结果集大小,例如SQL Server 7.0中可以通过Select Top N..... (N表示返回的记录数),而周游第二天就写了一个例程来说明查询大结果集的问题。

采用的方法是使用ID字段,定义游标,能过循环读取并放入到Datawindow中,大家可以下载看看,(注意下载后不要直接运行,要改动Application Open事件中的代码,以便联接到自己所用的数据库)。

此例程还可以进一步改进,因为通过游标读取效率不高,需要多次与后台数据库通讯。

可以改用Datawindow使用Retrieve来实现,在Where条件中可以加上对于ID的辨断。

这两种方法可以反复试验,希望能对大家有所帮助。

fxgold.zip 4197K 是实现多媒体功能的控件,是罕有能兼容PB的多媒体设计控件,带有几十个VB例子.可以改为在PB使用.taskbar.zip 10K 增加了一个PB程序驻留在System Tray区的例子(Win95/98右下角),已经封装成了用户对象,随意挂接,超级好用。

(编译成exe后将显示正确图标)pb5zlib.zip 74K 一个简单的压缩/解压缩程序,附有PB例子,可以应付一般的用途。

ChgPrn.zip 3K 使用注册表和win.ini文件动态改变当前默认打印机,调用方便,调用完成后自动恢复系统默认打印机,你可以使用此对象在程序中控制,当前打印输出到本地打印机或网络打印机,如果需要更多功能应该使用PowerPrint DLL。

trigger.txt 2K 关于触发器的使用PBuild.exe 1166K 一个InstallShield For PB 6.0的模板。

很好用,里面包含一些常用的odbc驱动程序,最关心的SQL Anywhere也包含在其中,请先安装InstallShield 5.0。

如果你的程序使用MS SQL Server,最简单的方法是将两个Sql Server 的DLL文件包含在你的安装程序,Copy到Windows\system目录下即可。

它们是DBMSSHRN.DLL,NTWDBLIB.DLL。

saxsetup.exe 4298K 除了可以制作安装程序以外,和其它同类产品有所不同,它可以监控你运行的程序需要用到哪些DLL文件.可以利用此功能判断出PB连接SQL Server 7.0需要的两个SQL 7.0中的DLL文件.可以如法炮制用于判断其它程序需要的附加文件.另外在Visual Studio 6.0也带有一个工具叫Dependency Walker,它也可以实现此功能.settime.zip 6K 一个设置系统时间的程序,弥补了PB没有的功能,已经封装成为用户对象。

getfont.zip 81K 用API读取Windows安装的字体,非常感谢ZeXian.Wang。

使用Watcom C++制作的DLL,附有源程序,并有PB例程。

ick.zip 62K IC卡读写程序xceedzip.exe 1219K Xceedzip的加密功能很特别,安装在自己的电脑上时无论是在设计环境还是EXE执行的时候都不会有任意问题,但当你将此EXE在另一台已经安装了Xceedzip的电脑上运行,则会提示你没有买正式版本crc.zip 17K 使用CRC检验,确保程序不被人非法修改和数据的完整性sim_shutdown.zip 37K 在PB程序中使屏幕变暗,模拟关闭Windows的效果(第一版) execsql.zip 43K 直接在程序中执行*.sql中的内容timer.zip 26K 用PB编制定时关闭电脑程序org.zip 108K 制作组织结构图,来自PB4.0的例子,虽然很老,但有许多可供参考地方,有很强的实用价值,是学习动态Datawindow的好例程htmlhelp.zip 23K 在PB中调用Htmlhelp的例程iconviewer.zip 34K 查看程序图标资源文件的程序很常见,但这个可是用PB写的。

superbar.zip 13K PB中的微帮助状态栏一直不尽如人意,单一、不能定制,于是很多高手想办法来增强它的功能,SuperBar是其中的一个例子,很精彩,向各位推荐。

Date_Time.zip 19K 一个在PB中输入日期、时间的例子,有各种样式,非常实用。

WordDlg.Zip 39K 通过OLE自动化获取Word(97)中的有用工具,如字数统计、拼写检查、打开文件等。

Pzti.Zip 128K 会计记帐凭证界面设计MicroHelp_Time.zip 7K 在MDI窗口的微帮助栏右边显示系统时间的例程,用一个popup窗口覆盖信息栏部分实现。

Regedit.zip 6K 用来访问和修改Windows 95/98/NT的计算机用户名和公司名称。

calendar3.zip 26K 新款日历,界面漂亮,推荐!Bubble.ZIP 50K 在命令按钮、数据窗口等控件上显示类似于中文之星提示文本的程序,推荐!Search.ZIP 126K 根据部分网友的要求,将组合查询作成了演示程序供下载,其中模板可作通用组合查询。

Font.zip 7K 更改程序中的字体的程序范例,推荐!Explorer.zip 24K 类似于Window资源管理器,TreeView与ListVew实现。

PBComment.zip 102K 可为你的PB脚本添加注释3d_word.zip 38K 在PB中显示3D字,用DataWindow实现,已经封装成用户对象,并制作了相应的例程,非常Cool。

menu.zip 8K 菜单(menu)上增加图标的例子。

tooltip.zip 15K 一个更好的ToolTips实现方法,效率更高,方法更加标准。

Tooltip.zip 15K 一个更好的ToolTips实现方法,效率更高,方法更加标准。

和4月27日的提供的ToolTips相比,今天提供的方法是和VB,DELPHI,VC内部实现的机制一样,4月27日提供的程序可以从中学习许多编程技巧,可以改为其它用途。

mscomctl32.zip 41K 实现3个PB中没有标准WIN95界面控件,强力推荐,非用不可。

multitree.zip 13K 超强TreeView,实现checkbox(多项选择)和radio button(单项选择)功能,喷血推荐!outlook6.zip 52K Outlook对象,超级专业效果,就连VB控件中都少见,吐血推荐DW_Ref.zip 42K 关于datawindowprogress.zip 12K 一个好用的进度条对象newdwsort.zip 22K 单击标题栏即可排序的数据窗口picture_button.zip 3K 图像按钮实现例程resize.zip 42K 动态改变MDI窗口大小的例程uo_code_droplistbox.zip 932 特殊功能的下拉列表框uo_picture_mdi.zip 22K MDI窗口中显示图片transparent.zip 13K 使控件透明显示dynamic_menu.zip 11K PB动态菜单bmpclient.zip 350K 鼠标热点程序trigger.zip 20K 程序触发键盘com_tool.zip 22K 通用数据窗口查询程序animate.zip 5K 不同的窗口打开方式wndshow.zip 190K 不同的窗口打开方式transparent.zip 13K 透明图片程序changepos.zip 11K 动态调整DW中列的位置程序Grap.zip 29K 改变Graph类型DW的程序picmenu.zip 8K 图片菜单msgbox_help.zip 13K 带HELP按钮的MsgBoxprogress.zip 12K 新的进度条pbtoword.zip 9K 数据窗口转换为WORD95文件pbtoword1.zip 14K 数据窗口转换为WORD97文件pbtoword2000.zip 9K 数据窗口转换为WORD2000文件standard.zip 255K 标准窗口selectdirectory.zip 51K PB中选择目录而不显示文件的例子7enumwindows.zip 6K 显示PBL文件中全部数据窗口的所有信息的例子6dwreport.zip 69K 获取当前全部打开窗口的例子mycx.zip 65K 数据窗口查询程序datetime12.zip 19K DateTime录入框dw2struct.zip 45K 把Datawindow 转换成 Struct,可全部是PB的写的,没用API。

合集下载

餐饮管理程序(PB源代码)

餐饮管理程序(PB源代码)
3日志过滤缺省为本日日志4在后改管理的销售项目一览表中增加了排行top105增加了版本校验机制6增加了错误陷阱7增加了程序中颜色自定义8修改了挂帐单位可挂帐额度的计算错误9修改了xp窗体的拖动10限制了程序只能运行1次1)
餐饮管理程序(PB源代码)
drui12009-03-14上传
餐饮管理程序
1、在后台管理中增加了前台销售一览表。
2、完成了日志察看中的查找功能。
3、日志过滤(缺省为本日日志)
4、在后改管理的销售项目一览表中增加了排行TOP10
5、增加了版本校验机制
6、增加了错误陷阱
7、增加了程序中颜色自定义
8、修改了挂帐单位可挂帐额度的计算错误
9、修改了XP窗体的拖动
10、限制了程序只能运行1次
11、增加了运行库文件察看。
12、增加了操作日志中的系统提示

百度贴吧pb_v2源码.js

百度贴吧pb_v2源码.js
},
300)
};
Post.removeQuote = function() {
var A = document.getElementById("quote_wrapper");
A.innerHTML = "";
A.style.display = "none";
document.getElementById("quote_id").value = 0
return false
}
if (!Post.Validator._validRichEditorContent()) {
return false
}
if (!Post.Validator._validCaptcha()) {
return false
}
return true
}
try {
if (A()) {
Post.isPosting = true;
Fe.G("add_post_submit").disabled = true;
Post.checkPostStatus();
var B = Post._getData();
};
Post.postDelete = function(tid, pid) {
var params = {
kw: PageData.forum_name,
fid: PageData.forum_id,
tid: tid,
pid: pid
};
this.post("postDelete", params,

pb代码

pb代码
模拟二:
real m,n
m=real(sle_1.text)
n=real(sle_2.text)
sle_3.text=string(m+n)
real m,n
m=real(sle_1.text)
n=real(sle_2.text)
sle_3.text=string(m - n)
real m,n
m=real(sle_1.text)
n=real(sle_2.text)
sle_3.text=string(m*n)
real m,n
m=real(sle_1.text)
n=real(sle_2.text)
if integer(sle_2.text)=0 then
messagebox("出错","除数不能为零")
CASE is<n
sle_3.text="小于"
END CHOOSE
显示:
real m,n
m=real(sle_1.text)
n=real(sle_2.text)
CHOOSE CASE m
CASE is>n
messagebox("提示",sle_1.text+"大于"+sle_2.text)
else
sle_3.text=string(m/n)
end if
模拟三:
比较:
real m,n
m=real(sle_1.text)
n=real(sle_2.text)
CHOOSE CASE m

PB常用代码

PB常用代码
//
----------------------------------------------------------------------
数据压缩加密
//判断是否存在目录
nv_compression lnv_cmp
lnv_cmp = CREATE nv_compression
string ls_dir
//
//自定义事件: uo_enter 返回值: long event id: pbm_keydown
//
// keycode key
//
// unsignedlong keyflags
//
//////////////////////////////////////////////////////
ls_dir = gstr_option.path+'\prodcut_lsj'
if DirectoryExists (ls_dir) then
// messagebox('','请先删除原来的存放数据的"txt"目录!')
// return
else
if createdirectory(ls_dir) = -1 then
if keydown(keyenter!) then
MESSAGEBOX('你按了回车键','你按了回车键')
keybd_event(9,0,0,0) //api
keybd_event(9,0,2,0)
Return 1
end if
dw_2.SetColumn('thp10')

PB编程实例

PB编程实例

(1)获得安装的打印机在这个例子中,我们生成一个以打印机名的下拉框string printers[]int rtn, i, nbPrintersrtn = RegistryKeys &(\"HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Print\\Printers\", &printers)nbPrinters = UpperBound(printers)FOR i = 1 TO nbPrinterslb_1.addItem(printers[i])NEXT(2)获得当前的用户名和机器名在这个应用中,需要定义下面的两个API函数FUNCTION long GetComputerNameA(ref string ComputerName, ref ulong BufferL ength)LIBRARY \"KERNEL32.DLL\"FUNCTION long GetUserNameA(ref string UserName, ref ulong BufferLength) LIBRARY \"ADVAPI32.DLL\"and thenlong ll_retstring ls_ComputerName, ls_UserNameulong BufferLength = 250 // you may need to adjust this. see Notels_ComputerName = Space(BufferLength)ls_UserName = Space(BufferLength)ll_ret = GetComputerNameA(ls_ComputerName, BufferLength)ll_ret = GetuserNameA(ls_UserName, BufferLength)注意:通过一些实验,在使用函数GetUserNameA获得用户名时,如果定义的BUFFERLE NGTH小于实际的用户名长度,函数可能会出现异常.(3)获得当前的目录首先定义API函数FUNCTION long GetCurrentDirectoryA( long length , ref string path) &LIBRARY \"Kernel32\"接下来long ll_retstring ls_pathls_path = Space(250)ll_ret = GetCurrentDirectoryA(250, ls_path)IF ll_ret > 0 THENls_path = Left(ls_path,ll_ret)MessageBoxBox(\"\", ls_path)ELSEMessagebox(\"Error\",\"Err GetCurrentDirectory \" + String(ll_ret))END IF(4)创建或删除目录首先定义如下API函数FUNCTION boolean CreateDirectoryA(ref string path, long attr)LIBRARY \"kernel32.dll\"FUNCTION boolean RemoveDirectoryA( ref string path )LIBRARY \"kernel32.dll\"接下来CreateDirectoryA( \"C:\\TempDir\", 0 ) // always 0RemoveDirectoryA( \"C:\\TempDir\" )注意:没有办法同时创建两个以上的目录.可以一个一个的创建.(5)文件改名使用下面的函数,把文件\"移动\"成一个新的名字(没有关系,不会真的移动文件,只是改名)Simply \"move\" it under a new name with the functionFUNCTION BOOLEAN MoveFileA(STRING oldfile, STRING newfile)LIBRARY \"Kernel32.dll\"(6)禁止ODBC的“LOGIN”窗口在DbParm中使用如下的连接选项Use this ConnectOption in your DbParm :SQLCA.DBParm=\"ConnectString=\'DSN=mydb;UID=dba;PWD=sql\',\" + & \"ConnectOption=\'SQLDRIVER_CONNECT,SQL_DRIVER_NOPROMPT\'\ "(7)使应用休眠定义:SUBROUTINE Sleep(Long lMilliSec) LIBRARY \"Kernel32.dll\"使应用休眠2秒Sleep(2000)(8)使用文件关联的应用来打开一个文档使用外部函数ShellExecuteA().函数如下定义:FUNCTION long ShellExecuteA &(long hwnd, string lpOperation, &string lpFile, string lpParameters, string lpDirectory, &integer nShowCmd ) LIBRARY \"SHELL32\"在脚本中,例如:启动一个缺省的浏览器string ls_Nulllong ll_rcSetNull(ls_Null)ll_rc = ShellExecuteA &( Handle( This ), \"open\", \"MyPage.html\", ls_Null, ls_Null, 1)可能返回的代码如下:SE_ERR_FNF 2 // file not foundSE_ERR_PNF 3 // path not foundSE_ERR_ACCESSDENIED 5 // access deniedSE_ERR_OOM 8 // out of memorySE_ERR_DLLNOTFOUND 32SE_ERR_SHARE 26SE_ERR_ASSOCINCOMPLETE 27SE_ERR_DDETIMEOUT 28SE_ERR_DDEFAIL 29SE_ERR_DDEBUSY 30SE_ERR_NOASSOC 31使用下面的代码,实现以指定的扩展名对应的程序打开你指定的文件(不是你指定的文件扩展名的关联程序)[structure nvos_shellexecuteinfo]long cbSizelong fMasklong hwndstring lpVerbstring lpFilestring lpParametersstring lpDirectorylong nShowlong hInstApplong lpIDListstring lpClasslong hkeyClasslong dwHotKeylong hIconlong hProcess[External Function]FUNCTION long ShellExecuteEx(REF nvos_shellexecuteinfo lpExecInfo) LIBRARY \"shell32.dll\" ALIAS FOR ShellExecuteExA[powerscript]function boolean of_execute(readonly string as_file, readonly string as_extension)CONSTANT long SEE_MASK_CLASSNAME = 1CONSTANT long SW_NORMAL = 1string ls_classlong ll_retnvos_shellexecuteinfo lnvos_shellexecuteinfoInet l_InetIF lower(as_extension) = \"htm\" OR lower(as_extension) = \"html\" THEN // Open html file with HyperlinkToURL// So, a new browser is launched// (with the code using ShellExecuteEx, it is not sure)GetContextService(\"Internet\", l_Inet)ll_ret = l_Inet.HyperlinkToURL(as_file)IF ll_ret = 1 THENRETURN trueEND IFRETURN falseEND IF// Search for the classname associated with extensionRegistryGet(\"HKEY_CLASSES_ROOT\\.\" + as_extension, \"\", ls_class)IF isNull(ls_class) OR trim(ls_class) = \"\" THEN// The class is not found, try with .txt (why not ?)RegistryGet(\"HKEY_CLASSES_ROOT\\.txt\", \"\", ls_class)END IFIF isNull(ls_class) OR Trim(ls_class) = \"\" THEN// No class : errorRETURN falseEND IFlnvos_shellexecuteinfo.cbsize = 60lnvos_shellexecuteinfo.fMask = SEE_MASK_CLASSNAME // Use classname lnvos_shellexecuteinfo.hwnd = 0lnvos_shellexecuteinfo.lpVerb = \"open\"lnvos_shellexecuteinfo.lpfile = as_filelnvos_shellexecuteinfo.lpClass = ls_classlnvos_shellexecuteinfo.nShow = SW_NORMALll_ret = ShellExecuteEx(lnvos_shellexecuteinfo)IF ll_ret = 0 THEN// ErrorRETURN falseEND IFRETURN true例如,创建一个C:\\test.txt文件,使用如下的脚本:// Open c:\\test.txt with Word, or Wordpad (or with another .doc file viewer) of_execute(\"c:\\test.txt\", \"doc\")// Open c:\\test.txt with the default browserof_execute(\"c:\\test.txt\", \"htm\")这段代码在你打算以不同的扩展名保存文件(保密)时有用。

pb错误代码详解

pb错误代码详解

pb错误代码详解pb错误代码详解2010-07-20 11:02string ls_msg choose caseerror.number case 1//by zero ls_msg="发生被0除错误"case 2//2 Null object reference ls_msg="空对象引用"case 3//3 Array boundary exceeded ls_msg="数组越界"case 4//4 Enumerated value is out of range for function ls_msg="枚举值超出函数的范围"case 5//5 Negative value encountered in function ls_msg="函数中遇到负数"case 6//6 Invalid DataWindow row/column specified ls_msg="数据窗口的列或行非法"case 7//7 Unresolvable external when linking reference ls_msg="链接调用时不能解决外部对象"case 8//8 Reference of array with null subscript ls_msg="使用空下标引用数组"case 9//9 DLL function not found in current application ls_msg="当前应用中没有找到动态链接库的函数"case 10//10 Unsupported argument type in DLL function ls_msg="使用了动态链接库函数不支持的参数类型"case 11//11 Object file is out of date and must be converted to current version ls_msg="对象文件已经过时并且必须使用当前的版本"case 12//12 DataWindow column type does not match GetItem typels_msg="数据窗口的列的数据类型与GetItem函数的类型不符"case 13//13 Unresolved property reference ls_msg="属性引用尚未解决"case 14//14 Error opening DLL library for external functionls_msg="为外部函数调用而打开动态链接库时发生错误"case 15//15 Error calling external function name ls_msg="调用外部函数时发生错误"case 16//16 Maximum string size exceeded ls_msg="字符串长度超越了最大限制"case 17//17 DataWindow referenced in DataWindow object does not exist ls_msg="数据窗口引用的数据窗口对象不存在"case 18//18 Function doesn't return value ls_msg="函数没有返回值(应该有而没有)"case 19//19 Cannot convert name in Any variable to name ls_msg="不能转换Any类型的变量到另一个类型"case 20//20 Database command has not been successfully prepared ls_msg="数据库命令没有成功准备"case 21//21 Bad runtime function reference ls_msg="引用了错误的运行时函数"case 22//22 Unknown object type ls_msg="不知道的对象类型"case 23//23 Cannot assign object of type name to variable of type name ls_msg="不能将对象赋给变量,两种类型不能赋值"case 24//24 Function call doesn't match its definition ls_msg="函数调用格式与其定义不一致"case 25//25 Double or Real expression has overflowed ls_msg="双精度型或实型表达式溢出"case 26//26 Field name assignment not suppo rted ls_msg="不支持这种字段赋值"case 27//27 Cannot take anegative to anoninteger power ls_msg="不能计算一个负数的非整数次方"case 28//28 VBX Error:name ls_msg="VBX错误"case 29//29 Nonarray expected in ANY variable ls_msg="ANY类型变量期待非数组类型"case 30//30 External object does not support data type namels_msg="外部对象不支持这种变量类型"case 31//31 External object data type name not supported ls_msg="外部对象的数据类型不支持"case 32//32 Name not found calling external object function name ls_msg="调用外部对象函数时函数名称没有找到"case 33//33 Invalid parameter type calling external object function name ls_msg="调用外部对象函数时使用了错误的参数类型"case 34//34 Incorrect number of parameters calling external object function name ls_msg="调用外部对象函数时使用的参数个数不对"case 35//35 Error calling external object function name ls_msg="调用外部对象的函数错误"case 36//36 Name not found accessing external object property name ls_msg="访问外部对象属性时属性名称没有找到"case 37//37 Type mismatch accessing external object property name ls_msg="访问外部对象属性时使用了不匹配的类型"case 38//38 Incorrect numb er of subscripts accessing external object property name ls_msg="访问外部对象属性时使用了错误的下标"case 39//39 Error accessing external object property namels_msg="访问外部对象的属性错误"case 40//40 Mismatched ANY data types in expression ls_msg="表达式中ANY数据类型不匹配"case 41//41 Illegal ANY data type in expression ls_msg="表达式中使用了非法的ANY数据类型"case 42//42 Specified argument type differs from required argument type at runtime in DLL function name ls_msg="指定的参数类型与动态链接库中的函数所需要的参数类型不一致"case 43//43 Parent object doesn't exist ls_msg="父对象不存在"case 44//44 Function has conflicting argument or return type in ancestor ls_msg="函数与祖先的参数或返回值冲突"case 45//45 Internal table overflow;maximum number of objects exceeded ls_msg="内部表溢出;对象的最大数目已经超越"case 46//46 Null object reference cannot be assigned or passed to avariable of this type ls_msg="空对象引用不能赋值或传递给一个这种类型的变量"case 47//47 Array expected in ANY variable ls_msg="ANY类型期待数组"case 48//48 Size mismatch in array to object conversion ls_msg="将数组转换成对象时数组的大小不匹配"case 49//49 Type mismatch in array to object conversion ls_msg="将数组转换成对象不匹配"case 50//50 Distributed Service Error ls_msg="分布式服务错误"case 51//51 Bad argument list for function/event ls_msg="函数/事件的参数列表错误"。

pb数据窗口常用代码

pb数据窗口常用代码一、连接数据库连接数据库也就是指定事务对象。

PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。

语法格式:dw_control.SetTrans(TransactionObject)dw_control.SetTransObject(TransactionObject)其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。

这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。

用户只需要在这里填充一个事务对象,PB 就会自动完成对该事物对象的初始化以及和数据库连接的工作。

而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。

但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。

与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。

因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。

这两个函数都是成功时返回1,发生错误时返回-1。

二、检索数据用于检索数据的函数只有一个,就是Retrieve()函数。

语法格式:dw_control.Retrieve()如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。

而且检索参数必须和数据窗口对象中定义顺序一致。

此函数返回一个长整型的数据,代表检索出来的数据行数。

如果发生错误,将返回-1。

三、更新数据当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。

语法格式:dw_control.Update()这个更新可能成功,也可能失败。

Pb函数大全及详解

一、数组函数1、LowerBound()功能:得到指定数组第n维的下界。

语法:LowerBound ( array {, n } )参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的下界。

缺省值为1。

返回值:Long。

函数执行成功时返回array数组第n维的下界。

如果n的值超过了指定数组的最大维数,那么该函数返回-1。

如果任何参数的值为NULL,LowerBound()函数返回NULL。

示例:integer a[5], b[2,5]LowerBound(a) // Returns 1LowerBound(a, 1) // Returns 1LowerBound(a, 2) // Returns -1, a has only 1 dim LowerBound(b, 2) // Returns 1integer c[ ]LowerBound(c) // Returns 1c[50] = 900LowerBound(c) // Returns 1integer d[-10 to 50]LowerBound(d) // Returns - 102、UpperBound()功能:得到指定数组第n维的上界。

语法:UpperBound( array {, n } )参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的上界。

缺省值为1。

返回值:Long。

函数执行成功时返回array数组第n维的上界。

如果n的值超过了指定数组的最大维数,那么该函数返回-1。

如果任何参数的值为NULL,UpperBound()函数返回NULL。

示例:integer a[5], b[2,5]LowerBound(a) // Returns 1LowerBound(a, 1) // Returns 1LowerBound(a, 2) // Returns -1, a has only 1 dim LowerBound(b, 2) // Returns 1integer c[ ]LowerBound(c) // Returns 1c[50] = 900LowerBound(c) // Returns 1integer d[-10 to 50]LowerBound(d) // Returns - 10二、Blob(大二进制对象)函数Blob函数得到Blob数据类型的信息、完成数据类型转换以及操作Blob类型数据。

PB开发技巧代码集合

PB开发技巧代码集合:00. 凡事预则立,不预则废。

生于忧患,死于安乐。

时间就是生命,1分钟可以做什么!01. 获取窗口属性的方法:dw_1.selectrow(0,false)//不选中任何行ls_read = dw_1.Object.DataWindow.ReadOnly // 获取dw_1只读属性ls_read = dw_1.Describe("DataWindow.ReadOnly") // 获取dw_1只读属性(同上) dw_1.Object.DataWindow.ReadOnly="no" // 取消dw_1只读属性02. 程序中使用SQL语句:基本格式如下:Select name,salary,sexInto :ls_name, ls_salary, ls_sexFrom studentWhere id = :li_id; //(注意逗号分隔,冒号变量,分号结束)03. SQL基本语句:1) 创建表:create tableCreate Table Personal(P_id varchar2(25) primary key not null,P_name varchar2(25) not null, P_pwd varchar2(25) not null,P_age varchar2(25) not null);2) 删除表:drop tableDrop table personal;3) 修改表:alter tableAlter table personalAdd notes varchar2(25);4) 单行基本格式:Select (Distinct/All) name, pwd , sexFrom tabA a, tabB bWhere a.id = b.idGroup by name, pwd, sexHaving nameOrder by a.id;5) 嵌套查询:例子1:查询张三所在部门所有人的信息。

pb模板汇翠

PB精选汇翠1.在数据输入时,若未保存,而直接退出窗口时,应给出保存数据的提示,实现时应为窗口的CloseQuery事件中加入如下代码:int rc1,rc2dw_1.accepttext()if dw_1.modifiedcount() + dw_1.deletedcount() > 0 thenrc1 = messageBox(…警告:‟,…是否需要保存所做的修改?‟,question!,yesno!,1)if rc1 = 1 thenif dw.1update() > 0 thencommit;message(…‟…提示:‟,…数据保存成功!‟)elserollback;rc2 = messagebox(…‟,…是否回到编辑状态?‟,question!,yesno!,1)if rc2 = 1 thenreturnelsereturn 0end ifend if说明:①. return 0:表示窗口能够关闭1:表示窗口不能够关闭②. dw_1.update() 1:表示成功-1:表示出错③. sqlca.sqlcode 0:表示成功-1:表示出错100:没有找到相关的信息2.数据窗口的插入:long u_rowu_row = dw_1.insertrow(0)dw_1.scrolltorow(u_row)dw_1.setcolumn(1)dw_1.setfocus()3.数据记录的删除①. 删除当前记录dw_1.deleterow(0)if dw_1.update() > 0 thencommit;elserollback;end if②. 删除表中的指定记录如: delete form yggzzzb where ygdh =: ls_string;if sqlca.sqlcode = 0 thencommit;elserollback;end if4.数据记录的更新,保存—在相应按扭的clicked事件中加入:①. int nconnect;dw_1.setTransobject(SQLCA)dw_2.setTransobject(SQLCA)n = dw_1.update(True,False)if n=1 thenn=dw_2.update(True,False)end ifif n=1 thendw_1.resetupdate()dw_2.resetupdate()commit;dw_1.reset()dw_2.reset()end if②. dw_1.accepttext()if dw_1.update() > 0 thencommit;elserollback;end if5.记录指的移动a.移动到第一条记录dw_1.selectrow(dw_1.getrow(),false)dw_1.scrolltorow(0)dw_1.selectrow(1,True)dw_1.setfocus()b.移动到上一条记录if dw_1.getrow()>1 thendw_1.selectrow(dw_1.getrow(),false)dw_1.scrollpriorrow()dw_1.selectrow(dw_1.getrow(),True)dw_1.setfocus()elsemessageBox(‘’,‘已经达到数据库的顶部!’)end ifc.移动到下一条记录integer endofdwendofdw = dw_1.Rowcount()if dw_1.getrow() < endofrow thendw_1.selectrow(dw_1.getrow(),false)dw_1.scrollnextrow()dw_1.solectRow(dw_1.getrow(),true)elsemessageBox(‘’,‘已经达到数据库的底部!’)end ifd.移动到最后一条记录dw_1.selectrow(dw_1.getrow(),false)dw_1.scrolltorow(dw_1.rowcount())dw_1.selectrow(dw_getrow(),true)dw_1.setfocus()6.数据窗口中回车事件的响应①. 先为该数据窗口控件定义一个用户事件:ENTER pbm_dwnprocessenter②. 在该ENTER事件中加入如下代码:send(handle(this),256,long(9,0))return 17.设置数据窗口的查询模式实现:在某一指定按扭的Clicked事件中加入:①.if “yes” = dw_1.describe(“datawindow.Querymode”) thendw_1. modify (“datawindow.Querymode=no”)this.text = “Query off”dw_1.retrieve()elsedw_1.modify(“Datawindow.Querymode =yes”)this.text=“Query on”end if在Querymode模式下,将汉字作为查询条件时,应在汉字前加上等于号,而不必加上引号③. dw_1.setRedrow(false)if cb_1.text=“Execute” thendw_1.modify(“datawindow.querymode=no”)dw_1.Retrieve()st_1.text=…‟cb_1.text=…setQuery‟elsedw_1.modify(“datawindow.querymode=yes”)dw_1.setfocus()cb_1.text=“Execute”st_1.text=“请先输入查询条件,再单击Execute按扭”end ifdw_1.setredrow(true)8.在具有Querymode状态中的单击排序的实现:①.定义窗口的实例变量dwobject idwo_laststring is_last_nameint ii_dwo_colorBoolean ib_ascending②.在窗口的open事件中加入setnull(idwo_last)③.在数据clicked事件中加入if dw_1.describe(“datawindow.Querymode”)=“no” thenint i_rcstring s_nameBoolean b_ascending = TrueIf row = 0 thenIf dwo.type=“text”thenS_name =S_name =left(s_name,len(s_name)-2)If not Isnull(idwo_last) thenIdwo_last.color = ii_dwo_colorIf s_name = is_last_name then b_ascending = not ib_ascendingEnd ifDwo.color = RGB(255,0,0)If b_ascending thenThis.setsort(s_name + “ A”)ElseThis.setsort(s_name + “ D”)End ifI_rc = this.sort()If I_rc<>1 then messageBox(…Error‟, …sort() error‟)Idwo_last = dwoIs_last_name = s_nameIb_ascending = b_ascedingEnd ifEnd ifEnd if注:若用于不具备Querymode状态的数据,此时的绿色语句应省略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档