B4X编程语言:B4XTable常用属性和方法

        一、B4XTable常用属性和方法

        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示例

        一个简单的B4XTable示例项目,压缩文件名称B4XTableTest.Zip。压缩文件包内含有库文件B4XTableSelections.b4xlib,下载并解压缩后将该库文件复制到附加库的B4X文件夹下。

        这是一个B4J测试程序,下载地址:B4XTable测试程序

你可能感兴趣的:(#,B4X控件,开发语言,B4X语言,笔记)