aardio 文档

win.ui.grid 库模块帮助文档

win.ui 成员列表 #

win.ui.grid() #

参数必须指定一个 listview 控件对象。
返回一个可编辑单元格的列表视图对象,返回对象继承了 listview 控件的所有属性与方法。

鼠标左键单击单元格、或者按空格键开始编辑,
回车完成编辑,ESC 键撤消编辑,回车+上下方向键快速移动到其他项,
用户完成编辑后会触发onEditChanged事件.

返回对象:listviewObject

返回对象:winUiGridObject

winUiGridObject 成员列表 #

winUiGridObject.autoComplete() #

返回对象:ComAompleteObject

winUiGridObject.autoComplete(strings) #

编辑器启用自动完成功能(用户自定义列表),返回 com.autoComplete 对象。
参数 @strings 使用一个字符串数组自定义自动完成列表的数据。
必须提前导入 com.autoComplete 库才能使用此函数。

winUiGridObject.beginEdit(行,列) #

切换到编辑状态

winUiGridObject.clear() #

清空所有行

winUiGridObject.clear(true) #

清空所有行,并且清空所有列

winUiGridObject.columnCount #

列总数

winUiGridObject.columns #

读取或设置所有的列。
值为由所有列配置信息的数组,每个列的配置也是一个数组。
表示单个列的数组格式为 [标题,列宽,对齐格式],
写入列配置时对齐格式可省略。

winUiGridObject.delColumn() #

删除指定列

winUiGridObject.each(起始索引,选项) #

for itemIndex in winUiGridObject.each(){
    /*遍历所有项*/
}

winUiGridObject.eachSelected(col) #

for item,value in winUiGridObject.eachSelected(){
    /*从后向前倒序遍历所有选中项,  
迭代变量 item 为选中项目的行号。  
迭代变量 value 为  @col 参数所指定列的文本值  
@col 参数省略则默认为1。  

也可以使用 listview 控件的 selected 属性直接返回所有已选中的行号。*/
}

winUiGridObject.editBox #

实现编辑功能的edit控件
此功能需要扩展listview并实现了编辑功能的的控件才能支持

返回对象:editObject

winUiGridObject.getColumnText() #

取指定列文本

winUiGridObject.getItemData(行序号) #

获取指定行绑定的数据。
可用 setItemData 方法绑定数据到指定行。
setTable 方法也会自动绑定源数据表。

winUiGridObject.getItemText(行,列,缓冲区长度) #

返回指定项指定列文本,列默认值为1,
如果列指定为-1,则返回一个包含所有列文本的数组,
缓冲区最大字符数默认为520,
不指定行序号则默认取当前选中焦点行,
不指定列则默认设为 1

winUiGridObject.getSelected(项索引) #

指定项是否选中状态

winUiGridObject.getTable() #

返回数据表。
如果参数 @1 指定列名数组(被复制为返回表的 fields 字段),
则返回的每行数据都是名值对,否则返回的每行数据都是文本数组。

如果参数 @1 为 true,则返回的文本数组第一行为列标题文本数组。

winUiGridObject.onCheckedChanged #

winUiGridObject.onCheckedChanged = function(checked,item){
    /*勾选状态变更触发此事件。  
checked 为是否勾选,item 为变更项序号*/
}

winUiGridObject.onClick #

winUiGridObject.onClick = functionitem,subItem,nmListView){
    /*左键单击项目触发此事件。  
item 为变更为焦点的项序号,subItem 为列序号,nmListView 为 NMLISTVIEW 结构体*/
}

winUiGridObject.onDoubleClick #

winUiGridObject.onDoubleClick = function(item,subItem,nmListView){
    /*左键双击项目触发此事件。  
item 为变更为焦点的项序号,subItem 为列序号,nmListView 为 NMLISTVIEW 结构体*/
}

winUiGridObject.onEditBegin(iItem,iSubItem) #

winUiGridObject.onEditBegin = function(iItem,iSubItem){
    /*列表项切换到编辑框模式*/
}

winUiGridObject.onEditChanged(text,iItem,iSubItem) #

winUiGridObject.onEditChanged = function(text,iItem,iSubItem){
    /*编辑框文本已变更(并已隐藏),  
正在准备更新列表项,返回 false 可阻止将编辑框文本更新到列表项中。  
text 为改变后的文本,iItem 为行号,iSubItem 为列号  
此功能需要扩展 listview 并实现了编辑功能的的控件才能支持*/
}

winUiGridObject.onEditEnd(iItem,iSubItem) #

winUiGridObject.onEditChanged = function(iItem,iSubItem){
    /*列表项已完成编辑,此事件在 onEditChanged 后触发。  
如果 onEditChanged 事件返回 false(阻止了更新),则会跳过 onEditEnd 事件。*/
}

winUiGridObject.onFocusedChanged #

winUiGridObject.onFocusedChanged = function(item,subItem,nmListView){
    /*焦点项变更触发此事件。  
item 为变更为焦点的项序号,subItem 为列序号,nmListView 为 NMLISTVIEW 结构体*/
}

