Foxtable(狐表)用户栏目专家坐堂 → 带判断的自动录入代码


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

主题:带判断的自动录入代码

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


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

我首先发现两个问题,元钢根数,拍档_规格,工资单价这三列是数值型吧,在表达式中,数值型是不需要用单引号的。

 

建议你先细看:

 

http://help.foxtable.com/topics/1284.htm

 


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


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

不知道每一列的数据类型,就无法判断代码是否正确啊.

下面这一章告诉了你,不同的列,合成的表达式需要注意的地方:

 

http://help.foxtable.com/topics/1284.htm

 


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


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

要么表达式不对,要么不存在负荷条件的行,没有别的原因。

没有用于测试的表,任何人都没有办法告诉你到底是哪个原因的。


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


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

楼主,你的参数表有角钢规格列吗,没有的话,怎么会有这样的代码:

 

 dr1("排档_规格") = dr2("角钢规格")

 

还有下面的代码是什么意思啊,等于是修改A\B\C三列,再重算A\B\C三列,效率不说,意义何在? 一般是修改某列或某几列,通过代码求其他列的值。

 

Select Case e.DataCol.Name
    Case "用盘单位","品种","规格", "承载", "排档_规格", "排档_数量", "拉丝圆_规格", "拉丝圆_数量", "工资"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "用盘单位 = '" & dr1("用盘单位") & "' And 盘具规格 = '" & dr1("规格") & "' And 盘具品种 = '" & dr1("品种") & "'  And 承载 = " & dr1("承载") & "  And 元钢规格 = '" & dr1("拉丝圆_规格") & "'  And 元钢根数 = " & dr1("拉丝圆_数量") & "  And 角钢规格 = '" & dr1("排档_规格") & "'  And 角钢根数 = " & dr1("排档_数量") & " And 工资单价  = " & dr1("工资") & " "
        dr2 = DataTables("参数").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("用盘单位") = dr2("用盘单位")
            dr1("品种") = dr2("盘具品种")
            dr1("承载") = dr2("承载")
            dr1("规格") = dr2("盘具规格")
            dr1("排档_规格") = dr2("角钢规格")
            dr1("排档_数量") = dr2("角钢数量")
            dr1("拉丝圆_规格") = dr2("元钢规格")
            dr1("拉丝圆_数量") = dr2("元钢根量")
            dr1("工资") = dr2("工资单价")
        End If
End Select


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


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

1、你的参数表的盘踞规格是字符型,盘踞成本的规格列是数值型,两者不统一

2、既然是A\B\C变化后,求E\D\F的值,为啥你的代码是是A\B\C\D\E\F变化后,求A\B\C\D\E\F的值,这能出结果才怪。

3、还有你的参数表有角钢数量和元钢根量着两列吗?

 

下面的代码基本能用,不过你得讲盘踞成本表的规格列改为字符型:

 

Select Case e.DataCol.Name
    Case "用盘单位","品种","规格", "承载"
        Dim dr2 As DataRow
        Dim fls As String
        fls = "用盘单位 = '" & dr1("用盘单位") & "' And 盘具规格 = '" & dr1("规格") & "' And 盘具品种 = '" & dr1("品种") & "'  And 承载 = " & dr1("承载")
        output.show(fls)
        dr2 = DataTables("参数").Find(fls)
        If dr2 IsNot Nothing Then
            dr1("排档_规格") = dr2("角钢规格")
            'dr1("排档_数量") = dr2("角钢数量")
            dr1("拉丝圆_规格") = dr2("元钢规格")
            'dr1("拉丝圆_数量") = dr2("元钢根量")
            dr1("工资") = dr2("工资单价")
        End If
End Select

 

强烈建议你抽点时间先看看帮助,这样你的开发效率和质量会更好。

 

[此贴子已经被作者于2011-4-1 12:09:04编辑过]

 回到顶部