Foxtable(狐表)用户栏目专家坐堂 → 求助


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

主题:求助

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/24 14:30:00 [显示全部帖子]

DataColChanted

 

If e.DataCol.name = "月份" Then
    Dim fdr As DataRow = e.DataTable.Find("月份 < '" & e.DataRow("月份") & "'", "月份 desc")
   
    If fdr IsNot Nothing Then
        For Each dc As DataCol In e.DataTable.datacols
            If dc.Name Like "*上期*" Then
                e.DataRow(dc.name.replace("上期", "本期")) = fdr(dc.name)
            End If
        Next
    End If
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/25 10:31:00 [显示全部帖子]

If e.DataCol.name Like "*本期*" OrElse e.DataCol.name Like "*上期*" Then

    Dim name As String = e.Datacol.Name.Replace("本期", "").Replace("上期", "")
    e.DataRow(name & "差额") = e.DataRow(name & "本期") - e.DataRow(name & "上期")
End If

[此贴子已经被作者于2017/7/25 10:31:35编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/25 16:41:00 [显示全部帖子]

以下是引用nbsugu_z在2017/7/25 16:16:00的发言:
运行后取不到价格

 

运行下面的代码,执行,弹出什么?

 

If e.DataCol.name = "月" Then
    For Each c As DataCol In e.DataTable.DataCols
msgbox(c.name)
        If c.name Like "*dj*"  Then
            Dim name1 As String = Left(e.DataCol.Name.Replace("dj", ""),1) '去掉后二位dj和第一位字符得到编号
            Dim drb As DataRow
msgbox(name1)
            drb = DataTables("表A").Find("编号 = '" & name1 & "'") '找到表识别中编号为name1的行
            If drb IsNot Nothing Then
msgbox(drb("价格"))
                e.DataRow(c.name)  = drb("价格")   '自动从"表识别"取数
            End If
        End If
    Next
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/25 17:32:00 [显示全部帖子]

改一改

 

If e.DataCol.name = "月" Then
    For Each c As DataCol In e.DataTable.DataCols
        If c.name Like "*dj*"  Then
            Dim name1 As String = e.DataCol.Name.Replace("dj", "").substring(1) '去掉后二位dj和第一位字符得到编号
            Dim drb As DataRow
            drb = DataTables("表A").Find("编号 = '" & name1 & "'") '找到表识别中编号为name1的行
            If drb IsNot Nothing Then
                e.DataRow(c.name)  = drb("价格")   '自动从"表识别"取数
            End If
        End If
    Next
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/26 8:37:00 [显示全部帖子]

1、没看到你上传的例子;

 

2、弹出的c.name是什么?弹出的name1是什么?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/26 9:40:00 [显示全部帖子]

If e.DataCol.name = "月" Then
    For Each c As DataCol In e.DataTable.DataCols
        If c.name Like "*dj*"  Then
            Dim name1 As String = c.Name.Replace("dj", "").Remove(0,1)'去掉后二位dj和第一位字符得到编号
            Dim drb As DataRow
            drb = DataTables("表A").Find("编号 = '" & name1 & "'") '找到表识别中编号为name1的行
            If drb IsNot Nothing Then
                e.DataRow(c.name)  = drb("价格")   '自动从"表识别"取数
            End If
        End If
    Next
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/1 17:15:00 [显示全部帖子]

你于没有年份列?如果月份列是 201801、201712这样的,代码肯定没问题。

 

回复19楼,请上传具体实例说明问题。

 

 


 回到顶部