Foxtable(狐表)用户栏目专家坐堂 → 这问题怎么破?


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

主题:这问题怎么破?

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
这问题怎么破?  发帖心情 Post By:2014/5/29 10:27:00 [只看该作者]

结转需先加载当年数据,加载与结转代码有冲突,该怎么处理?

 


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

代码:

 

Dim y As Integer = Date.Today.Year

Dim m As Integer = Date.Today.Month

Dim dt1 As New Date(y, 1, 1)

Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天

Dim Filter As String

Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"

DataTables("外协加工").LoadFilter = Filter

DataTables("外协加工").Load 

 

Dim s As String = Format(Date.Today, "yyyyMM")

If s <> "" Then

    Tables("外协在制").StopRedraw()   '停止重绘

    DataTables("外协在制").DataRows.Clear

    Dim dt_in As List(Of DataRow)

    dt_in = DataTables("外协加工").Select("零件图号 is not null", "零件图号,零件名称,加工单位,月份")   '排序取出 入仓 全部数据

    Dim r As Row

    Dim sum_curr_count, sum_prev_count As Integer

   

    r = Tables("外协在制").AddNew

    r("零件图号") = dt_in(0)("零件图号")

    r("零件名称") = dt_in(0)("零件名称")

    r("加工单位") = dt_in(0)("加工单位")

    r("月份") = s

    If dt_in(0)("月份") < s Then   '之前月

        sum_prev_count = sum_prev_count + dt_in(0)("出库数量")

    Else If dt_in(0)("月份") = s Then   '本月份

        sum_curr_count = sum_curr_count + dt_in(0)("出库数量")

    End If

   

    For i As Integer = 1 To dt_in.Count - 1   '写入型号和规格,同时统计入仓数量和金额

        If dt_in(i)("零件图号") <> dt_in(i-1)("零件图号") OrElse dt_in(i)("零件名称") <> dt_in(i-1)("零件名称") Then   '不同产品

            r("本月出库") = sum_curr_count

            r("上月在制") = sum_prev_count   '暂存

           

            r = Tables("外协在制").AddNew   '插入新数据

            r("零件图号") = dt_in(i)("零件图号")

            r("零件名称") = dt_in(i)("零件名称")

            r("加工单位") = dt_in(i)("加工单位")

            r("月份") = s

            sum_curr_count = 0

            sum_prev_count = 0

           

        End If

       

        If dt_in(i)("月份") < s Then   '之前月

            sum_prev_count = sum_prev_count + dt_in(i)("出库数量")

           

        Else If dt_in(i)("月份") = s Then   '本月份

           

            sum_curr_count = sum_curr_count + dt_in(i)("出库数量")

        End If

    Next

   

    r("本月出库") = sum_curr_count

    r("上月在制") = sum_prev_count   '暂存

   

   

    For Each dr As DataRow In DataTables("外协在制").DataRows   '填充统计数据

        sum_curr_count = 0   '累计本月出仓数量

        sum_prev_count = 0   '累计之前出仓数量

        Dim drs_out As List(Of DataRow)

        Dim filter As String =  "零件图号 = '" & dr("零件图号") & "' And 零件名称 = '" & dr("零件名称") & "'"

        drs_out = DataTables("外协入库").Select(filter, "月份")   '排序取出 出仓 全部数据

        For Each dr_out As DataRow In drs_out

            If dr_out("月份") < s Then

                sum_prev_count = sum_prev_count + dr_out("入库数量")

            Else If dr_out("月份") = s Then

                sum_curr_count = sum_curr_count + dr_out("入库数量")

            Else

                Exit For

            End If

        Next

       

        Dim sum_in_prev_count As Integer = dr("上月在制")   '从表中取出暂存数据      

        dr("本月入库") = sum_curr_count

        dr("上月在制") = sum_in_prev_count - sum_prev_count

        dr("本月在制") = dr("上月在制") + dr("本月出库") - dr("本月入库")    

    Next

    Tables("外协在制").ResumeRedraw()

End If

 

Forms("外协在制").Open()

[此贴子已经被作者于2014-5-29 10:28:28编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/29 10:29:00 [只看该作者]

你外面已经声明过一次Filter了,你又重新声明一次,当然会报错冲突

你可以改为 Filter2  不能声明两个一样名称的变量.

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/5/29 10:42:00 [只看该作者]

以下是引用Bin在2014-5-29 10:29:00的发言:
你外面已经声明过一次Filter了,你又重新声明一次,当然会报错冲突

你可以改为 Filter2  不能声明两个一样名称的变量.

哦,好啦。


 回到顶部