Foxtable(狐表)用户栏目专家坐堂 → 低手求助


  共有3839人关注过本帖平板打印复制链接

主题:低手求助

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
低手求助  发帖心情 Post By:2013/11/22 11:39:00 [只看该作者]

参考学习如下帖子:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=22963

代码很多看不懂,不过估摸着套用也通过了.

现希望月报表增加月份列,每月结算时上月的数据保留.

低手现在做不出,希望高手相助.

 

Dim st As Date = Date.Now   '用于计算时间

 

Dim s As String = e.Form.Controls("月份").Value

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)("零件名称")

    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)("零件名称")

 

            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   '暂存

   

    MessageBox.Show("复制型号和规格耗时: " & (Date.Now - st).TotalSeconds & "秒")

    st = Date.Now   '用于计算时间

   

    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

 

MessageBox.Show("统计和写入耗时: " & (Date.Now - st).TotalSeconds & "秒")


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