以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口关闭时出现错误提示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95558)

--  作者:qwz405
--  发布时间:2017/1/23 14:20:00
--  窗口关闭时出现错误提示
单选框的代码如下所示,只要是选中了,那关闭的时候就会有错误提示:
类似代码在别的地方都有用,使用都是正常的。


图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:222.jpg
图片点击可在新窗口打开查看


Dim cmd As New SQLCommand      
Dim dt As Date
cmd.ConnectionName ***
cmd.CommandText ***
dt = cmd.ExecuteScalar()

Dim y As Integer = dt.Year     \'获得当前所在的年度
Dim nian As WinForm.ComboBox = e.Form.Controls("comnian")     \'年度取值框数据
nian.Value = y
Dim dt2 As Date = New Date(y,1,1)     \'获得当前所在年度的第一天

Dim l2 As WinForm.Label = e.Form.Controls("Label2")    \'描述
l2.Visible = False


Dim g As New GroupTableBuilder("统计表1", DataTables("客户抱怨"))
g.Groups.AddDef("机型")
g.Totals.AddDef("抱怨编号", AggregateEnum.Count, "笔数")
g.Totals.AddDef("数量")
\'g.VerticalTotal = True      \'不能使用合计行,不然排序时会显示到最上方
g.FromServer = True
g.Filter = "抱怨日期 >= \'"& dt2 &"\' and 抱怨日期 < \'"& dt2.AddYears(1) &"\'"
\'g.Build()
\'MainTable = Tables("统计表1")

Tables("抱怨_TOP榜_Table1").DataSource = g.BuildDataSource
Tables("抱怨_TOP榜_Table1").font = New Font("微软雅黑", 14)      \'设置字体
Tables("抱怨_TOP榜_Table1").Cols("机型").Width = 145    \'设置列宽
Tables("抱怨_TOP榜_Table1").Cols("笔数").Width = 105
Tables("抱怨_TOP榜_Table1").Cols("数量").Width = 105
Tables("抱怨_TOP榜_Table1").Sort = "笔数 Desc"

With Tables("抱怨_TOP榜_Table1")      \'自动合计行
    .Cols("笔数").GrandTotal = True
    .Cols("数量").GrandTotal = True
    .GrandTotal = True
End With

DataTables("抱怨_TOP榜_Table1").SysStyles("Alternate").BackColor = Color.LightCyan     \'设置交替行颜色
DataTables("抱怨_TOP榜_Table1").SysStyles("EmptyArea").BackColor = Color.LightBLue     \'设置背景颜色
[此贴子已经被作者于2017/1/23 14:23:58编辑过]

--  作者:有点蓝
--  发布时间:2017/1/23 15:34:00
--  
表控件名是否正确?,这种方式试试

Dim t As Table = Forms("MainForm").Controls("Table1").Table
t.DataSource = g.BuildDataSource
t.font = New Font("微软雅黑", 14)      \'设置字体
t.Cols("机型").Width = 145    \'设置列宽
t.Cols("笔数").Width = 105
t.Cols("数量").Width = 105
t.Sort = "笔数 Desc"

--  作者:qwz405
--  发布时间:2017/1/23 15:47:00
--  
修改代码后,还是找不到表
但表应该是存在的,它的数据都能正常显示出来,很奇怪~


图片点击可在新窗口打开查看此主题相关图片如下:33.jpg
图片点击可在新窗口打开查看


Dim t As Table = Forms("抱怨_TOP榜").Controls("Table1").Table
t.****

--  作者:有点蓝
--  发布时间:2017/1/23 16:01:00
--  
DataTables("抱怨_TOP榜_Table1").SysStyles("Alternate").BackColor = Color.LightCyan
改为
t.DataTable.SysStyles("Alternate").BackColor = Color.LightCyan

--  作者:qwz405
--  发布时间:2017/1/23 16:13:00
--  
不是这个原因,我把后面的合计行,表格样式设定都注释了,还是如此。


问题出在这个语句,但不知道为什么?
Dim t As Table = Forms("抱怨_TOP榜").Controls("Table1").Table
t.DataSource = g.BuildDataSource
[此贴子已经被作者于2017/1/23 16:13:55编辑过]

--  作者:有点蓝
--  发布时间:2017/1/23 16:31:00
--  
"机型"、"抱怨编号"、"数量"是不是有表达式列?
--  作者:qwz405
--  发布时间:2017/1/23 16:36:00
--  
现在不喜欢用表达式列了


图片点击可在新窗口打开查看此主题相关图片如下:444.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/1/23 16:37:24编辑过]

--  作者:有点蓝
--  发布时间:2017/1/23 17:34:00
--  
上例子看看

下面代码执行正常吗

Dim g As New GroupTableBuilder("统计表1", DataTables("客户抱怨"))
g.Groups.AddDef("机型")
g.Totals.AddDef("抱怨编号", AggregateEnum.Count, "笔数")
g.Totals.AddDef("数量")
\'g.VerticalTotal = True      \'不能使用合计行,不然排序时会显示到最上方
g.FromServer = True
g.Filter = "抱怨日期 >= \'"& dt2 &"\' and 抱怨日期 < \'"& dt2.AddYears(1) &"\'"
g.Build()
MainTable = Tables("统计表1")

--  作者:有点色
--  发布时间:2017/1/24 2:04:00
--  
以下是引用qwz405在2017/1/23 16:13:00的发言:
不是这个原因,我把后面的合计行,表格样式设定都注释了,还是如此。


问题出在这个语句,但不知道为什么?
Dim t As Table = Forms("抱怨_TOP榜").Controls("Table1").Table
t.DataSource = g.BuildDataSource
[此贴子已经被作者于2017/1/23 16:13:55编辑过]

 

这句代码报错?你确定你的窗口名写对?在这个窗口里,那个表,是叫做Table1?


--  作者:qwz405
--  发布时间:2017/1/24 8:30:00
--  
代码应该没问题,因为单选框选择时,数据都是正常加载显示

我在关闭按钮中加了代码,在关闭时将单选框都释放
问题没有找到,但错误不显示了


图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/1/24 8:30:35编辑过]