以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]根据登录名加载数据出错!(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=10641)

--  作者:yyzlxc
--  发布时间:2011/6/15 20:48:00
--  [求助]根据登录名加载数据出错!(已解决)

初学狐表,想制作日报系统,应用到工作中。
1、导入"日报源表";

2、在项目事件BeforeLoadInnerTable中添加代码:
Dim zu As String = User.Group
If zu ="填报" Then
If e.DataTableName = "日报源表"
    e.Filter = "[单位] = \'" & e.User.Name & "\'"
Else
    e.Filter = "[单位]" =""
End If
End If

目的:根据用户组及用户名来加载"日报源表"。

3、在项目事件MainTableChanged中添加代码:
If MainTable.Name = "日报源表" Then
    Dim tb As New DropTreeBuilder
    tb.SourceTable = DataTables("日报源表") \'指定目录树表
    tb.TreeCols = "单位|厂家|产品|单价" \'指定用于生成目录树的列
    tb.SourceCols = "单位|厂家|产品|单价" \'指定数据来源列
    tb.ReceiveCols = "单位|厂家|产品|单价" \'指定数据接收列
    Tables("日报源表").Cols("单位").DropTree = tb.Build()
End If
With Tables("日报源表")
    .Position = .Rows.Count - 1
End With

目的:打开项目时,自动根据"日报源表"的数据,生成目录树,用于填报,并返回最末行。

 开发密码:123

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产日报.table

 


现在的问题是:
1、在狐表的界面可以打开该项目,但是如果直接双击项目会出错,见下图,连续两次确定后,还是可以打开项目,问题可能出在项目事件MainTableChanged中添加的代码有误,如何解决?

 

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获1.png
图片点击可在新窗口打开查看

2、进入项目后,不能实现项目事件MainTableChanged中这段代码的目的,需要通过程序菜单再次打开项目,才能实现所需要的效果;而且切换工作组后,也需要重复打开两次,才能达到目的。
总之,感觉项目事件BeforeLoadInnerTable的代码有问题,需要各位老师帮助指教。

[此贴子已经被作者于2011-6-16 9:36:22编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/6/15 21:43:00
--  

BeforeLoadInnerTable的事件代码应该是:

 

Dim zu As String = e.User.Group
If zu ="填报" Then
    If e.DataTableName = "日报源表"
        e.Filter = "[单位] = \'" & e.User.Name & "\'"
    Else
        e.Filter = "[单位]" =""
    End If
End If

 

注意BeforeLoadInnerTable的说明中有一句话: 注意此事件必须通过e.User来引用用户。

 

 

 


[此贴子已经被作者于2011-6-15 21:43:55编辑过]

--  作者:yyzlxc
--  发布时间:2011/6/15 22:10:00
--  

谢谢狐狸爸爸,大问题解决了,怪自己太粗心,真该仔细看看帮助。

另外,好像还是不能通过切换用户功能键来切换用户,问题出在哪里?还请指教。


--  作者:狐狸爸爸
--  发布时间:2011/6/15 22:14:00
--  
我测试可以切换用户
--  作者:yyzlxc
--  发布时间:2011/6/15 23:07:00
--  
可能因为是试用版的关系?
--  作者:blackzhu
--  发布时间:2011/6/16 7:55:00
--  
试用版的功能又不影响的.
--  作者:狐狸爸爸
--  发布时间:2011/6/16 8:10:00
--  
楼主升级到最新的版本看看
--  作者:yyzlxc
--  发布时间:2011/6/16 9:45:00
--  
终于搞明白了,项目事件BeforeLoadInnerTable是需要打开项目时加载数据,而切换用户时并不能触发BeforeLoadInnerTable事件来根据登录用户重新加载所需数据。谢谢各位指点。