Foxtable(狐表)用户栏目专家坐堂 → 动态加载


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

主题:动态加载

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


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
动态加载  发帖心情 Post By:2013/4/7 10:44:00 [显示全部帖子]

在帮助住中有“利用扩展用户属性设置初始加载条件”,如果使用SQL外部数据源在BEFORELOADOUTERTABLE中代码应如何写?

 

利用扩展用户属性设置初始加载条件

通常利用扩展用户属性,让用户在登录的时候,选择要加载的数据范围。
例如有一个订单管理系统,希望在用户登录的时候,能够指定一个日期范围,仅加载该日期范围内的订单。

首先我们得在用户管理中增加起始日期、结束日期两个扩展属性:

假定使用的是内部表,然后在BeforeLoadInnerTable事件中加入如下代码:

If e.DataTableName = "订单" Then
    e.Filter =
"[日期] >= #" & e.User.ExtendedValues("起始日期") & "# And [日期] <= #" & e.User.ExtendedValues("结束日期") & "#"
End
If

这样即可在登录的时候,由用户自行输入要加载数据的日期范围:


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


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/4/15 9:14:00 [显示全部帖子]

在学习对外部表存货账进行动态加载时(因SQL服务器只能在局域网内连接,数据先改成内部数据源),在BeforeLoadOuterTable输入以下代码 

If e.DataTableName = "存货账" Then
    e.SelectString = "Select * From 存货账 Where [业务发生日期] >= #" & e.User.ExtendedValues("起始日期") & "# And [业务发生日期] <= #" & e.User.ExtendedValues("结束日期") & "#"
End If

刚进入系统提示以下错误,请各位大师帮忙看下是什么原因?

错误代码位置:项目,BEFORELOADOUTERTABLE

system.collections.generic.keynotfoundexception:给定关键字不在字典中

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:上传文件.zip


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


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/4/15 9:48:00 [显示全部帖子]

大师您好,我输入最新代码打开项目还是提示原来错误,我想会不会是我起始日期与结束日期设置的是日期格式?请多指教,谢谢。

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


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/4/15 9:58:00 [显示全部帖子]

我用的是SQL SERVER 2005外部数据源,现在在BeforeLoadOuterTable输入以下代码 

If e.User.ExtendedValues("起始日期") > "" And e.User.ExtendedValues("结束日期") > "" Then
    If e.DataTableName = "存货账" Then
        e.SelectString = "Select * From 存货账 Where [业务发生日期] >= '" & e.User.ExtendedValues("起始日期") & "' And [业务发生日期] <= '" & e.User.ExtendedValues("结束日期") & "'"
    End If
End If

可是依然提示相同错误,研究几天了就不知道那里出现问题?

 


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


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/4/15 11:12:00 [显示全部帖子]

我用的是SQL SERVER 2005外部数据源,现在在BeforeLoadOuterTable输入以下代码 

If e.User.ExtendedValues("起始日期") > "" And e.User.ExtendedValues("结束日期") > "" Then
    If e.DataTableName = "存货账" Then
        e.SelectString = "Select * From 存货账 Where [业务发生日期] >= '" & e.User.ExtendedValues("起始日期") & "' And [业务发生日期] <= '" & e.User.ExtendedValues("结束日期") & "'"
    End If
End If

现在测试时提示错误

system.invaildcastexception:从字符串“”到类型“DATE”的转换无效,这又是什么出差?


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


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2013/4/15 13:27:00 [显示全部帖子]

终于搞定,多谢狐爸及各位大师指点。

 


 回到顶部