Foxtable(狐表)用户栏目专家坐堂 → 物料需求统计


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

主题:物料需求统计

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/16 13:47:00 [只看该作者]

Syscmd.Project.ExportToExcel()

这个很好用,为什么不用。


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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2014/3/16 17:55:00 [只看该作者]

“材料库存”用数据表时使用如下代码可计算,现将“材料库存”用统计分组的方式生产临时表“统计表1”替代,代码如何该?谢谢!

 

cmd.C
cmd.CommandText = "Select '' As 材料编码,'' As 材料名称,'' As 三周需求M2,''As 四周需求M2,''As 三周后库存M2,''As 四周后库存M2"
e.Form.Controls("Table1").Table.DataSource = cmd.ExecuteReader()
e.Form.Controls("Table1").Table.DataTable.DataRows.Clear()
Dim Int As Integer = DataTables("工作周设置").DataRows(0)("工作周起始")
Dim weeknum As Integer = DatePart("ww" , Date.Today.AddDays(- Int))
cmd.CommandText = "Select * From {DemandTable}"  '这里获取所有数据,根据工作实际,只需提取必要的数据.
Dim dt1 As DataTable = cmd.ExecuteReader()
cmd.CommandText = "Select * From {BOMTable}"
Dim dt2 As DataTable = cmd.ExecuteReader()
cmd.CommandText = "Select * From {材料库存}"
Dim dt3 As DataTable = cmd.ExecuteReader()
Dim cpvals As List(Of String) = dt1.GetValues("StokvisPN","StokvisPN Is Not Null")
Dim ljvals As List(Of String) = dt2.GetValues("材料编码","材料编码 Is Not Null")
For Each ljval As String In ljvals
    Dim nr As Row = e.Form.Controls("Table1").Table.AddNew()
    nr("材料编码") = ljval
    Dim sum As Double = 0
    For Each cpval As String In cpvals
        Dim fdr As DataRow = dt2.Find("StokvisPN = '" & cpval & "' And 材料编码 = '" & ljval & "'")
        If fdr IsNot Nothing Then
            sum + = math.round(((dt1.Compute("Sum(W" & weeknum & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 1 & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 2 & ")","StokvisPN = '" & cpval & "'")) * (fdr("标准宽mm")*fdr("标准长M")/1000*(1+fdr("材料损耗率")/100)+fdr("调机损耗M")*fdr("标准宽mm")/1000/125000*1000 )*1.05),1)
        End If
               Next
              Dim sum1 As Double = 0
    For Each cpval As String In cpvals
        Dim fdr1 As DataRow = dt2.Find("StokvisPN = '" & cpval & "' And 材料编码 = '" & ljval & "'")
        If fdr1 IsNot Nothing Then
            sum1 + = math.round(((dt1.Compute("Sum(W" & weeknum & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 1 & ")","StokvisPN = '" & cpval & "'") + _
                        dt1.Compute("Sum(W" & weeknum + 2 & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 3 & ")","StokvisPN = '" & cpval & "'")) * (fdr1("标准宽mm")*fdr1("标准长M")/1000*(1+fdr1("材料损耗率")/100)+fdr1("调机损耗M")*fdr1("标准宽mm")/1000/125000*1000 )*1.05),1)
        End If
    Next
                nr("三周需求M2") = sum
        nr("四周需求M2") = sum1
    Dim kcdr As DataRow = dt3.Find("材料编码 = '" & ljval & "'")
    If kcdr IsNot Nothing Then
        nr("三周后库存M2") = math.round((kcdr("库存数量M2") - sum),1)
                 nr("四周后库存M2") = math.round((kcdr("库存数量M2") - sum1),1)
        nr("材料名称") = kcdr("物料名称")
    End If   
Next


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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2014/3/17 15:38:00 [只看该作者]

以下是引用tj-pacer在2014-3-16 17:55:00的发言:

“材料库存”用数据表时使用如下代码可计算,现将“材料库存”用统计分组的方式生产临时表“统计表1”替代,代码如何该?谢谢!

 

