以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助——加载外部数据表不能限制条件,帮忙看哪里出错啦?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129717)

--  作者:jq_shang
--  发布时间:2019/1/4 15:20:00
--  求助——加载外部数据表不能限制条件,帮忙看哪里出错啦?
求助——加载外部数据表不能限制条件,帮忙看哪里出错啦?
为了方便查找问题,我把三段测试代码,顺序倒过来显示如下:
BeforeLoadOuterTable  事件代码:



[此贴子已经被作者于2019/1/4 15:21:40编辑过]

--  作者:jq_shang
--  发布时间:2019/1/4 15:24:00
--  [原创]发不了
求助——加载外部数据表不能限制条件,帮忙看哪里出错啦?
为了方便查找问题,我把三段测试代码,顺序倒过来显示如下:
BeforeLoadOuterTable  事件代码:


测试三:
If e.DataTableName = "员工基础表" Then
    e.SelectString = "Select * Fro m {员工基础表} Where [_Identify] Is Null"
End If
从帮助文件完全复制过来的语句,居然也执行不对,员工信息全部加载了,重新打开项目也一样。


测试二:
If e.DataTableName = "员工基础表" Then
    e.SelectString = "Select * Fro m {员工基础表} Where [二级] = \'天誉公司南岭矿\'"
End If
员工全部加载了。没有限制为二级公司

测试一,先编写的代码,执行结果不正确,加载了全部记录。
\'一下段落,试图设置用户分组的权限.usbm=用户部门之意.
Dim usbm As String
usbm = user.group
If usbm = "天誉"
usbm = "天誉公司" \'这个USBM要去和"二级"相对照
Else
usbm = "天誉公司" & usbm & "矿"
End If  

If e.DataTableName = "员工基础表" AndAlso e.User.Name = "管理员" Or e.user.name = "开发者" Then
    e.SelectString = "Select * Fro m {员工基础表}" 
Else 
e.Selectstring = "select * fro m {员工基础表} where [二级] = \' & usbm & \'"

\'e.Selectstring = "select * fro m {员工基础表} where [二级] = \'天誉公司南岭矿 \'"

End If


[此贴子已经被作者于2019/1/4 15:31:54编辑过]

--  作者:有点甜
--  发布时间:2019/1/4 16:12:00
--  

1、msgbox(e.DataTableName) 弹出什么?

 

红色msgbox(1)能否弹出?

 

If e.DataTableName = "员工基础表" Then
msgbox(1)
    e.SelectString = "Select * Fro m {员工基础表} Where [_Identify] Is Null"
End If
 
2、你是不是在afterOpenProject等事件,写有 loadfilter、load 的代码?导致打开项目后表格重新加载了数据?

--  作者:jq_shang
--  发布时间:2019/1/4 16:49:00
--  
图片点击可在新窗口打开查看把上面代码复制后运行,弹出一个提示,显示“1”。确定后出现如下图的信息。很长的一个提示窗口。
然后这个表整个没有加载,连表名都没有出现。
另外,仔细检查了别的事项代码,没有其他load命令。

[此贴子已经被作者于2019/1/4 16:56:45编辑过]

--  作者:jq_shang
--  发布时间:2019/1/4 16:55:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:提示2.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2019/1/4 16:55:00
--  

1、看不到图片。

 

2、删除多余代码仅剩下面的测试

 

If e.DataTableName = "员工基础表" Then
msgbox(1)
    e.SelectString = "Select * From {员工基础表} Where [_Identify] Is Null"
End If
 
3、删除你afterOpenProject等事件的代码。

--  作者:jq_shang
--  发布时间:2019/1/4 17:07:00
--  
删除你afterOpenProject等事件的代码——代码中就是加载了个欢迎窗口。设置员工基础表为主表。感觉应该没事。不过还是全让它们变灰色了。此后——
好啦,这段命令执行正常了。
我再测一下固定字符串,最后测一下动态字符串。
固定字符串条件加载正常。
[此贴子已经被作者于2019/1/4 17:10:13编辑过]

--  作者:jq_shang
--  发布时间:2019/1/4 17:26:00
--  
Dim usbm As String
usbm = user.group
If usbm = "天誉"
    usbm = "天誉公司" \'这个USBM要去和"二级"相对照
Else
    usbm = "天誉公司" & usbm & "矿"
End If
msgbox(usbm)

If e.DataTableName = "员工基础表" Then
    msgbox(1)
    e.SelectString = "Select * Fro m {员工基础表} Where [二级] = \'天誉公司二号矿\'"
End If

上述代码,先取了一个动态字符串,但是并没有加入到条件中。执行过程出现问题:
msgbox(usbm)显示字符串正常,不过点确定键后,这个提示又连续出现7次。随后没有执行msgbox(1),而是再次连续出现usbm字符串的值。最后项目启动,固定字符串条件加载正常。

--  作者:有点甜
--  发布时间:2019/1/4 17:31:00
--  

 

If e.DataTableName = "员工基础表" Then
    msgbox(1)
    Dim usbm As String
    usbm = e.user.group
    If usbm = "天誉"
        usbm = "天誉公司" \'这个USBM要去和"二级"相对照
    Else
        usbm = "天誉公司" & usbm & "矿"
    End If
    msgbox(usbm)
    e.SelectString = "Select * Fro m {员工基础表} Where [二级] = \'" & usbm & "\'"
End If

 


--  作者:jq_shang
--  发布时间:2019/1/4 17:41:00
--  
另外,最后的动态条件表达式,老是出错啊,按版主的格式复制过来都不行。

Dim usbm As String
usbm = user.group
If usbm = "天誉"
    usbm = "天誉公司" \'这个USBM要去和"二级"相对照
Else
    usbm = "天誉公司" & usbm & "矿"
End If

If e.DataTableName = "员工基础表" Then
    msgbox(1)
‘’"Select * Fro m {表A} Where [单位名称] = \'" & e.User.Name & "\'"
    e.SelectString = "Select * Fro m {员工基础表} Where [二级] = \'" & usbm & "\'"
End If