Foxtable(狐表)用户栏目专家坐堂 → 处理自动录显示问题


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

主题:处理自动录显示问题

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251277 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/3 15:39:00 [显示全部帖子]

看看你的条件,全部是钢材规格:

 

 

fls = "盘具名称 = '" & dr1("品种") & "' And 钢材规格 = '" & dr1("型钢_规格") & "' And 钢材规格 = '" & dr1("排档_规格") & "'And 钢材规格 = '" & dr1("托圈_规格") & "' And 钢材规格 = '" & dr1("角钢腰圈_规格") & "' And 钢材规格 = '" & dr1("元钢腰圈_规格") & "' And 钢材规格 = '" & dr1("拉丝圆_规格") & "' And 钢材规格 = '" & dr1("中板_规格") & "' And 钢材规格 = '" & dr1("护缆圈_规格") & "' And 钢材规格 = '" & dr1("钢管_规格") & "' And 钢材规格 = '" & dr1("加固角钢_规格") & "' And 钢材规格 = '" & dr1("螺母_规格") & "' And 钢材规格 = '" & dr1("弹垫_规格") & "'"                                               

 

每一行的钢材规格列只是一个值,怎么可能同时等于多个值? 这等于你要求一个人身高必须同时等于150、160、170、180cm,会有这样的人吗,因为人的身高只有一个。


你应该拆分成多个:

 

Select Case e.DataCol.Name
    Case "品种","型钢_规格"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "盘具名称 = '" & dr1("品种") & "' And 钢材规格 = '" & dr1("型钢_规格") & "'"
        dr2 = DataTables("参数").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("型钢_单价") = dr2("钢材单价")
        End If
End Select
Select Case e.DataCol.Name
    Case "品种",""排档_规格"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "盘具名称 = '" & dr1("品种") & "' And "钢管_规格 = '" & dr1(""钢管_规格") & "'"
        dr2 = DataTables("参数").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("钢管_单价") = dr2("钢材单价")
        End If
End Select
....

[此贴子已经被作者于2011-4-3 15:49:37编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251277 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/3 19:17:00 [显示全部帖子]

列名错了,要一一对应:

 

Select Case e.DataCol.Name
    Case "品种",""排档_规格"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "盘具名称 = '" & dr1("品种") & "' And "钢管_规格 = '" & dr1(""钢管_规格") & "'"
        dr2 = DataTables("参数").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("排档_单价") = dr2("钢材单价")
        End If
End Select

[此贴子已经被作者于2011-4-3 19:19:05编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251277 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/4 9:13:00 [显示全部帖子]

错误提示明确地告诉你错误代码所在位置: Case "品种",""排档_规格"

很明显,代码多了一个双引号,应该是:Case "品种","排档_规格"

[此贴子已经被作者于2011-4-4 9:13:31编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251277 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/4 16:12:00 [显示全部帖子]

这段我测试有效,重置盘具成本的品种列,盘具成本表两行的型钢单价变为5.6,说明代码起作用:

 

Select Case e.DataCol.Name
    Case "品种","型钢_规格"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "盘具名称 = '" & dr1("品种") & "' And 钢材规格 = '" & dr1("型钢_规格") & "'"
        dr2 = DataTables("参数").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("型钢_单价") = dr2("钢材单价")
        End If
End Select

 

下面的代码当然不起作用,前面我已经回复,你的列名称不一致,你自己改一下吧:

 

Select Case e.DataCol.Name
    Case "品种","排档_规格"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "盘具名称 = '" & dr1("品种") & "' And 钢材规格 = '" & dr1("钢管_规格") & "'"
        dr2 = DataTables("参数").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("排档_单价") = dr2("钢材单价")
        End If
End Select


 

你用20天的时间纠结在同一个问题上,比其他人多花了10倍的时间都不止,我希望能你能想想原因是什么?

 

[此贴子已经被作者于2011-4-4 16:19:51编辑过]

 回到顶部