cmd.C
cmd.CommandText = "Select '' As 材料编码,'' As 材料名称,'' As 三周需求M2,''As 四周需求M2,''As 三周后库存M2,''As 四周后库存M2"
e.Form.Controls("Table1").Table.DataSource = cmd.ExecuteReader()
e.Form.Controls("Table1").Table.DataTable.DataRows.Clear()
Dim Int As Integer = DataTables("工作周设置").DataRows(0)("工作周起始")
Dim weeknum As Integer = DatePart("ww" , Date.Today.AddDays(- Int))
cmd.CommandText = "Select * From {DemandTable}"  '这里获取所有数据,根据工作实际,只需提取必要的数据.
Dim dt1 As DataTable = cmd.ExecuteReader()
cmd.CommandText = "Select * From {BOMTable}"
Dim dt2 As DataTable = cmd.ExecuteReader()
cmd.CommandText = "Select * From {材料库存}"
Dim dt3 As DataTable = cmd.ExecuteReader()
Dim cpvals As List(Of String) = dt1.GetValues("StokvisPN","StokvisPN Is Not Null")
Dim ljvals As List(Of String) = dt2.GetValues("材料编码","材料编码 Is Not Null")
For Each ljval As String In ljvals
    Dim nr As Row = e.Form.Controls("Table1").Table.AddNew()
    nr("材料编码") = ljval
    Dim sum As Double = 0
    For Each cpval As String In cpvals
        Dim fdr As DataRow = dt2.Find("StokvisPN = '" & cpval & "' And 材料编码 = '" & ljval & "'")
        If fdr IsNot Nothing Then
            sum + = math.round(((dt1.Compute("Sum(W" & weeknum & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 1 & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 2 & ")","StokvisPN = '" & cpval & "'")) * (fdr("标准宽mm")*fdr("标准长M")/1000*(1+fdr("材料损耗率")/100)+fdr("调机损耗M")*fdr("标准宽mm")/1000/125000*1000 )*1.05),1)
        End If
               Next
              Dim sum1 As Double = 0
    For Each cpval As String In cpvals
        Dim fdr1 As DataRow = dt2.Find("StokvisPN = '" & cpval & "' And 材料编码 = '" & ljval & "'")
        If fdr1 IsNot Nothing Then
            sum1 + = math.round(((dt1.Compute("Sum(W" & weeknum & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 1 & ")","StokvisPN = '" & cpval & "'") + _
                        dt1.Compute("Sum(W" & weeknum + 2 & ")","StokvisPN = '" & cpval & "'") + _
            dt1.Compute("Sum(W" & weeknum + 3 & ")","StokvisPN = '" & cpval & "'")) * (fdr1("标准宽mm")*fdr1("标准长M")/1000*(1+fdr1("材料损耗率")/100)+fdr1("调机损耗M")*fdr1("标准宽mm")/1000/125000*1000 )*1.05),1)
        End If
    Next
                nr("三周需求M2") = sum
        nr("四周需求M2") = sum1
    Dim kcdr As DataRow = dt3.Find("材料编码 = '" & ljval & "'")
    If kcdr IsNot Nothing Then
        nr("三周后库存M2") = math.round((kcdr("库存数量M2") - sum),1)
                 nr("四周后库存M2") = math.round((kcdr("库存数量M2") - sum1),1)
        nr("材料名称") = kcdr("物料名称")
    End If   
Next

e.Form.Controls("Table1").Table.DataSource = cmd.ExecuteReader() 在窗体中的表如何输出Excel表呀?试了好多种方法都不行


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


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

e.Form.Controls("Table1").Table.SaveExcel("C:\123.xls")

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/17 15:44:00 [只看该作者]

Syscmd.Project.ExportToExcel()

 

这个还是管用的啊。


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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2014/3/17 16:58:00 [只看该作者]

以下是引用Bin在2014-3-17 15:40:00的发言:
e.Form.Controls("Table1").Table.SaveExcel("C:\123.xls")

报错如下:

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.3.8.1
错误所在事件:窗口,材料计划,Button1,Click
详细错误信息:
重载决策失败,因为没有可访问的“SaveExcel”接受此数目的参数


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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2014/3/17 16:59:00 [只看该作者]

以下是引用lsy在2014-3-17 15:44:00的发言:

Syscmd.Project.ExportToExcel()

 

这个还是管用的啊。

不行的,输出的是主表的,窗体的表没有主表呀


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


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

http://www.foxtable.com/help/topics/0559.htm
e.Form.Controls("Table1").Table.SaveExcel("C:\123.xls","表名")

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/17 17:22:00 [只看该作者]

以下是引用tj-pacer在2014-3-17 16:59:00的发言:

不行的,输出的是主表的,窗体的表没有主表呀

是当前表,不是主表,导出之前,点到哪个表,哪个表就是当前表,就导出哪个表。

 

不能只是看看,试试是检验对错的不二标准。

[此贴子已经被作者于2014-3-17 17:27:21编辑过]

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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2014/3/22 8:22:00 [只看该作者]

以下是引用lsy在2014-3-14 10:20:00的发言:
 下载信息  [文件大小:1.0 MB  下载次数:5]
图片点击可在新窗口打开查看点击浏览该文件:需求管理.rar

Hi Isy,

 

窗体中的表是临时表吧?如果在表格中就方便了?代码怎么改呀?


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