在学习和使用PB时候所进行的知识总结(3)

2019-03-15 20:10

重新来更新数据窗口。 如:更新两个数据窗口对象 int li_rt

dw1.settrans(sqlca) dw2.settrans(sqlca)

li_rt=dw1.update(true,false) if li_rt=1 then

li_rt=dw2.update(ture,false)

if li_rt=1 then //两个数据窗口都更新成功后清除更新标志并提交修改。

dw1.resetupdate() dw2.resetupdate() commit;

else //第二个数据窗口更新失败回滚事务 rollback; end if end if

dw1.find()

//用法一:当数据窗口不是RICHTEXT风格时,在数据窗口控件中找满足条件的值。

dw1.find(expression,start,end)

expression:一个字符串,用于指定查找的条件。start:开始行,end :结束行

返回值:long :返回指定范围内满足条件的第一个数据行的行号。如果找到则返回行号。(注:要防止死循环了) 如: long ll_find=1,ll_end

ll_end=dw1.rowcount() ll_find=dw1.find(searchstr,ll_find,ll_end)

do while ll_find>0

//***********处理找到的行 ll_find++

if ll_find>ll_end then exit //防止死循环。 ll_find=dw1.find(searchstr,ll_find,ll_end) loop

********************************************* treeview.getitem(itemhandle,item)

//itemhandle:要得到完整信息的列表项的句柄。 item: 用于保存指定列表项的完整信息。

成功时,返回 1,错误时,返回 -1

用此函数可以得到指定列表项的完整信息,如标题,句柄,使用图片索引等。这样,应用程序可使用setitem()函数来完成列表项的修改与更新。 ******************************************************

dw_1.rowsmove(startrow,endrow,buffer,targetdw,beforerow,targetbuffer)

//将一个数据窗口控件中指定的行移动到指定的另一个数据窗口,或者将同一个数据窗口的控件中一个缓冲区的指定行移动到另一个缓冲区 startrow:long 类型,指定要移动的一组数据行的第一行 endrow: long 型 ,指定要移动的一组数据的最后一行

buffer: dwbuffer 型 ,指定从哪个缓冲区中移动行。其值为: priamry!,delete! filter!

targetdw:要把数据移动到的目的数据窗口名称。

beforerow:long 类型,指定移动的数据行插入到目的数据窗口的哪一行前面。

targetbuffer:指定移动的数据放置到目的数据窗口控件的哪个缓冲区中。 返回正确时为1,错误 为-1。 该函数通常用于:

(1):从数据窗口的主缓冲区中移动多行数据到删除缓冲区,以此代替一次删除一行数据。

(2):把删除缓冲区中的数据移动到主缓冲区中,这样就可以在应用程序中实现 恢复功能(UNDO)

如:dw_1.rowsmove(1,dw_1.deletedcount(),delete!,dw_1,1,primary!) *********************************************** relativedate(date,n)

功能得到指定日期前多少天或后多少天的日期。

参数date:Date类型,指定基准日期n:integer类型,指定天数返回值Date。当n的值大于0时返回参数date指定日期后第n天的日期;

当n的值小于0时返回参数date指定日期前第n天的日期。如果任何参数的值为NULL,则RelativeDate()函数返回NULL。

************************************************** 获得数据窗口的所有行:dwcontrol.Object.Data {.Primary } {.datasource }.Selected

datasource(optional) Current 或Original 如:dw_1.Object.Data.Selected

dw_1.Object.Data.Primary.Selected dw_1.Object.Data.Current.Selected

dw_1.Object.Data.Primary.Current.Selected ********************************

DW1.SETdetailheight(startrow,endrow,height) //设置指定范围内每行的高度.

如:dw1.setdetailheight(2,3,0) //将数据窗口中的第2,3行的高度设为0,这样用户就看不见了。

******************************************* dw1.settext(text)

//将“漂浮”在数据窗口控件当前行,当前列上的编辑框上的内容换为指定文本。text:希望放到编辑 框中的文本。

成功时返回1,失败时返回-1 如:string ls_item_no

if dwo.name='p_2' then open(w_gycx)

ls_item_no=message.stringparm

