Foxtable(狐表)用户栏目专家坐堂 → 表属性代码引用表达式列


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

主题:表属性代码引用表达式列

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
表属性代码引用表达式列  发帖心情 Post By:2020/7/6 9:57:00 [只看该作者]

老师,在表属性的代码里不能引用列属性为表达式的列吗?用什么方法可以引用呢!!
If e.DataCol.Name = "zwbm" Then  
    Dim filter1 As String = "zwbm = '" & e.DataRow("zwbm")  & "' And nd = '" & e.DataRow("nd") & "'And yf = '" & e.DataRow("yf") & "'"
    e.DataRow("byxz") = DataTables("xzxymxb").Compute("sum(byxz)",filter1 ) 
    e.DataRow("byfk") = DataTables("xzfkmxb").Compute("sum(byfk)",filter1 ) 
    e.DataRow("byzh") = DataTables("hbmxb").Compute("sum(hkje)",filter1 ) + DataTables("gckzfmxb").Compute("sum(zfje)",filter1 )
    e.DataRow("byzf") = DataTables("lxmxb").Compute("sum(zfje)",filter1 ) 
End If
(byxz)、(byfk)、(hkje)、(zfje)这些列都是表达式列,在项目打开时,提示这些列无效!!
[此贴子已经被作者于2020/7/6 9:58:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/6 9:58:00 [只看该作者]

可以引用。请举例说明具体问题

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2020/7/6 9:59:00 [只看该作者]

If e.DataCol.Name = "zwbm" Then  
    Dim filter1 As String = "zwbm = '" & e.DataRow("zwbm")  & "' And nd = '" & e.DataRow("nd") & "'And yf = '" & e.DataRow("yf") & "'"
    e.DataRow("byxz") = DataTables("xzxymxb").Compute("sum(byxz)",filter1 ) 
    e.DataRow("byfk") = DataTables("xzfkmxb").Compute("sum(byfk)",filter1 ) 
    e.DataRow("byzh") = DataTables("hbmxb").Compute("sum(hkje)",filter1 ) + DataTables("gckzfmxb").Compute("sum(zfje)",filter1 )
    e.DataRow("byzf") = DataTables("lxmxb").Compute("sum(zfje)",filter1 ) 
End If
(byxz)、(byfk)、(hkje)、(zfje)这些列在其他表都是表达式列,在项目打开时,提示这些列无效!!(最开始是数据列,后面更改为表达式列后打开项目就提示列无效)
[此贴子已经被作者于2020/7/6 10:00:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/6 10:12:00 [只看该作者]

在项目打开时,提示这些列无效这这个代码没有什么关系,上面代码肯定是可以使用的。

在项目打开时,检查项目事件、加载树、外部表设置等等

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2020/7/6 11:30:00 [只看该作者]

老师,窗口的AfterLoad事件中涉及上述表达式列,是否影 响,因为项目 事件中没有代码涉及到。


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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2020/7/6 11:35:00 [只看该作者]

.NET Framework 版本:2.0.50727.8806
Foxtable 版本:2017.6.12.1
错误所在事件:
详细错误信息:
列名 'byfk' 无效。
没有说明是哪个事件的代码引起的无效

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/6 11:35:00 [只看该作者]

代码?

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2020/7/7 10:27:00 [只看该作者]

窗口的AfterLoad事件中的代码,只截了一部分用到的(byfk)就是引用表的表达式列
Dim dt7 As New Date(y, 1, 1)
Dim dt8 As New Date(y, 12, 31)
Dim Filter3 As String
Dim Filter4 As String
Filter3 = "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'"
Filter4 = "rq < '" & dt7 & "'"

Dim cnt1 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt1 & "' And rq <= '" & dt2 & "'And zwlx = '公益性项目债务'")
Dim cnt2 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt1 & "' And rq <= '" & dt2 & "'And zwlx = '非项目债务'") + DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt1 & "' And rq <= '" & dt2 & "'And zwlx = '经营性项目债务'") 
Dim cnt3 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt1 & "' And rq <= '" & dt2 & "'And zwlx = '棚改项目'")
Dim cnt4 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt1 & "' And rq <= '" & dt2 & "'")
Dim cnt5 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt3 & "' And rq <= '" & dt4 & "'And zwlx = '公益性项目债务'")
Dim cnt6 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt3 & "' And rq <= '" & dt4 & "'And zwlx = '非项目债务'") + DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt3 & "' And rq <= '" & dt4 & "'And zwlx = '经营性项目债务'")  
Dim cnt7 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt3 & "' And rq <= '" & dt4 & "'And zwlx = '棚改项目'")
Dim cnt8 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt3 & "' And rq <= '" & dt4 & "'")
Dim cnt9 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt5 & "' And rq <= '" & dt6 & "'")
Dim cnt10 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt5 & "' And rq <= '" & dt6 & "'And zwlx = '公益性项目债务'")
Dim cnt11 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt5 & "' And rq <= '" & dt6 & "'And zwlx = '非项目债务'") + DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt5 & "' And rq <= '" & dt6 & "'And zwlx = '经营性项目债务'")  
Dim cnt12 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt5 & "' And rq <= '" & dt6 & "'And zwlx = '棚改项目'")
Dim cnt13 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'")
Dim cnt14 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '公益性项目债务'")
Dim cnt55 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '公益性项目债务'And zwlb = '贷款融资'")
Dim cnt56 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '公益性项目债务'And zwlb = '应付工程款'") 
Dim cnt15 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '非项目债务'") + DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '经营性项目债务'") 
Dim cnt57 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '非项目债务'And zwlb = '贷款融资'") + DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '经营性项目债务'And zwlb = '贷款融资'") 
Dim cnt58 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '非项目债务'And zwlb = '应付工程款'") + DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '经营性项目债务'And zwlb = '应付工程款'")  
Dim cnt16 As Integer = DataTables("xzfkmxb").sqlCompute("sum(byfk)/10000" , "rq >= '" & dt7 & "' And rq <= '" & dt8 & "'And zwlx = '棚改项目'")

[此贴子已经被作者于2020/7/7 10:27:40编辑过]

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


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2020/7/7 10:30:00 [只看该作者]

就是将原来是数据列的列改为表达式列后,打开项目就会提示“XX”列无效,又没指定是哪个事件的代码导致的

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/7 10:54:00 [只看该作者]

Compute可以使用表达式列。sqlCompute不可以使用表达式列,因为sqlCompute是直接查询数据库的,数据库不存在表达式列

 回到顶部