Foxtable(狐表)用户栏目专家坐堂 → 现有编码简化问题


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

主题:现有编码简化问题

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/12 10:34:00 [显示全部帖子]


Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "全年应返数量","全年已返数量","返利单价","全年未返数量"
        If dr1.IsNull("全年应返数量") OrElse dr1.IsNull("全年已返数量")  Then
            dr1("全年未返数量") = Nothing
        Else
            dr1("全年未返数量") = round2(dr1("全年应返数量") - dr1("全年已返数量"),2)
        End If
        If dr1.IsNull("返利单价") OrElse dr1.IsNull("全年未返数量")  Then
            dr1("全年未返金额") = Nothing
        Else
            dr1("全年未返金额") = round2(dr1("全年未返数量") * dr1("返利单价"),2)
        End If
       
    Case "第一季度实际数量","第一季度调整数量","第一季度计提数量","第二季度实际数量","第二季度调整数量","第二季度计提数量","第三季度实际数量","第三季度调整数量","第三季度计提数量","第四季度实际数量","第四季度调整数量","第四季度计提数量"
        Dim jd As String = e.DataCol.name.substring(0, 4)
        If dr1.IsNull(jd & "实际数量") Then
            dr1(jd & "计提数量") = Nothing
        Else
            dr1(jd & "计提数量") = round2(dr1(jd & "实际数量") + dr1(jd & "调整数量"),2)
        End If
       
        If dr1.IsNull("返利单价") OrElse dr1.IsNull(jd & "计提数量")  Then
            dr1(jd & "计提金额") = Nothing
        Else
            dr1(jd & "计提金额") = round2(dr1(jd & "计提数量") * dr1("返利单价"),2)
        End If
    Case "返利单价"
        Dim ary() As String = {"第一季度实际数量", "第二季度实际数量", "第三季度实际数量", "第四季度实际数量", "全年应返数量"}
        For Each s As String In ary
            e.DataTable.DataCols(s).RaiseDataColChanged(dr1)
        next
End Select

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/12 22:04:00 [显示全部帖子]

For Each dr As DataRow In DataTables("表A").Select("")
    Dim dt As DataTable
    If dr("返利类型") = "按入库" Then
        dt = DataTables("入库结构报表")
    ElseIf dr("返利类型") = "按销售" Then
        dt = DataTables("批发及退货报表")
    End If
    Dim yearin1 As Double = dt.Compute("sum(数量)", "高开财务编号 = '" & dr("财务编号") & "'")
    Dim yearin2 As Double = dt.Compute("sum(数量)", "返利财务编号 = '" & dr("财务编号") & "'")
    Dim yearout1 As Double = dt.Compute("sum(数量)", "高开财务编号 = '" & dr("财务编号") & "' and 高开结清 = true")
    Dim yearout2 As Double = dt.Compute("sum(数量)", "返利财务编号 = '" & dr("财务编号") & "' and 返利结清 = true")
    dr("全年应返数量") = yearin1 + yearin2
    dr("全年已返数量") = yearout1 + yearout2
   
    Dim cs() As String = {"第一季度统计数量","第二季度统计数量","第三季度统计数量","第四季度统计数量"}
    For i As Integer = 0 To cs.Length - 1
        Dim filter As String = ""
        Dim d As Date
        d = new Date(2016, 3*i+1, 1)      '这是提取日期的年,这是2016年的,如果是2017年,则2016改成2017,以此类推.
        filter = " and 单据日期 >= #" & d & "# and 单据日期 < #" & d.AddMonths(3) & "#"
        Dim quarin1 As Double = dt.Compute("sum(数量)", "高开财务编号 = '" & dr("财务编号") & "'" & filter)
        Dim quarin2 As Double = dt.Compute("sum(数量)", "返利财务编号 = '" & dr("财务编号") & "'" & filter)
        Dim quarout1 As Double = dt.Compute("sum(数量)", "高开财务编号 = '" & dr("财务编号") & "' and 高开结清 = true" & filter)
        Dim quarout2 As Double = dt.Compute("sum(数量)", "返利财务编号 = '" & dr("财务编号") & "' and 返利结清 = true" & filter)
        dr(cs(i)) = quarin1 + quarin2 - quarout1 - quarout2
    Next
Next

 回到顶部