以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  老大,有个问题实在搞不定,帮忙看看  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15358)

--  作者:唐尸三摆手
--  发布时间:2011/12/22 10:09:00
--  老大,有个问题实在搞不定,帮忙看看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:9.xls

要求在xls文件中,希望实现的结果是,前序的数量必须足够后序6天的数量时才会转下去,否则就不转,帮我看下思路怎么搞


--  作者:狐狸爸爸
--  发布时间:2011/12/22 10:22:00
--  
看起来有点复杂,我抽空帮你看看吧。
--  作者:don
--  发布时间:2011/12/22 17:14:00
--  
俺也來截糊:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


這裡修正一下:

.........

For i = 0 To na-1
    nr = dt1.AddNew
    nr("日期") = dr("日期").adddays(i+1)
    nr("顺序") = "B"
    nr("数量") = iif(i<na-1 ,nb,n-p-i*nb)
Next

dt1.save

............
[此贴子已经被作者于2011-12-22 20:41:43编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/12/22 17:19:00
--  

图片点击可在新窗口打开查看


--  作者:gdlgh
--  发布时间:2011/12/22 20:58:00
--  
本想再截老总的糊的,dom兄上家先手占糊了,那我只能图片点击可在新窗口打开查看下次占上家吧!!哈。。。
呵。思路差不多相同!
真是好怀念已前易表那时光!!!

--  作者:狐狸爸爸
--  发布时间:2011/12/22 21:40:00
--  

呵呵,两位是顶级高手,欢迎截糊。

 

图片点击可在新窗口打开查看


--  作者:gdlgh
--  发布时间:2011/12/22 22:10:00
--  
顶级那个帽就不敢带了!高手就粘了少少边!!图片点击可在新窗口打开查看虚荣一下,嘿
其实多做些练习题是好事,帮人的同时也是在提高自己!!
可惜生活是现实的,为生活奔波无时间呀!业余爱好一下,呵。。。

--  作者:don
--  发布时间:2011/12/22 22:18:00
--  
還有個思路:想法合成SQL:

select  DISTINCT \'A\' as 顺序,41 as 12月_1, 41 as 12月_2,41 as 12月_3,  Null  as 1月_1,1000 as 合計  from{表A} UNION  select DISTINCT \'B\' as 顺序,Null as 12月_1, 51 as 12月_2,51 as 12月_3,15 as 1月_1,1000 as 合計  from{表A}
--  作者:gdlgh
--  发布时间:2011/12/22 22:41:00
--  
在狐表里执行SQL估计难实现!
需判断来生成数据,靠拼SQL字符串,那不是又回到易表时代了!不现实!
若在SQL Server里写函数应行的!!

--  作者:gdlgh
--  发布时间:2011/12/22 22:54:00
--  
呵。。交流下!刚做完才发现被截糊了!

Dim nr As DataRow
Dim tbA As DataTable=DataTables("表A")
Dim i,sum,yuInt As Integer
Dim dateInt As Date
DataTables("表A").DeleteFor("顺序 = \'B\'")
Dim drs As New List(of DataRow)
drs = tbA.Select("[顺序]=\'A\'","日期")
For Each r As DataRow In drs
    sum += r("数量")
    If sum>=51*6 Then
        yuInt +=sum-51*6
        sum = 0
        dateInt = r("日期")
        For i=1 To 6
            nr = tbA.AddNew()
            nr("日期") = dateInt.adddays(i)
            nr("顺序") = "B"
            nr("数量") = 51
        Next
     End If
Next
For i=1 To (yuInt+sum)\\51
    dateInt = dateInt.adddays(i+6)
    nr = tbA.AddNew()
    nr("日期") = dateInt
    nr("顺序") = "B"
    nr("数量") = 51
Next
nr = tbA.AddNew()
nr("日期") = dateInt.adddays(1)
nr("顺序") = "B"
nr("数量") = (yuInt+sum) Mod 51

DataTables("表A").save
Dim b As New SQLCrossTableBuilder("统计表","表A")
b.HGroups.AddDef("顺序","顺序")
b.VGroups.AddDef("日期",DateGroupEnum.day)
b.Totals.AddDef("数量")
b.HorizontalTotal= True
b.Build
MainTable =Tables("统计表")
Tables("统计表").AutoSizeCols