winUiGridObject.onGetDispItem #

winUiGridObject.onGetDispItem = function(item,row,col){
    /*处理 _LVN_GETDISPINFOW 通知消息  
参数 @item 为 LVITEM 结构体,@row 为当前行号,@col 为当前列号,  
返回 item 或包含 item 部分字段则更新 LVITEM 结构体*/
    return {text="要显示的文本"}; 
}

winUiGridObject.onItemChanged #

winUiGridObject.onItemChanged = function(item,subItem,nmListView){
    /*项目变更触发此事件。  
item 为变更为焦点的项序号,subItem 为列序号,nmListView 为 NMLISTVIEW 结构体*/
}

winUiGridObject.onRightClick #

winUiGridObject.onRightClick = function(item,subItem,nmListView){
    /*右键点击项目触发此事件。  
item 为变更为焦点的项序号,subItem 为列序号,nmListView 为 NMLISTVIEW 结构体*/
}

winUiGridObject.onSelChanged #

winUiGridObject.onSelChanged = function(selected,item,subItem,nmListView){
    /*选中项更触发此事件。  
selected 为是否选中,item 为变更项序号,  
subItem 为列序号,nmListView 为 NMLISTVIEW 结构体*/
}

winUiGridObject.onSortColumn(column,desc) #

winUiGridObject.onSortColumn = function(column,desc){
    /*点击列排序时回调此函数  
@column参数为列序号,1为首列,@desc参数指定是否倒序  
返回true排序,否则不排序*/
    return true;
}

winUiGridObject.selected #

获取或设置所有选中项,这是包含所有选中的项目行索引的数组。
设为 null 或空表清除所有选中项。

也可以使用 eachSelected 方法创建迭代器并且 for in 循环遍历所有选中项。

winUiGridObject.sendNotify(code,row,col) #

发送 WM_NOTIFY 消息。
参数 @code 指定 _LVN
前缀的通知代码。
参数 @row 指定行号,起始行为 1,0 表示列标题。
参数 @col 指定列号,起始列为 1。

winUiGridObject.setColumn({cx=100},列序号) #

改变列宽,参数@1必须是个表对象

winUiGridObject.setColumn(列参数表,列序号) #

参数一指定 wLVCOLUMN 结构体成员键值的参数表,
也可以是LVCOLUMN结构体对象,自动设置掩码参数.

winUiGridObject.setColumnText(位置,文本) #

设置指定列文本

winUiGridObject.setColumnWidth(列宽,列序号,...) #

设置列宽,可指定一个或多个列序号。
这里不能指定宽度为 -1 。

winUiGridObject.setColumns() #

用一个字符串数组指定要显示的列
如果参数为空则清空所有列

winUiGridObject.setItemData(行序号,数据) #

绑定数据到指定行。
数据仅与行号关联,与具体的列表项无关。
删除或改变列表项不会修改绑定的数据表。
但清空控件,设置 items 属性都会清除关联的数据表,
调用 setTable 方法也会绑定新的源数据表。

winUiGridObject.setItemText(文本,行,列) #

设置项目指定列文本,
参数一也可是指定多列文本的数组
设置的文本如果不是指针或空值则自动转换为字符串,
不指定行序号则默认取当前选中焦点行,
不指定列则默认设为1

winUiGridObject.setReadonlyColumns() #

可以使用一个或多个参数指定要禁止编辑的列序号,
也可以用一个数组参数指定多个列序号。

如果参数为 -1,则禁止编辑所有列

winUiGridObject.setSelected(项索引) #

选中项,注意是选中列表项而不是勾选复选框

winUiGridObject.setSelected(项索引,false) #

取消选中项,注意是选中而不是勾选复选框

winUiGridObject.setTable #

用 listview 控件显示数据表(包含名值对的对象或数组组成的数组)。
此函数会自动清空控件之前的所有项。
如果没有创建任何列,则自动创建标题列。
如果要重新创建列,请先调用 clear 函数并指定参数为 true 以清空原来的列。

winUiGridObject.setTable(dataTable) #

参数 @dataTable 指定要加载的数据表。
数据表应当包含行组成的数组。
数据行可以是数组,也可以是名值,值用 tostring 转为文本显示。
可选通过数据表的 fields 字段指定要显示的索引数组(键名或索引数值)。

如果视图控件的标题列为空,则用显示键名(或数组值)创建标题列。
如果数据行为数组,第一行填充到标题列以后,默认从第二行加载数据。

可用 startIndex 属性或元属性自定义要加载的起始行。
可用 length 属性自定义要加载的行数,默认加载所有行。

sqlite,access,sqlServer 等数据库对象,
提供的 getTable 函数可获取通过 fields 字段指定列名数组的数据表。

winUiGridObject.sortColumn(col,desc) #

排序指定列(触发排序回调函数 onSortColumn )。
参数 @col 指定列号,起始列为 1。
可选参数 @desc 指定是否倒序。

Markdown 格式