以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]跨表多条件计算问题请教(急)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=16614)

--  作者:dyf0429
--  发布时间:2012/2/19 14:43:00
--  [求助]跨表多条件计算问题请教(急)

请假狐狸爸爸:

印刷费的多条件计算问题:
1,当印张数>设备参数表中规定的起印数量5000,   并且装版方式为‘单面印刷’
印刷费=[设备参数表.起印费]+{印张数-[设备参数表.起印数]}*[设备参数.每印价]
2,当印张数>设备参数表中规定的起印数量5000,   并且装版方式为‘正反印刷’
印刷费=[设备参数表.起印费]*2+{印张数-[设备参数表.起印数]}*[设备参数.每印价]
。。。。。。还有好多条件

请问这个“印刷费”列用表达式列还是数据列
这个条件计算应该如何写呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表多条件计算问题请教.zip


--  作者:狐哥
--  发布时间:2012/2/19 15:35:00
--  

试试这个苯办法代码:

 

Dim d As DataRow = e.DataRow
If e.DataCol.Name = "装版方式" Then
    Dim dr As DataRow = DataTables("设备参数").find("印刷设备 = \'" & d("印刷设备") & "\'")
    Dim cj As Double = d("印张数") - dr("起印刷数")
    If dr IsNot Nothing Then
        If d("装版方式") = "单面印刷" Then
            Dim s As String = dr("起印费") + cj * dr("每印价")
            d("印刷费") = eval(s)
        ElseIf d("装版方式") = "正反印刷" Then
            Dim s As String = dr("起印费") * 2 + cj * dr("每印价")
            d("印刷费") = eval(s)
        End If
    End If
End If


--  作者:dyf0429
--  发布时间:2012/2/19 16:29:00
--  

谢谢狐哥,谢谢您的帮助,已经可以了