Foxtable(狐表)用户栏目专家坐堂 → SQLTable的加载问题


  共有2144人关注过本帖树形打印复制链接

主题:SQLTable的加载问题

帅哥哟,离线,有人找我吗?
aza520
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
SQLTable的加载问题  发帖心情 Post By:2018/8/2 16:44:00 [只看该作者]

设以下代码,在打开项目的时候显示不存在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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/8/2 16:59:00 [只看该作者]

BeforeLoadOuterTable设如下代码


If e.DataTableName = "劳务人员工资发放记录表_Table1" Then
    e.SelectString = "Selec t * Fro m {劳务人员工资发放记录表} Where [_Identify] Is Null"
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 17:13:00 [只看该作者]

设置之前,先判断表格是否存在。窗口表,是窗口打开后才生成的。

 

If DataTables.Contains("劳务人员工资发放记录表_Table1") Then

    DataTables("劳务人员工资发放记录表_Table1").LoadFilter = ""

End If


 回到顶部
帅哥哟,离线,有人找我吗?
aza520
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/8/2 17:42:00 [只看该作者]

搞清楚了,谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 17:44:00 [只看该作者]

以下是引用有点甜在2018/8/2 17:13:00的发言:

设置之前,先判断表格是否存在。窗口表,是窗口打开后才生成的。

 

If DataTables.Contains("劳务人员工资发放记录表_Table1") Then

    DataTables("劳务人员工资发放记录表_Table1").LoadFilter = ""

End If

 

替换你LoadUserSetting事件的某些代码啊,看懂红色代码


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 17:47:00 [只看该作者]

删除这个代码,看是否还报错?

 

trv.Nodes.Insert("加载所有数据",0)

 


 回到顶部