以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口中的临时表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56087)

--  作者:蝙蝠侠K02
--  发布时间:2014/8/29 9:13:00
--  窗口中的临时表

在窗口中建立“任务主界面_Table1“是SQLQuery表,数据加载正常,而加载数据后重绘列"状态"没有反应。代码如下:

 

\'在窗口打开时生成临时表结构

With Tables("任务主界面_Table1")  

    Dim dtb As New DataTableBuilder("统计1")

    dtb.AddDef("任务编号", Gettype(String), 100)

    dtb.AddDef("任务主题", Gettype(String), 150)

    dtb.AddDef("开始时间", Gettype(Date))

    dtb.AddDef("计划完成时间", Gettype(Date))

    dtb.AddDef("状态", Gettype(String), 50)

    dtb.AddDef("负责人", Gettype(String), 150)

    dtb.Build()

   

    \'填充数据

    Dim f As New Filler

    f.SourceTable = DataTables("任务表") \'指定数据来源

    f.SourceCols = "负责人,任务编号,任务主题,开始时间,计划完成时间,状态" \'指定数据来源列

    f.DataTable = DataTables("统计1") \'指定数据接收表

    f.DataCols = "负责人,任务编号,任务主题,开始时间,计划完成时间,状态" \'指定数据接收列

    f.ExcludeExistValue =True

    Dim dt1 As Date = Date.today

   f.Filter ="开始时间 Is Not Null And 计划完成时间 Is Not Null And 开始时间 <= #" & dt1 & "# And 计划完成时间 >= #" & dt1 & "#    

    f.fill()

    .DataSource = DataTables("统计1" )

    .SetColVisibleWidth("任务编号|100|任务主题|200|负责人|100|开始时间|70|计划完成时间|70|状态|70|")

End with

 

    窗口中表“任务主界面_Table1“的表事件

If e.Col.name= "状态" Then

    e.StartDraw

    e.Graphics.DrawImage(delimg1, e.x + 3,e.y + 3) \'绘制第一个图标

    e.EndDraw

End If


--  作者:Bin
--  发布时间:2014/8/29 9:14:00
--  
上个例子看看.
--  作者:有点甜
--  发布时间:2014/8/29 9:17:00
--  

 这句代码.DataSource = DataTables("统计1" ),表明table控件是副本表,副本表的事件drawcell是不能写在表控件里面的。

 

 你要开启 统计1 的全局表事件

 

 http://www.foxtable.com/help/topics/0671.htm

 


--  作者:蝙蝠侠K02
--  发布时间:2014/8/29 10:14:00
--  
以下引用帮助内容:             
我们知道Foxtable是通过以下类型生成统计表或临时表的:

GroupTableBuilder
CrossTableBuilder
SQLGroupTableBuilder
SQLCrossTableBuilder
SQLJoinTableBuilder
DataTableBuilder

这些类型都新增加了一个BuildDataSource方法,可以生成一个对象,此对象可以直接绑定到SQLTable和SQLQuery类型的Table,以及副本型的Table。
例如将某按钮的Click事件代码设为:

Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("日期","月份")
b.Totals.AddDef("数量")
Tables
("窗口1_Table1").DataSource = b.BuildDataSource()



我想实现的功能:

    1.生成一个临时表结构(需要从3个表提取列)

    2.用Filler填充数据

     3.填充数据后重绘列“状态”


请问用BuildDataSource()是否能完成以上功能?


--  作者:有点甜
--  发布时间:2014/8/29 10:33:00
--  

 你如果要绘制table表格,建议你还是开启table表格的全局表事件

 

http://www.foxtable.com/help/topics/0671.htm

 


--  作者:有点甜
--  发布时间:2014/8/29 10:34:00
--  

 你实在不知道怎么办,就请上传一个相关的例子。


--  作者:蝙蝠侠K02
--  发布时间:2014/8/29 10:36:00
--  
 我想重绘窗口中的临时表,请田老师看看!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1.rar


--  作者:有点甜
--  发布时间:2014/8/29 10:53:00
--  
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1.rar