以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  问下窗体表:sqlquery在fill前对应的这个空白表是否能提前控制  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46344)

--  作者:ysq128
--  发布时间:2014/2/21 11:24:00
--  问下窗体表:sqlquery在fill前对应的这个空白表是否能提前控制

在窗体打开会。对该窗体表进行fill前都会出现一现这个默认的10列10行的表。都会发现闪一下。这个有一点点影响。可否对狐表的所有的这个默认表在打开项目的时候能提前自行设置下。如没有记录的行。


--  作者:Bin
--  发布时间:2014/2/21 11:30:00
--  
把表控件设置为不可见, Fill完毕后再使用代码设置表控件为可见.
--  作者:ysq128
--  发布时间:2014/2/21 11:57:00
--  
这样的校果还是有点欠缺。那还不如不弄为好。
--  作者:don
--  发布时间:2014/2/21 11:58:00
--  
顶,应该改进!!!
--  作者:Bin
--  发布时间:2014/2/21 11:58:00
--  
也可以把表清空   tables("XX_XX").datatable.datarows.clear
[此贴子已经被作者于2014-2-21 11:58:33编辑过]

--  作者:don
--  发布时间:2014/2/21 12:09:00
--  
以下是引用Bin在2014-2-21 11:58:00的发言:
也可以把表清空   tables("XX_XX").datatable.datarows.clear
[此贴子已经被作者于2014-2-21 11:58:33编辑过]

清空 残留 列名:第一列,第二列...还是不爽!

且这是头痛医头,脚痛医脚的办法

[此贴子已经被作者于2014-2-21 12:11:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/2/21 12:16:00
--  

那就别Fill了:

 

 

 

按条件加载数据

对于SQLTable和SQLQuery,如果数据量不大,可以将数据全部加载进来,然后根据需要进行筛选显示,这和普通的表没有不同。

如果数据量比较大,可以根据需要加载部分数据,以提高效率。

假定窗口中有个SQLTable,希望加载已经结账的订单,可以在设计窗口的时候,将Select语句设置为:

Select * From {订单} Where 已结账 = True

一些条件加载可能没有办法在设计窗口的时候直接通过固定的Select语句完成。

例如希望打开窗口后加载本月的订单,就只能分两步完成:

1、在设计窗口的时候,Table控件的类型根据需要设置为SQLTable或SQLQuery,并将Select语句设置为:

Select * From {订单} Where [_Identify] Is Null

这样默认不会加载任何订单,是一个空表。

2、在窗口的AfterLoad事件加上代码:

Dim y As Integer = Date.Today.Year
Dim
m As Integer = Date.Today.Month
Dim
dt1 As New Date(y, m, 1)
Dim
dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天
Dim
Filter As String
Filter
= "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
DataTables(
"窗口1_Table1").LoadFilter = Filter \'设置加载条件
DataTables(
"窗口1_Table1").Load() \'加载数据

这样打开窗口后,就会自动加载本月的订单。

有了LoadFilter和Load,我们可以在打开窗口后,随时从后台加载不同条件的数据进来。
例如窗口中有个“最近七天”按钮,希望单击此按钮,加载最近七天的订单,可以将按钮的代码设置为:

Dim dt As Date = Date.Today.AddDays(-7)
DataTables("订单").LoadFilter = "日期 > #" & dt & "#"
DataTables("订单").Load()

LoadFilter和Load,涉及到动态记载的知识,后面会有专门的一章进行系统的讲述,目前只需有所了解即可。


--  作者:jspta
--  发布时间:2014/2/21 12:20:00
--  
Tables().StopRedraw
代码
Tables().ResumeRedraw

--  作者:逛逛
--  发布时间:2014/2/21 12:23:00
--  
以下是引用don在2014-2-21 12:09:00的发言:

[此贴子已经被作者于2014-2-21 12:11:19编辑过]

可以彻底清空

 

  Dim dt As new system.data.DataTable

  Dim tb As Table = e.Form.Controls("Table1").Table
  tb.DataSource = dt


--  作者:don
--  发布时间:2014/2/21 12:40:00
--  
以下是引用逛逛在2014-2-21 12:23:00的发言:

可以彻底清空

 

  Dim dt As new system.data.DataTable

  Dim tb As Table = e.Form.Controls("Table1").Table
  tb.DataSource = dt



首先学习学习.


还是不爽