以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQLTable的加载问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122822) |
-- 作者:aza520 -- 发布时间:2018/8/2 16:44:00 -- SQLTable的加载问题 设以下代码,在打开项目的时候显示不存在DataTables("劳务人员工资发放记录表_Table1"),"劳务人员工资发放记录表_Table1"是窗口中的SQLTable,请老师指导一下 在LoadUserSetting事件设下列代码: If User.Name = "开发者" Or User.Name = "管理员" Then DataTables("劳务人员工资发放记录表_Table1").LoadFilter = "" Else DataTables("劳务人员工资发放记录表_Table1").LoadFilter = "承包人机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 监理机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 业主机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 劳务队负责人 in (\'" & User.Roles.replace(",","\',\'") & "\')" End If DataTables("劳务人员工资发放记录表_Table1").LoadTop = 10 DataTables("劳务人员工资发放记录表_Table1").LoadPage = 0 DataTables("劳务人员工资发放记录表_Table1").LoadOver = "_Identify" DataTables("劳务人员工资发放记录表_Table1").Load Tables("劳务人员工资发放记录表_Table1").sort="工资所属月份" Tables("劳务人员工资发放记录表_Table1").sort="工种" 在AfterOpenProject事件设下列代码: With DataTables("劳务人员工资发放记录表_Table1") .LoadFilter = "" \'一定要清除加载条件 .LoadTop = 10 .LoadPage = 0 .LoadOver = "_Identify" .Load() End With Tables("劳务人员工资发放记录表_Table1").sort="工资所属月份" |
-- 作者:aza520 -- 发布时间:2018/8/2 16:59:00 -- 在BeforeLoadOuterTable设如下代码 If e.DataTableName = "劳务人员工资发放记录表_Table1" Then e.SelectString = "Selec t * Fro m {劳务人员工资发放记录表} Where [_Identify] Is Null" End If |
-- 作者:有点甜 -- 发布时间:2018/8/2 17:13:00 -- 设置之前,先判断表格是否存在。窗口表,是窗口打开后才生成的。
If DataTables.Contains("劳务人员工资发放记录表_Table1") Then DataTables("劳务人员工资发放记录表_Table1").LoadFilter = "" End If |
-- 作者:aza520 -- 发布时间:2018/8/2 17:25:00 -- 是替换BeforeLoadOuterTable的以下代码吗 If e.DataTableName = "劳务人员工资发放记录表_Table1" Then e.SelectString = "Selec t * Fro m {劳务人员工资发放记录表} Where [_Identify] Is Null" End If |
-- 作者:aza520 -- 发布时间:2018/8/2 17:31:00 -- 在窗口中做了一个刷新加载树的按钮Button5,设如下代码。显示如下错误 .NET Framework 版本:2.0.50727.8831 Foxtable 版本:2017.12.18.1 错误所在事件:窗口,劳务人员工资发放记录表,Button5,Click 详细错误信息: 未将对象引用设置到对象的实例。 Syscmd.Project.Save() DataTables("劳务人员工资发放记录表_Table1").LoadTop= 10 DataTables("劳务人员工资发放记录表_Table1").LoadPage = 0 DataTables("劳务人员工资发放记录表_Table1").LoadOver = "_Identify" DataTables("劳务人员工资发放记录表_Table1").LoadReverse = True DataTables("劳务人员工资发放记录表_Table1").Load() Tables("劳务人员工资发放记录表_Table1").sort="工资所属月份" If User.Name = "开发者" Or User.Name = "管理员" Then Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELEC T DISTINCT 项目名称,施工合同段,劳务队名称,工资所属月份 Fro m {劳务人员工资发放记录表}" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt,"项目名称|施工合同段|劳务队名称|工资所属月份") trv.Nodes.Insert("加载所有数据",0) Else Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELEC T DISTINCT 项目名称,施工合同段,劳务队名称,工资所属月份 Fro m {劳务人员工资发放记录表} where 承包人机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 监理机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 业主机构 in (\'" & User.Roles.replace(",","\',\'") & "\') or 劳务队负责人 in (\'" & User.Roles.replace(",","\',\'") & "\')" dt = cmd.ExecuteReader() Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree(dt,"项目名称|施工合同段|劳务队名称|工资所属月份") trv.Nodes.Insert("加载所有数据",0) End If e.Form.Controls("TextBox5").Value = 1 & "/" & DataTables("劳务人员工资发放记录表_Table1").TotalPages vars("劳务人员工资发放记录表filter") = DataTables("劳务人员工资发放记录表_Table1").LoadFilter |
-- 作者:aza520 -- 发布时间:2018/8/2 17:42:00 -- 搞清楚了,谢谢 |
-- 作者:有点甜 -- 发布时间:2018/8/2 17:44:00 -- 以下是引用有点甜在2018/8/2 17:13:00的发言:
设置之前,先判断表格是否存在。窗口表,是窗口打开后才生成的。
If DataTables.Contains("劳务人员工资发放记录表_Table1") Then DataTables("劳务人员工资发放记录表_Table1").LoadFilter = "" End If
替换你LoadUserSetting事件的某些代码啊,看懂红色代码 |
-- 作者:有点甜 -- 发布时间:2018/8/2 17:47:00 -- 删除这个代码,看是否还报错?
trv.Nodes.Insert("加载所有数据",0)
|