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

2019-03-15 20:10

childern:boolean 类型,指明该列表项是否有子节点。

classdefinition:poweroject 类型,包含对象的类定义信息。

cuthighlighted:boolean 类型,指明该列表是否是切(CUT)操作的对象 data:any 类型,开发人员希望与列表项一起保存的任何数据。

drophighlighted:boolean 类型,指明该列表是否是拖放(dragdrop)操作的对象

expanded:boolean 类型,指明该列表项是否已经被展开。 expandedonce:boolean 类型,指明该列表项是否是至少已经展开过了一次。(可用于判断该列表项是

否已经填充了子节点项目)

hasfocus:boolean 类型,指明列表项是否能够得到控制焦点。 itemhandle: long 类型,标示该列表项的句柄。 label: string类型,列表项的题文本。

level:integer 类型,指明该节点在树状视图控件中的层次。

overlaypictureindex:integer 类型,指定该列表项所使用的覆盖图标的索引号。该图标显示在列表项图标 的上面,取0时不显示覆盖图标

pictureindex:integer 类型,指明列表项所使用的图图标索引号。相应的图片显示在列表的左边。取0时,不显示

selectpicutureindex:integer 类型,指明该列表项选中时所使用的图标索引号。取0,则该列表被选中时不显示图标图片

selected:boolean 类型,指明相应列表项是否外于被选中状态

