PB列表控件Word文档下载推荐.docx
- 文档编号:21332016
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:27
- 大小:35.20KB
PB列表控件Word文档下载推荐.docx
《PB列表控件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《PB列表控件Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
Lds_cust=Createdatasotre
This.DeleteItems()//首先清除ListView中其他的项目
//为报表显示样式创建多个列
This.AddColumn("
公司"
Left!
700)
联系地址"
500)
电话"
400)
//检索数据
lds_cust.dataobject="
d_customer"
lds_cust.SetTransObject(SQLCA)
li_numrows=lds_cust.Retrieve()
//如果没有检索到数据则直接返回
Ifli_numrows<
=0Then
Destroylds_cust//释放DataStore对象的内存空间
Return
//返回
EndIf
Forli_index=1toli_numrows
//如果检索到了数据,对数据逐条处理
llvi_cust.label=lds_cust.Opany_name[li_index]+"
~t"
+&
lds_cust.Object.address[li_index]+"
lds_cust.Object.phone[li_index]//项目标签
llvi_cust.data=lds_cust.Object.id[li_index]//项目的数据
llvi_cust.PictureIndex=1//项目的图片
This.AddItem(llvi_cust)
//添加该项目
Next
Destroylds_cust//释放DataStore对象的内存空间
上面的脚本使用DataStore来提取数据,如果检索到数据,就将每条数据添加到ListView控件中,如果没有检索到数据就直接退出。
添加项目到ListView时,首先为ListViewItem类型的变量赋值,包括label,data和pictureindex三项,赋值完毕后将该变量的值添加到ListView中。
如何在不同的显示样式之间进行切换?
ListView控件的属性View是一个枚举类型的属性,通过修改该属性使其取不同的值可以改变该控件的显示样式。
可以使用的取值有:
ListViewSmallIcon!
表示以小图标样式显示。
ListViewLargeIcon!
表示以大图标样式显示。
ListViewList!
表示以列表样式显示。
ListViewReport!
表示以报表样式显示。
比如,可以设置多个命令按钮,不同的按钮被点击时都改变ListView的显示样式。
在其中的“报表显示样式”按钮上可以编写如下脚本:
lv_1.View=ListViewReport!
当然,还可以在一个菜单的各个菜单项中编写脚本,当在ListView控件上使用鼠标右键时弹出该菜单。
具体方式取决于开发人员的编程风格和用户的具体要求。
如何提取选中项目的内容?
实际上显示样式只是一个表面问题,而提取选中项目的内容才是最终的目的。
应该首先判断哪个项目选中,然后再读取选中项目的数据。
判断项目是否选中可以通过SelectedIndex函数、ListViewItem类型对象的Selected属性等来实现。
读取指定项目的数据可以通过ListViewItem类型对象的Label和Data属性来获取。
下面是一个最复杂的典型编程,该程序从一个允许同时选中多个项目的ListView控件中读取所有选中项目的标号和数据,脚本如下:
Intli_index
ListViewItemllv_item
Forli_index=lv_1.SelectedIndex()Tolv_1.TotalItems()
lv_1.GetItem(li_index,llv_item)
Ifllv_item.SelectedThen
MessageBox("
提示"
String(li_index)+"
是选中的~r~n标号:
"
llv_item.label+"
数据:
+String(llv_item.data))
上面的脚本首先定义一个ListViewItem类型的变量,使用GetItem将ListView的项目读取到该变量中,通过判断该变量的Selected来得知项目是否选中。
函数SelectedIndex来获取第一个被选中的项目的索引号,循环直到处理完最后一个项目。
在其他很多资料上都介绍的使用State函数循环处理多选ListView中的项目,实际上是行不通的。
另外,如果在ListView控件的相关事件中编程,可以直接使用事件的相关参数来获取选中的项目。
比如,在DoubleClicked事件中编写脚本,读取用户双击项目的数据,并根据该数据做一定的处理,这也是一种比较常用的典型编程方法。
下面是该事件中一段典型的脚本:
This.GetItem(index,name)
Dw_1.Retrieve(llv_item.Label)
上面的脚本在用户双击选中ListView中的项目时读取该项目的标签,并以该标签作为参数检索其他的数据窗口。
【属性】
ListView属性
▲Visible
布尔类型的变量,表示ListView是否可见。
该属性缺省为True。
▲Enabled
布尔类型变量,表示ListView是否可用。
▲FixedLocations
布尔类型变量,表示用户是否可以拖动控件中的项目来改变其位置。
该属性缺省为False。
▲EditLabels
布尔类型变量,表示用户是否可以在控件中编辑项目的标签。
▲AutoArrange
布尔类型,表示是否自动排列图标。
该属性的缺省值为False。
▲ExtendedSelect
布尔类型,表示用户是否可以选择多个项目。
该属性的缺省值为False,是一个非常重要的属性。
▲ButtonHeader
布尔类型,当为True时报表视图中的标题显示为按钮而不是标签,该属性的缺省值为True。
▲DeleteItems
允许用户使用Delete键删除列表中的项目。
▲HideSelection
如果该属性为True,当控件失去焦点时,选中的项目不显示选中状态;
如果该属性为False,当控件失去焦点时选中项目仍然显示为选中状态。
该属性的缺省值为True。
▲LabelWrap
该属性设置项目的文字是否换行显示还是只在一行显示。
该属性的缺省值为True,表示换行显示。
▲Scrolling
该属性表示控件是否可以该动显示其中的项目。
缺省为True。
▲ShowHeader
表示标题是否显示在报表视图中。
▲CheckBoxes
表示状态图片是否可以被CheckBox替代。
如果设置该属性为True,则CheckBox缺省为非选中状态。
▲TrackSelect
该属性可以指定当鼠标在项目上移动时是否以不同的颜色表示。
当该属性设置为True时,鼠标在项目上停留则以不同的颜色表示,当停留一定时间后自动选中该项目。
▲OneClickActivate
表示鼠标单击是否激活ItemActivate事件。
当该属性取值为True时,单击鼠标触发ItemActivate事件,并且鼠标位于某项目上时导致项目的颜色改变(效果和TrackSelect相同)并且鼠标的形状为手型。
▲TwoClickActivate
表示鼠标双击是否触发ItemActivate事件。
▲GridLines
指定报表样式时是否显示网格线。
▲HeaderDragDrop
该属性指定在报表样式中列头是否可以拖动来改变列的顺序。
▲FullRowSelect
该属性指定在报表样式中是否选中整行的数据。
▲UnderlineCode
当0neClickActive属性为True时,该属性有效。
该属性指定没有选中的项目是否显示下划线,为True时表示显示。
▲UnderLineHot
不管0neClickActive还是TwoClickActivate属性为True,该属性都有效。
该属性取值为True,表示HotTracking有效,并且高亮显示的项目带有下划线。
▲Border
该属性指明ListView控件是否有边框,缺省值为True。
▲BorderStyle
枚举类型的属性,可以设定ListView控件的边框类型。
当Border属性取值为True时该属性有效。
缺省为StyleLower!
该属性的可用值有StyleBox!
,StyleLowered!
,StyleRaised!
和StyleShadowBox!
▲SortType
枚举类型的属性,缺省值为Unsorted!
,表示不进行排序。
可以使用的值还有Ascending!
(升序),Descending(降序),UserDefined!
(用户定义)和Unsorted!
(不排序)。
▲View
枚举类型的属性,表示该控件中的项目初始化时的显示样式,缺省值为ListViewLargeIcon!
,为大图标显示。
可以使用的值有ListViewLargeIcon!
(大图标显示样式),ListViewSmallIcon!
(小图标显示样式),ListViewList!
(列表显示样式)和ListViewReport(报表显示祥式)。
▲Accelerator
为该控件定义快捷键。
快捷键允许用户使用键盘选中某个项目,而不是使用鼠标。
快捷健在项目标签的第一个字母下面显示下划线表示。
ListViewItem属性
ListView控件的结构比较复杂,使用该数据结构有助于简化对该控件的操作。
该数据结构只有少数的函数,大部分时候使用该控件的属性来操作,或者是给该类型的数据赋值后将其插入到ListView控件中。
ListView控件最重要的数据结构ListViewItem,该结构用来保存ListView控件中每个项目的信息。
它具有以下属性:
▲CutHighLighted
布尔类型属性,当该属性为True时项目高亮显示,并且是进行剪切操作的目标。
▲Data
any类型的属性,是和项目相关联的数据值。
▲DropHighLighted
布尔类型属性,该属性取值为True表示项目高亮显示,并且是拖放的目标。
▲HasFocus
布尔类型属性,该属性为True时表示项目在当前具有焦点。
▲ItemX
Integer类型的属性,该属性的取值是项目在ListView控件中的X坐标。
▲ItemY
Integer类型的属性,该属性的取值是项目在ListView控件中的Y坐标。
▲Label
String类型的属性,该属性的取值是项目文本标签中的内容。
▲OverlayPictureIndex
Integer类型的属性,其取值是覆盖图像列表中图片的索引号。
▲PictureIndex
Integer类型的属性,它的取值是项目图标的控件图像列表内的索引号。
▲Selected
布尔类型的属性,该属性取值为True时表示该项目是选中的。
该属性是一个比较重要的属性,经常用来判断项目是否选中。
▲StatePictureIndex
Integer类型的属性,该属性的取值是控件状态图像列表中的索引号。
【事件】
◆BeginDrag
index
当用户在控件上单击鼠标并开始拖动时触发该事件
◆BeginLabelEdit
当用户单击选中的标签时或者调用相应的函数开始编辑标签时触发
◆BeginRightDrag
当用户在控件上单击鼠标右键并开始拖动时触发该事件
◆Clicked
当用户在控件上点击鼠标左键时触发该事件。
当双击鼠标左键时也触发该事件
◆ColumnClick
column
当以报表样式显示并且ButtonHeader属性设置为True时该事件才有可能触发。
当用户点击栏目标题时触发
◆Constructor
没有参数
控件创建时触发该事件。
通常是在包含该控件的窗口触发窗口的Open事件之前触发该事件
◆DeleteAllItems
当所有的项目删除时触发该事件
◆DeleteItem
当某一个项目被删除时触发该事件
◆Destructor
当控件撤消时触发。
通常是在窗口的Close事件触发之后紧跟着触发
◆DoubleClicked
当用户双击控件时触发该事件
◆DragDrop
source、index
当用户拖动一个对象到控件上并松开鼠标放下该对象时触发
◆DragEnter
source
当用户拖动其他对象到该控件中时触发
◆DragLeave
当用户拖动对象并离开该控件时触发
◆DragWithin
当用户在控件中拖动对象时触发
◆EndLabelEdit
index、newlabel
当用户编辑完标签时触发
◆GetFocus
当控件获得焦点时触发
◆Help
Xpos、Ypos
当控件获得当前焦点并且用户点击了F1键或者用其他方式要获取控件的帮助时触发
◆InsertItem
当在控件中插入新的项目时触发
◆ItemActivate
当单击或者双击项目时触发。
触发时机还取决于控件OneClickActivate和TwoClickActivate属性的设置
◆ItemChanged
index,focuschanged,hasfocus,
selectionchange,selected,otherchange
当控件中的项目改变时触发
◆ItemChanging
当项目中的某些内容正处于变化过程中时触发。
在该事件中可以返回1来防止改变
◆Key
key,keyflag
当用户点击了一个按钮时触发该事件
◆LoseFocus
当控件失去焦点时触发
◆Other
wparam,iparam
当有其他系统信息而没有相应的PB映射消息时触发
◆RightClicked
当点击鼠标右键时触发该事件
◆RightDoubleClicked
当双击鼠标右键时触发该事件
◆Sort
index1,index2,column
当控件中的项目正在进行排序时触发
【函数】
★AddItem
该函数有两种语法格式,listviewname.AddItem(label,pictureindex),函数的功能是在listviewname中添加一个项目,项目的标签内容为label的内容,项目的图片索引号为pictureindex。
另一个语法为:
listviewname.AddItem(item),作用是将ListViewItem类型的项目添加到listviewname中,ListViewItem类型的变量item可以详细设置其属性的取值,使用这种格式的函数可以更详细地设置要添加项目的内容。
★AddLargePicture
该函数的作用是向ListView控件的大图标显示样式中添加位图、图标或者光标,该函数的语法为dlistviewname.AddLargePicture(picturename)。
★AddSmallPicture
该函数的作用是向ListView中添加小图标显示样式时的图标、光标或位图,该函数的语法为listviewname.AddSmallPicture(picturename)。
★AddStatePicture
该函数的作用是向ListView中添加状态图标时的图标、光标或位图。
该函数的语法是:
controlname.AddStatePicture(picturename)。
★Arrange
该函数的作用是在显示样式为大图标或者小图标时按行排列图标,函数的语法是listviewname.Arrange()。
★DeleteColumn
函数的语法是listviewname.DeleteColumn(index),作用是删除索引号为index的列。
★DeleteColumns
该函数的语法是listviewname.DeleteColumns(),作用是删除控件中的所有列,相当于对所有列都使用DeleteColumn函数。
★DeleteItem
函数语法是listviewname.DeleteItem(index),作用是删除索引号为index的项目。
★DeleteItems
函数的语法是listviewname.DeleteItems(),可以删除ListView控件中的所有项目。
★DeleteLargePicture
删除索引号为index的大图标,函数的语法是:
listviewname.DeleteLargePicture(index)。
★DeleteLargePictures
删除所有的大图标。
★DeleteSmallPicture
函数语法是listviewname.DeleteSmallPicture(index),删除索引号为index的小图标。
★DeleteSmallPictures
函数的语法是listviewname.DeleteSmallPictures(),可以删除控件中的所有小图标。
★DeleteStatePicture
函数的语法是controlname.DeleteStatePicture(index),可以删除index指定索引号的状态图标。
★DeleteStatePictures
可以删除控件中所有的状态图标。
★EditLabel
函数语法为listviewname.EditLabel(index),作用是将索引号为index的项目的标签置为编辑状态。
★FindItem
函数语法为listviewname.FindItem(startindex,label,partial,wrap),函数的作用是在listviewname指定的控件中,从startindex索引号开始查找内容为label的项目,如果找到就返回找到项目的索引号,查找时发生错误则返回-1。
可以通过partial与wrap两个参数指定查找选项,partial参数为True时可以进行部分匹配查找,wrap参数为True时搜索完毕后返回到第一个项目。
另外,该函数还可以有另外一种格式:
listboxname.FindItem(text,index),该函数的功能是在索引号为index之前搜索标签内容为text的项目,如果要在所有项目中搜索,可以将index指定为0。
★GetColumn
语法是listviewname.GetColumn(index,label,alignment,width),功能是获取标号为index的项目的属性,并将标签内容保存在变量label中,将标签文字内容的对齐属性保存在变量alignment中,将列的宽度保存在变量width中。
★GetItem
该函数的语法是listviewname.GetItem(index,{column},item),作用是检索索引号为index的项目的属性,并将这些属性保存到ListViewItem类型的变量view中。
参数column为可选项,指定该参数时可以让该函数只明确检索哪列的属性,如果不指定该参数则检索第一列的属性。
★GetOrigin
函数的语法是listviewname.GetOrigin(x,y),可以获取ListView控件左上角的坐标,并将坐标值保存在x和y中。
参数x和y都是Integer类型变量。
★InsertColumn
该函数的语法是listviewname.InsertColumn(index,label,alignment,width),作用是在index指定的列号之前插入一个新列,新列的标签文本为label变量的内容,它的对齐方式由枚举型变量alignment变量指定,可以使用的值为Center!
,Justify!
,Left!
或者Right!
;
宽度由width变量指定,其单位为PowerBuilderUnit。
注意,在第一个项目之前不能插入项目。
★InsertItem
在ListView控件中插入项目,该函数有两种语法格式。
当只插入标签、并且指定图片时可以使用listviewname.InsertItem(index,label,pictureindex)格式,该函数的作用是在控件中索引号为index的项目之前插入一个项目,新插入的项目的标签内容为label变量的取值,图片的索引号为pictureindex变量的取值。
该函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PB 列表 控件