if ls_item_no=\ this.setcolumn(\ this.settext(ls_item_no) this.accepttext() end if

***********************************8 dw1.isselected(row)

eg: integer currow boolean result currow=dw1.getrow()

dw1.selectrow(currow,not dw1.isselected(currow))

*********************************************************

函数DirList以满足条件的文件名填充列表框的列表项,其使用方法如下: listboxname.DirList(文件模式,文件类型{,statitext})

文件模式:STRING 类型,通常使用掩码表示(比如:*.INI、*.text) 其中文件类型的值如下所示:

0 可读/可写文件; 2 隐含文件; 16 子目录 ;16384 驱动器

1 只读文件; 4 系统文件; 32 归档文件; 32768 除可读/可写外所有类型. 如果想在列表框中同时列出几种类型的文件,那么通过把代表各类型的数值相加来指定。如0+16+16384时,下拉列表框列出可读/可写文件、子目录以及驱动器

statictext:可选项,指定要显示当前驱动器的静态文本(statictext)控件名。 返回值:BOOLEAN,如果指定的搜索路径有效,并用指定项填充了列表框后,返回TRUE。 如:lb_1.dirlist(\在下拉列表框中填充可读/可写类型文件的文件名(文件名须与C:EMPLOYEE*.TEX\匹配)

******************************************************** listboxname.dirselect(seletion)

//当列表框用DIRLIST()填充后,该函数得到用户的选择并将其放入指定的变量中

参数:selection:string类型,用于保存用户选择的带路径的文件名。 返回值 :boolean.当用户的当前选择是驱动器字符或目录时,该函数返回TRUE,当用户的当前选择是个文件时,返回FALSE。

如:下面代码是列表框SELETIONCHANGED事件处理程序的一部分,它使用DIRSELECT()来检测用户选择了是否一个文件。如果不是的话, 代码就

把目录名与文件模式拼接起来,之后调用DIRLIST()使用满足条件的文件名填充列表框,并把当前驱动器和目录显示在静态文本控件ST_FILEPATH中: string ls_filename,ls_filespec=\if lb_1.dirselect(ls_filename)then //如果ls_filename不是文件,那么将目录与文件模式拼接起来

ls_filename=ls_filename+ls_filespec

lb_1.dirlist(ls_filename,16400,st_filepath)

end if

***************************************************************************

listviewname.finditem(startindex,label,partial,wrap) //查找满足指定条件下的一个列表项。

startindex:列表项索引号,指定从哪个列表项开始查找。 label:string 类型,指定查找目标。 PARTIAL:BOOLEAN类型,当设为TRUE时,使用部分匹配

查找。 wrap:boolean类型,当为TRUE时,查找到最后一个列表项后,将从头开始继续查找。

返回 INTEGER。返回与LABEL参数匹配的列表项的索引号,不成功则返回-1。

要想使从头开始查找,那么STARTINDEX 的值为0。 如:listviewitem l_lvi long ll_find

ll_find=lv_1.finditem(0,\你好\ if ll_find=-1 then

messagebox(\出错\未找到指定的列表项\ else

lv_1.getitem(ll_find,l_lvi) l_lvi.hasfocus=true l_lvi.selected=true

lv_1.setitem(l_find,l_lvi) end if 语法二:

lv.finditem(startindex,direction,focused,selected,cuthighlighted,drophighlighted)

direction: 指定查找方向。有效值: directionall! 全部查找;

directionup! 向上查找,directondown! 向下查找;directionleft!向左,directonright! 向右

focused:boolean ,当为TURE时,查找下一个具有焦点的列表项。 selected:为ture时,查找下一个选中列表项。

cuthighlighted:为ture时,查找下剪切操作对象的下一个列表项 drophightlighted;为true时,查找被拖曳对象的下一 个列表项。 ____________________________________________________________________ listviewname.getitem(index,item)

//index:列表项索引,指定要得到其状态信息的列表项

item:listviewitem类型,用于保存指定列表项的状态信息。 成功时,返回1;不成功为-1 如:listviewitem lvi_1

lv_list.getitem(lv_list.selectedindex(),lvi_1) lvi_1.statepictureindex=2

lv_list.setitem(lv_list.selectdindex(),lvi_1) ***********************************************888

Send(handel,messageno,word,long)

//向窗口发送指定的消息并立即执行相应的事件处理程序

handle:long类型,指定窗口的系统句柄,将向该窗口发送消息。messageno:unsignedinteger类型,指定要

发送的消息号。 word:long 类型,指定与消息一起发送的word类参数值。如果Messageno参数指的消息不使

用该参数,那就将其设为0。long:long/string类型,指定与消息一起发送的LONG型参数值或字符串返回值long.

在函数执行成功 时返回WINDOWS系统的SENDNESSAGE()的返回值 ,发生错误时返回-1。

用法:Send()函数用于向窗口发送非PowerBuilder预定义事件的消息,这个窗口可以是PowerBuilder应用的窗口,也可以是其它应用的窗口。 Send()函数直接触发指定窗口相应的事件,执行事件处理程序后返回到调用应用中,这一点与Post()函数不同,Post()函数把发送的消息放置

在指定窗口消息队列的尾部,然后返回到应用程序中,它并不等待相应事件事件处理程序的执行。因此,我们说Post()函数采用的是异步方式,

Send()函数采用的是同步方式。Send()函数的参数handle指定接收消息的窗口句柄,对PowerBuilder窗口来说,使用Handle()函数可以得到该句柄。 对其它应用程序的窗口来说,可以调用系统API函数查找窗口并得到相应窗口的句柄。实际上,Send()函数把它的各个参数直接传送给Windows的系统

调用SendMessage()。在各种C++开发工具的WINDOWS.H文件中可以查到各消息编号。如果应用程序要发送PowerBuilder定义事件(包括预定义事件和用户定义事件),

那么使用TriggerEvent()函数既简单有方便。当应用程序在long参数位置指定一个字符串时,Send()函数复制一个该字符串的副本,然后将副本的地址传送给指定窗口。

如:Send(Handle(lv_1), 277, 0 ,0)//向上滚动 ************************

registryset(key,valuename,valuetype,value) //在系统注册库中设置或创建指定键。

key:指定键名。valuename:string 类型,指定要访问值的名称。每个键可以有一个未命名的值和多个命名的值。要访问未命名的值,把该参数指定为空字符串。

如果注册库中不存在指定值名,该函数将创建新的值名.

valuetype:可能值为:regstring!以字符结束的字符串。regeexpandstring!以空字符结束的字符串,其中包括了对环境变量的非扩展应用。RegBinary!二进制数据

ReguLong!32位数据,ReguLongBigEndian!32位大数据,RegLink!Unicode符号链,RegMultiString!动态字符串数组,为了唯一地标识某个键,在key参数中,可以从根键开始依次指定各级父键,各键之间使用反斜杠()分隔。 value:要设置的值,其数据类型应该与valuetype参数指定的类型相匹配。


在学习和使用PB时候所进行的知识总结(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:技术经济学试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: