Foxtable(狐表)用户栏目专家坐堂 → 数据记忆和应用


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

主题:数据记忆和应用

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
数据记忆和应用  发帖心情 Post By:2020/10/10 8:07:00 [只看该作者]

    If e.DataRow("制造产品号").startswith("KS") 
        Dim Filter As String = "[制造产品号] = '" & e.DataRow("制造产品号") & "'"
        Dim drs As List(Of DataRow) = DataTables("KSBOM").Select(Filter)
        dim dr1 as string
        For i As Integer = 0 To drs.Count - 1
            If i = 0
                e.DataRow("型号") = drs(i)("型号")
                e.DataRow("原材料") = drs(i)("原材料")
                e.DataRow("开料参数") = drs(i)("开料参数")
                e.DataRow("标识") = drs(i)("标识")
                e.DataRow("毫米长度") = drs(i)("毫米长度")
                e.DataRow("长度") = drs(i)("长度")
                e.DataRow("数量") = drs(i)("数量") * e.DataRow("套数") 
                dr1 = e.datarow("生产piao号")
            Else
                Dim nr As Row = Tables("弯头开料单").addnew
                nr("型号") = drs(i)("型号")
                nr("原材料") = drs(i)("原材料")
                nr("开料参数") = drs(i)("开料参数")
                nr("标识") = drs(i)("标识")
                nr("毫米长度") = drs(i)("毫米长度")
                nr("长度") = drs(i)("长度")
                nr("数量") = drs(i)("数量") * e.DataRow("套数")
                nr("生产piao号") = dr1  
           End If
        Next
    End If

上述代码中,我定义了dr1,希望在 i=0 时记忆下来,然后应用到i = 1 等行里面去,但老是出现如下错误:
编译错误:dr1 在封闭块中隐藏变量

请教如何处理这个问题?谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

代码没有问题,是这个事件其它代码也定义了一个同名的dr1变量,重复定义了,改为其它名称即可

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2020/10/10 11:27:00 [只看该作者]

谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2020/10/17 8:23:00 [只看该作者]

If e.DataCol.name ="特殊产品"
    Dim Filter As String = "[生产piao号] = '" & e.DataRow("生产piao号") & "'"
    Dim drs As List(Of DataRow) = DataTables("弯头开料单").Select(Filter)
    Dim dr15 As String
        For i As Integer = 0 To drs.Count-1
            If i = 0
                dr15 =  e.DataRow("特殊产品")
            Else
                drs(i)("特殊产品") = dr15
            End If
        Next
End If

上述代码的目的是,如果在第一行的“特殊产品”里面输入了数据,那么在后面所有同生产piao号的行,其“特殊产品”都复制输入同样的数据。但是实际运行效果是,最后一行的“特殊产品”却总是空白。请教为什么呢?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

If e.DataCol.name ="特殊产品"
    Dim Filter As String = "[生产piao号] = '" & e.DataRow("生产piao号") & "' and [_Identify] <>" & e.DataRow("_Identify")
    Dim drs As List(Of DataRow) = DataTables("弯头开料单").Select(Filter)
    Dim dr15 As String=  e.DataRow("特殊产品")
        For i As Integer = 0 To drs.Count-1
            drs(i)("特殊产品") = dr15
        Next
End If

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2020/10/17 11:30:00 [只看该作者]

谢谢。

 回到顶部