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


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

主题:折后计算问题

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望: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

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 9:12:00 [显示全部帖子]

报什么错

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 14:24:00 [显示全部帖子]

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

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 15:12:00 [显示全部帖子]

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

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 15:45:00 [显示全部帖子]

什么“组合”条件,请举例说明

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 16:12:00 [显示全部帖子]

还是没看懂,请使用表格数据举例说明,比如:A1=面积*(组合表).克重,这个面积指哪个表哪一行的数据,根据什么条件获取到这个面积值

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 16:51:00 [显示全部帖子]

怎么知道组合统计表的前7行数据是和资料表的第一行数据关联的?根据什么规则关联?

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/19 22:15:00 [显示全部帖子]

DataTables("组合统计表").DeleteFor("")
For Each r As Row In Tables("资料表").Rows
    Dim s As String = r("组合")
    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)
    Dim 面积 As Integer = r("面积")
    Dim dr As DataRow
    For i As Integer = 0 To lst.Count - 1
        Dim s1 As String = lst(i)
        dr = DataTables("组合统计表").AddNew
        dr("组合名称") = s1
        dr("说明") = s
        Dim dr2 As DataRow = DataTables("组合表").Find("组合='" & s1 & "'")
        Dim 克重 As Integer = 0
        If dr2 IsNot Nothing Then
            克重 = dr2("克重")
        End If
        If i Mod 2 = 0 Then
            dr("重量") = 面积 * 克重
        Else
            dr2 = DataTables("类型表").Find("类型='" & s1 & "'")
            Dim 系数 As Double = 0
            If dr2 IsNot Nothing Then
                系数 = dr2("系数")
            End If
            dr("重量") = 面积 * 系数 * 克重
        End If
    Next
Next

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/20 12:05:00 [显示全部帖子]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,

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


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/20 13:55:00 [显示全部帖子]

发一串密码我哪看得懂。删除掉表格里的空行。

出现索引错误应该只有这一句Dim m As String = s(0)
说明列里有空值

 回到顶部
总数 15 1 2 下一页