Foxtable(狐表)用户栏目专家坐堂 → 求助,使用年限的表达式公式?


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

主题:求助,使用年限的表达式公式?

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/24 9:17:00 [显示全部帖子]

表达式无法获取当前年。要使用代码计算,比如:http://www.foxtable.com/webhelp/topics/1452.htm

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/24 11:03:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:使用年限计算.zip


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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/24 11:32:00 [显示全部帖子]

参考:http://www.foxtable.com/webhelp/topics/2648.htm

If e.DataCol.Name = "设备注册代码"  Then
    If e.DataRow.IsNull("设备注册代码") Then
        e.DataRow("使用年限1") = Nothing
    Else
        Dim d1 As Date = cdate(e.NewValue.Substring(10,6).Insert(4,"-") & "-01")
        Dim y,m,d As Integer
        DateYMD(d1,Date.Today,y,m,d)
        e.DataRow("使用年限1") = y
    End  If
End  If

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/24 12:13:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/24 14:06:00 [显示全部帖子]

以下是引用y2287958在2021/4/24 13:54:00的发言:
DataTables("表A").DataCols("使用年限1").Expression = Date.Today.Year & " - Convert(Substring([设备注册代码],11,4), 'System.Int32')"

这个还得每年改一次表达式

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/24 15:58:00 [显示全部帖子]

人家只是提供了一个处理问题的逻辑,结果是输出到命令窗口的。如果要输出结果到一个表格里,先建好这样的结果表,或者参考8楼帮助的方法键一个临时表,在改改11楼代码把结果改到表格里

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/24 16:26:00 [显示全部帖子]

如果看不懂代码,先学一下基础:http://www.foxtable.com/webhelp/topics/1592.htm,不可能以后每个功能都等着别人写好

Dim dic As New Dictionary(Of String, Integer)
For Each dr As DataRow In DataTables("问题统计").DataRows
    For Each s As String In dr("问题项目").split(";")
        If dic.ContainsKey(s) Then dic(s) += 1 Else dic.Add(s,1)
    Next
Next
dim r as row
For Each k As String In dic.Keys  '显示所有键及其对应的值
r = tables("某统计表").addnew
r("项目") = k
r("计数") = dic(k)
Next

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/25 9:41:00 [显示全部帖子]

参考:http://www.foxtable.com/webhelp/topics/0400.htm

For Each dr As DataRow In DataTables("问题统计").DataRows
改为
For Each dr As DataRow In DataTables("问题统计").select("[设备类别] = '电梯'")

 回到顶部