statepictureindex:integer类型,指明列表项所使用的状态图标的索引号。 2.几个经常用到的函数 (***注: ItemPopulate 事 件: 该 事 件 在 某TreeViewItem 项 第 一次 展 开 时 触 发, 触 发 的 同 时 系 统 会 将 该TreeViewItem 项 的句 柄 通 过 参 数handle 传 递 过 来。

SelectionChanged 事 件: 该 事 件 在 每 次 变 更 选 择 项 后 触发, 触 发 的 同 时 系 统 会 将 变 更 前 后 选 择 项 的 句 柄 通 过参 数oldhandle、newhandle 传 递 过 来。

treeviewname. getitem(itemhandle,item)//获取句柄为itemhandle的列表项的完整信息

Treeviewname.setitem(itemhandle,item) //设置指定列表的项的数据。

itemhandle:要设置数据的列表项的句柄,item:TReeview 对象,指定新的数据值

一般说来,应用程序使用GETitem()得到某个列表项的数据,修改得到的列表项数据后,使用SETitem()将数据修改反映到树形视图控件中。 如:在树形视图iTEmexpanding 事件中加入:

treeviewitem l_tvi long ll_tvi

ll_tvi=tv_list.finditem(currenttreeitem!,0) //得到当前列表项的句柄

tv_list.getitem(ll_tvi,l_tvi) //得到当前列表项的数据 l_tvi.pictureindex=5 //修改图片索引

l_tvi.selectpictureindex=5

tv_list.setitem(ll_tvi,l_tvi) //更改当前列表项数据

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

treeviewname.selectitem(itemhandle)//选中并加亮显示句柄为itemhandle的列表项的有关数据 (注:itemhandle 为有关列表项的句柄,

item为一个treeviewitem类型的变量。执行成功进返回1,不成功为-1/ treeviewname.collapseitem(itemhandle)//折叠句柄为itemhandle的列表项节点

treeviewname.expanditem(itemhandle) //展开句柄为itemhandle的列表项节点

treeviewname.expandall(itemhandle) //展开itemhandle列表项节点的各级所有子节点项

treeviewname.sort(itemhandle,sorttype)对itemhandle列表项下的子列表进行排序。

treeviewname.sortall(itemhandle,sorttype)对itemhandle列表项下的各级子列表进行排序。

****************8888 1.插入树状视图的项

treeviewname.insertitem(handleparent,handleafter,item)//在指定层次的指定位置插入

treeviewname.insertitemfirst(handleparent,item)//在指定层次的的第一个位置插入

treeviewname.insertitemlast(handleparent,item)//在指定层次的最后一个位置插入

treeviewname.insertitemsort(handleparent,item)//在指定层次插入后进行排序

(explain: handleparent 为所要插入列表项的父节点的句柄(此句柄由相应的itemhandle属性值来确定,对于根节点来说,为0)

handleafter用于指出在同一层次中句柄为handleafter的列表项的后面插入一个新的列表项,item为所要插入的treeviewitem对象)

***特注:使用上格式,要求提供所要插入列表项的完整信息,即:必须先声明一个列表项,然后在指定的层次的适当位置进行插入操作。 ex: treeviewitem tv1

tv1.label=\v1.statepictureindex=0 tv1.overlaypictureindex=1 或者:

treeviewname.insertitem(handleparent,handleafter,lable,pictureindex)//在指定层次的指定位置插入

treeviewname.insertitemfirst(handleparent,lable,pictureindex)//在指定层次的的第一个位置插入

treeviewname.insertitemlast(handleparent,lable,pictureindex)//在指定层次的最后一个位置插入

treeviewname.insertitemsort(handleparent,lable,pictureindex)//在指定

层次插入后进行排序

2.在运行程序中,若要向各图标列表中添加图片文件,可以选择下面函数: treeviewname.addpicture(picturename) //添加列表项图标所对应的图片 treeviewname.addstatepicture(picturename) //添加列表项状态图标所对应的图片(*若成功,返回所加图片的索引号,不成功,返加-1)

(注:在使用上函数之前,可利用控件的picturewidth 和pictureheight 来设置图片的大小

3.查找有关列表项羡并获取其句柄:

treeviewname.finditem(navigationcode,itemhandle) //navigationcoed: treenavigation 枚举类型:

roottreeitem! 查找第一层列表项中的第一个列表项的句柄,如果树形视图中还没有列表项,那么finditem()返回-1

nexttreeitem! 查找与itemhandle列表项同一个父节点中同一层下一个列表项,如还没有下一个列表项,那么finditem()返回-1

previoustreeitem! 查找与itemhandle列表项同一个父节点中同一层上一个列表项,如还没有上一个列表项,那么finditem()返回-1

parenttreeitem! 查找itemhandle列表的父节点,如果itemhandle 列表是第一层的列表项,那么finditem()返回-1

childtreeitem! 查找itemhandle列表的第一个子列表项,如果该列表项被折叠,那么用childtreeitem!参数调用finditem()后,该列表项被展 开,如果没有子列表项,该函数返回-1

firstvisibletreeitem! 找出树形视图控件当前可视区中显示的第一个列表项,而不管该列表项位于哪一层上。树形视图控件上滚动条的位置决 定了哪 一个列表项是第一个可视列表项。

nextvisibletreeitem! 找到itemhandle之后的下一个已展开的列表项,而不考虑层次,当已经达到树形控件的最后一个已展开列表项时,返回-1

previousvisibletreeitem! 找到itemhandle之后的前一个已展开的列表项,而不考虑层次,当已经达到树形控件的第一个已展开列表项时,返回-1

currenttreeitem! 找到当前所选列表项,如果没有当前列表项,则返回-1

drophighlighttreeitem! 找出drophighted属性最近被设置为true的列表项。如果该属性从未被设置过true 或设置true后由于某些操作又将 该属性设为false时,该函数返回-1

//itemhandle: 基准列表的句柄。如果navigationcode 指定关系为roottreeitem!,firstvisibletreeitem! currenttreeitem! 和drophighttreeitem!

那么表项的句柄itemhandle 设置为0

//函数返回值为:long ,如果成功,则返回指定列表表项的名柄

****特注:除了以childtreeitem!调用finditem()函数外,finditem()不查找折叠的列表项。故需要使用其它参数值在所有列表中查找某列表项句柄, 需要使用expanditem() 和expanditemall() *************************************88

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

在数据窗口的itemchanged(当数据窗口某一区域内的数据被修改并且失去输入焦点后就会触此事件上),itemerro(数据窗口某一区域内的数据被修改并且失去输入焦点后,数据没有通过该列的合法性校验时)事件中:

三个参数:row:long类型,用来表示用户修改的行号;dwo:dwobject类型,用来表示用户修改过的对象;data:string类型,用来表示用户修改后的数据。 其中itemchanged的返回值为long类型: 0 接受修改后的数据,继续操作,默认值。1:拒绝修改后的数据,不允许切换输入焦点。 2:拒绝修改后的数据,但允许切换输入焦点。

itemerro的返回值为long类型: 0:拒绝修改后的数据,并且显示一个错误错误信息框。 1:拒绝修改后的数据,但不显示一个错误错误信息框。 2:接受修改后的数据。 3:拒绝修改后的数据,但允许输入焦点的切换。

dberror事件(当一个数据库操作发生错误时,触发此事件)有五个参数: sqldbcode:long类型,用来表示错误代码。当数据库系统中返回时,其返回值有:-1:由于在事务对象中所需的值不存在,从而无法连接数据库。 -2 :无法连接数据库。 -3:在提取数据库后,其它用户更改了数据库的数据,从而使保存操作失败。 -4:在向数据库中写入一个blob类型变量时失败。

sqlerrtext:string类型,数据库 管理系统返回一段错误信息描述。 sqlsynax:string类型,提交数据库管理系统的完整的sql语句。 buffer:dwbuffer类型,用来指明发生错误的行所在缓冲区。(delete! 数据窗口中所有已经被删除的行。filter!,primary!) row:long 类型,表示数据库中发生错误的行号。

返回值: 0 :显示错误信息 1:不显示错误信息。 (**注:默认情况下,如果发生错误,PB会显示一个英文提示,如果提示为汉字则可如: string ls_output

rollback using sqlca;

ls_output=\在当前表第\行下执行sql语句时发生编号为\的错误:\返回的错误解释:\

messagebox(\错误\ return 1

rowfocuschanged事件中的参数:currentrow:long类型,用来表示新的当前的行号。返回值:0表示继续操作。(注:setrow()也会触发此事件。)

*********************************************** dwo: 说明:有若干个数据窗口却传递一个参数时

如:可以找出数据窗口中对象的类型 ls_type = dwo.Type ls_type可能:bitmap (for Picture) button column

compute (for Computed Field) graph groupbox line ole

ellipse (for Oval) rectangle

roundrectangle report tableblob text

datawindow (when the user doesn't click a specific control) 也可得到数据窗口中的列字段名:ls_name = dwo.Name 也可得到具体的数据:ls_data = dwo.Primary[row]

*************************************************8 dwcontrol.setsort(format) //对数据窗口排序 format: string 类型,可以用列号(列号前加#)或列名 如果,不输入条件,则PB提示用户 输入 。 如: string newsort

newsort=\ dw_emp.setredraw()

dw_emp.setsort(newsort) dw_emp.sort()

dw_emp.setredraw(true)

dw_emp.groupcalc()//保持正确的数据分组 *********************************************8 dw1.getitemstatus()

//返回指定缓冲区中指定行,列数据项的修改状态,有效值为:DataModified!,new!,newmodified!,notmodified! datamodified! 自数据检索后,指定列或指定行中包含了某些列的数据已被修改 new! 指定的行是新插入的行,但还没有为其任意一列设置值。只能适用于行,而不适用于单独的列。

newmodified! 指定行是新插入的行,并且其中的某些列已经被设置了新值。除了用户输入和程序中使用SETITEM()修改数据后得到该状态外, 当行中某列有缺省时,新插入的行也将得到NEWMODIFIED!状态。该只能适用于行,而不适用于单独的列。

对于主缓冲区或者过滤缓冲区,若其状态为newmodified!的行的UPDATE()执行INSERT,而对于DataModified!则UPDATE()执行UPDATE()

对于删除缓冲区来说,new!,newmodified!状态执行UPDATE()不运行UPDATE()或DELETE()

如:dw_1.GetItemStatus ( dw_1.GetRow () , 0, Primary! ) //0表示所有列 **************************** dw_1.resetupdate()

//清除数据窗口控件主缓冲区、过滤缓冲区的更新标志并清空删除缓冲区。 如果想在一个事务中更新多个数据窗口时,那么应用程序可以在更新每个数据窗口时都不清除更新标志。当所有的数据窗口都成功完成后,对

每一个数据窗口调用RESETUPDATE()来清除更新标志。如果某个数据窗口的更新失败时,应用程序可以保留更新状态,提示用户更正错误后,


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

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

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

马上注册会员

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