1、AddColumn
为B4XTable添加一个列对象,B4XTable通过添加列对象创建表格结构。
语法:AddColumn(Title As String,ColumnType As Int) As B4XTableColumn
Title:列标题,默认情况下等于列的ID(ColumnID)
ColumnType:列的数据类型,共四种类型,分别是:
COLUMN_TYPE_TEXT 值:1,字符串类型
COLUMN_TYPE_NUMBERS 值:2,数字类型
COLUMN_TYPE_DATE 值:3,日期类型
COLUMN_TYPE_VOID 值:4,空列类型,不返回值,一般作为控件列
2、ArrowsDisabledColor
设置或返回页面导航按钮不可用时的颜色,返回值类型:Int。
3、ArrowsEnabledColor
设置或返回页面导航按钮可用时的颜色,返回值类型:Int。
4、BuildLayoutsCache
在B4XTable数据加载之前先建立一个B4XTable布局的缓存,以方便设置列单元格默认布局。通常与MaximumRowsPerPage一起使用。
语法:BuildLayoutsCache(Size As Int) As String
示例:
B4XTable1.MaximumRowsPerPage=20
B4XTable1.BuildLayoutsCache(B4XTable1.MaximumRowsPerPage)
5、BuildQuery
创建基于当前表格状态的SQL查询,用于按B4XTable表格当前过滤条件和排序设置输出表格数据。
该方法返回一个包含2个元素的数组对象,其中第一个元素为当前查询的SQL语句字符串,第二个元素为当前查询的参数列表。
语法:BuildQuery(WithPageLimit As Boolean) As Object()
WithPageLimit:SQL语句中是否包含Limit输出限定,如果为True,则按B4XTable当前页显示内容输出;如果为False,则输出按当前过滤条件和排序设置的查询的全部记录。
示例:
Dim obj() As Object = B4XTable1.BuildQuery(True)
Dim sql As String = obj(0)
Log(sql) '输出:SELECT rowid,c0,c1,c2,c3,c4 FROM data LIMIT 0, 8
Dim values As List = obj(1)
Log(values.size)
Dim rs As ResultSet = B4XTable1.sql1.ExecQuery2(sql,values)
Do While rs.NextRow
Log(rs.GetString2(2))
Loop
rs.Close
6、Clear
清除B4XTable的所有列及内存数据库。
7、ClearDataView
当B4XTable数据发生变更时,调用ClearDataView将刷新视图,更新计数。相当于以下两条语句:
B4XTable1.Refresh
B4XTable1.UpdateTableCounters
8、Columns
返回B4XTable列对象的集合列表,返回值类型:List。
9、CreateDataView
语法:CreateDataView(WhereClause As String) As String
创建自定义过滤器,B4XTable将按此过滤条件显示符合条件的记录。
WhereClause:SQLthere子句(内存数据库查询语句的SQLthere子句)。
例如:B4XTable1.CreateDataView("c2='男'")
10、CurrentPage
设置或返回B4XTable的当前页码,返回值类型:Int。
11、EvenRowColor
设置或返回B4XTable偶数行的背景颜色,返回值类型:Int。
12、OddRowColor
设置或返回B4XTable奇数行的背景颜色,返回值类型:Int。
13、FirstRowIndex
设置或返回当前页第一行记录的索引,返回值类型:Int。
该索引是按当前排序的索引,默认情况下:
B4XTable1.FirstRowIndex=B4XTable1.RowsPerPage*(B4XTable1.CurrentPage-1)
可以用B4XTable1.FirstRowIndex=rowid将索引为rowid的记录显示为当前页第一行。
14、GetColumn
语法:GetColumn(ColumnId As String) As B4XTableColumn
用给定ColumnId获取列对象,默认情况下ColumnId和列标题相同。
15、GetRow
语法:GetRow(RowId As Long) As Map
用给定RowId获取行对象,该对象是一个映射,该映射的各键值对元素以列标题字符串为key,以单元格值为value。
RowId:B4XTable内存数据库中各行的Id号,值类型为Long。
您可以用B4XTable.VisibleRowIds访问可见行的Id。
16、GridColor
设置或返回B4XTable表格线条颜色,返回值类型:Int。
如果要设置其颜色,须在加载数据之前设置方能生效。
17、HeaderColor、HeaderTextColor、HeaderFont
设置或返回B4XTable列表标题头的背景颜色、文本颜色、标题头字体。
HeaderColor和HeaderTextColor的返回值类型:Int。
HeaderFont的返回值类型:B4XFont。
通常这三个属性是在设计器中设置的,在代码中可以获取这三个属性的值,但无法直接设置这三个属性的值。因为B4XTable每一个单元格都是由一个带有标签的面板组成的(包括标题头单元格),面板或标签的相关属性遮挡了标题头的单元格外观属性。
要使用代码设置标题头的背景颜色、文本颜色、字体,需要通过设置单元格中的面版或标签的外观属性来实现。如下示例:
For Each col As B4XTableColumn In B4XTable1.Columns
Dim b As B4XView=col.CellsLayouts.Get(0) '获取单元格中的面版
b.Color=xui.Color_Cyan '设置面版背景色
Dim c As B4XView=b.GetView(0) '获取面版中的标签
'c.Color=xui.Color_Cyan '这行代码会覆盖标题单元格线
c.TextColor=xui.Color_Blue '设置标签文本颜色
c.Font=xui.CreateDefaultFont(20) '设置标签字体
Next
18、HeadersHeight
设置或返回标题行的高度,返回值类型:Int。
19、MaximumRowsPerPage
设置或返回每页显示的最大行数(记录数),返回值类型:Int。
20、mCurrentCount
返回当前状态查询的总记录数,返回值类型:Int。
21、MinimumWidth
设置或返回B4XTable的最小宽度,返回值类型:Int。
22、NumberOfFrozenColumns
设置或返回B4XTable固定列的数量(左侧开始),返回值类型:Int。
23、pnlHeader
设置或返回B4XTable头部区域面版(默认在列标题上方),返回值类型:B4XView。
我们可以用代码设置pnlHeader的外观和位置。例如:
Dim pnl As B4XView=B4XTable1.pnlHeader
pnl.Color=xui.Color_Cyan
pnl.Top=pnl.Top+pnl.Height+B4XTable1.mBase.Height
24、RowHeight
设置或返回B4XTable的行高,返回值类型:Int。
25、RowsPerPage(只读)
返回当前每页实际显示的行数(记录数),返回值类型:Int。
通常情况下B4XTable会根据我们设置的B4XTable高度、行高、标题行高度自动计算每页显示的行数B4XTable1.RowsPerPage。我们可以设置每页的最大显示行数B4XTable1.MaximumRowsPerPage,如果设置了MaximumRowsPerPage,当MaximumRowsPerPage大于RowsPerPage时,每页显示的行数为RowsPerPage;当自动计算的每页显示行数大于等于MaximumRowsPerPage时,每页显示的行数RowsPerPage被强制等于MaximumRowsPerPage。
26、SelectionColor
设置或返回选择的单元格的背景色,返回值类型:Int。
27、SetData
B4XTable通过SetData方法加载数据。
语法:B4XTable.SetData(Data As List) As ResumableSub
Data:是一个数据列表。列表中的每个项都是一个表示一行的对象数组。当您调用SetData时,将使用该数据创建一个内存中的数据库。
无论是从数据库、表格文件加载数据,还是向B4XTable添加输入数据,最好的方法是先将所有数据添加到列表Data中,再通过SetData方法为B4XTable加载数据。
SetData方法是异步加载数据的,它返回一个ResumableSub。我们要操作表格数据,则必须使用Wait For等待数据加载完成,并根据ResumableSub返回值确定下一步操作。
28、Size(只读)
返回当前表格查询的总记录数,返回值类型:Int。
29、sql1
设置或返回B4XTable查询的SQL对象,返回值类型:SQL。
B4XTable可以通过sql1对象使用SQL语句操作内存数据库data。详见:B4X跨平台表格B4XTable的使用方法。
30、UpdateTableCounters
更新表格查询记录计数。返回值类型:Int。
在插入或删除记录后使用此方法更新记录计数。
31、VisibleColumns
返回B4XTable可见列的列表,返回值类型:List。
列表中每一项为一个列对象,列表大小为B4XTable可见列总数。
32、VisibleRowIds
返回B4XTable可见行的列表,返回值类型:List。
列表中每一项为一个行映射对象,列表大小为B4XTable可见行总数。
一个简单的B4XTable示例项目,压缩文件名称B4XTableTest.Zip。压缩文件包内含有库文件B4XTableSelections.b4xlib,下载并解压缩后将该库文件复制到附加库的B4X文件夹下。
这是一个B4J测试程序,下载地址:B4XTable测试程序