以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  智能判断各数值处在什么数值以内!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11435)

--  作者:annan
--  发布时间:2011/7/22 10:49:00
--  智能判断各数值处在什么数值以内!

有这样一个表达式:

"数值"列中分别有如下数字:
29

31

33

35

37

39

41

43

45

47

49

51

53

55

58

62

66
70

74

78

82

87
   "动态数值"列中,如果数值小于29,则显示29,如果大于29,且小于31,则显示31,如果数值大于31,且小于33,则显示33,....以此类推,有没有简便的表达方式,要用代码来完成!


--  作者:czy
--  发布时间:2011/7/22 11:01:00
--  

用表达式,要多少个iif呀

将这些数值单独列一个表,然后用代码提取就行了。


--  作者:annan
--  发布时间:2011/7/22 11:04:00
--  

是的,我单独为这些数值创建了"纸度管理"表,请问代码应该如何写呢?


--  作者:czy
--  发布时间:2011/7/22 11:18:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table


--  作者:annan
--  发布时间:2011/7/22 12:07:00
--  

你好,里面还有点问题,>0 <=29   显示29 没错

                           >29 <=31的地方还是显示29就错了,能帮忙再看看吗?


--  作者:czy
--  发布时间:2011/7/22 12:39:00
--  

加个判断呀

 

If e.DataCol.Name = "数值" Then
    If e.DataRow("数值") > 0 AndAlso e.DataRow("数值") <= 29 Then
        e.DataRow("动态数值") = 29
    ElseIf e.DataRow("数值") > 29 AndAlso e.DataRow("数值") <= 31 Then
        e.DataRow("动态数值") = 31
        Return
    End If
    Dim dr As DataRow = DataTables("表B").Find("动态数值 < " & e.DataRow("数值"),"动态数值 Desc")
    If dr IsNot Nothing Then
        e.DataRow("动态数值") = dr("动态数值")
    Else
        e.DataRow("动态数值") = Nothing
    End If
End If