Foxtable(狐表)用户栏目专家坐堂 → 折后计算问题


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

主题:折后计算问题

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
折后计算问题  发帖心情 Post By:2021/4/17 15:39:00 [只看该作者]

根据下面条件(类型,组合,计算公式),如何实现计算出“组合统计表”的组合名称的重量?
一,类型,组合
类型:A, 组合:BC
类型:A,组合:A1BC
类型:BC, 组合:ABCBA1
类型:BBE, 组合:A1B1CB1CB

二,计算公式

1.计算:B,C的重量
计算公式:
B=面积*(类型表).系数*(组合表).克重
C=面积*(组合表).克重


2.计算:A1,B,C的重量

计算公式:

A1=面积*(组合表).克重
B=面积*(类型表).系数*(组合表).克重
C=面积*(组合表).克重


3.计算:A,B,C,B,A1的重量

计算公式:

A=面积*(组合表).克重
B=面积*(类型表).系数*(组合表).克重
C=面积*(组合表).克重
B=面积*(类型表).系数*(组合表).克重
A1=面积*(组合表).克重


4.计算:A1,B1,C,B1,C,B 的重量

计算公式:

A1=面积*(组合表).克重
B1=面积*(类型表).系数*(组合表).克重
C=面积*(组合表).克重
B1=面积*(类型表).系数*(组合表).克重
C=面积*(组合表).克重
B=面积*(类型表).系数*(组合表).克重
C=面积*(组合表).克重

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




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


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

把组合拆分开来即可,比如

Dim s As String = "A1B1CB1CBC"
Dim lst As new List(of String)
Dim m As String = s(0)
For i As Integer = 1 To s.Length - 1
    If Char.IsDigit(s(i)) Then
        m = m & s(i)
        lst.Add(m)
        m = ""
    ElseIf m > ""
        lst.Add(m)
        m = s(i)
    Else
        m = s(i)
    End If
Next
lst.Add(m)
For Each s1 As String In lst
    Output.Show(s1)
Next

根据拆分结果进行不同的计算即可,比如
For Each s1 As String In lst
    Output.Show(s1)
Next
改为下面代码
Dim 面积 As Integer = 根据组合名称从资料表获取面积,参考下面find的用法
For Each s1 As String In lst
    Dim dr As DataRow = DataTables("组合表").Find("组合='" & s1 & "'")
    Dim 克重 As Integer = 0
    If dr IsNot Nothing Then
        克重 = dr("克重")
    End If
    dr = DataTables("类型表").Find("类型='" & s1 & "'")
    Dim 系数 As Double = 0
    If dr IsNot Nothing Then
        系数 = dr("系数")
    End If
    Select Case s1
        Case "A","C","A1"
            Dim sum As Double = 面积 * 克重
        Case "B"
            Dim sum As Double = 面积 * 系数 * 克重
    End Select
Next

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/4/19 9:05:00 [只看该作者]

Dim 面积 As Integer = DataTables("资料表").Find("面积 ='" & s1 & "'")   根据组合名称从资料表获取面积,参考下面find的用法
For Each s1 As String In lst
    Dim dr As DataRow = DataTables("组合表").Find("组合='" & s1 & "'")
    Dim 克重 As Integer = 0
    If dr IsNot Nothing Then
        克重 = dr("克重")
    End If
    dr = DataTables("类型表").Find("类型='" & s1 & "'")
    Dim 系数 As Double = 0
    If dr IsNot Nothing Then
        系数 = dr("系数")
    End If
    Select Case s1
        Case "A","C","A1"
            Dim sum As Double = 面积 * 克重
        Case "B"
            Dim sum As Double = 面积 * 系数 * 克重
    End Select
Next

老师,上面报错,请帮助,谢谢,


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


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

报什么错

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/4/19 14:21:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:ff.jpg
图片点击可在新窗口打开查看

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


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

Dim 面积 As Integer = DataTables("资料表").Find("面积从哪个表取?根据什么条件取?改为正确的条件") 

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/4/19 15:00:00 [只看该作者]

详细错误信息:
调用的目标发生了异常。
无法在 System.Single 和 System.String 上执行“=”操作。

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/4/19 15:05:00 [只看该作者]

For Each s1 As String In lst
    Dim dr As DataRow = DataTables("组合表").Find("组合='" & s1 & "'")
    Dim 克重 As Integer = 0
    If dr IsNot Nothing Then
        克重 = dr("克重")
    End If
    dr = DataTables("类型表").Find("类型='" & s1 & "'")
    Dim 系数 As Double = 0
    If dr IsNot Nothing Then
        系数 = dr("系数")
    End If
    
    dr= DataTables("资料表").Find("面积 ='" & s1 & "'")
    Dim 面积 As Double = 0
    If dr IsNot Nothing Then
        面积= dr("面积")
        
        
    End If
    
    Select Case s1
        Case "A","C","A1"
            Dim sum As Double = 面积 * 克重
        Case "B"
            Dim sum As Double = 面积 * 系数 * 克重
    End Select
Next

上面代码报错,请老师在附件改正,谢谢!

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


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

面积从哪个表取?根据什么条件取?不考虑代码,请使用文字回答

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/4/19 15:32:00 [只看该作者]

面积资料表取值,根据“组合”条件取。

 回到顶部
总数 32 1 2 3 4 下一页