以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求根据参数生成表的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=7157)

--  作者:唐尸三摆手
--  发布时间:2010/5/21 8:36:00
--  求根据参数生成表的代码

   分类码

  分类名称 

  2010-05-01    2010-05-02   2010-05-03     2010-05-04   2010-05-05     2010-05-06  2010-05-07      2010-05-08   2010-05-09    2010-05-10     合计 
                                                   
                                                   
                                                   
                                                   

 

 

 

假定给了两个时间参数:2010-05-01和2010-05-10能否生成介于两个日期参数之间的表(临时表也可)如上表。


--  作者:狐狸爸爸
--  发布时间:2010/5/21 8:39:00
--  

逐个列判断,将日期格式的标题转换为日期,如果日期不在指定的两个日期之间的,就对应在临时表中增加一列,最后统一填入数据。

 

 


--  作者:唐尸三摆手
--  发布时间:2010/5/21 8:59:00
--  
老大,我说的不是这个意思,这个表是后来生成的,只是先给了两个日期,然后才生成的这个表,先不涉及到表中的数据,先说结构
--  作者:狐狸爸爸
--  发布时间:2010/5/21 9:02:00
--  

那就更简单,你自己写下吧,搞不定再说

 

 


--  作者:狐狸爸爸
--  发布时间:2010/5/21 9:13:00
--  

我已经写好了:

 

 Dim dtb As New DataTableBuilder("统计")
 Dim
StartDate As Date = #5/1/2010# \'起始日期
 Dim
Count As Integer = (#5/10/2010# - StartDate).TotalDays \'计算间隔天数
 dtb.AddDef(
"分类码", GetType(String), 12)
 dtb.AddDef(
"分类名称", GetType(String), 24)
 For
i As Integer = 0 To Count \'增加日期列
     dtb.AddDef(
"dc" & i, GetType(Double), "", Format(StartDate.AddDays(i),"yyyy-MM-dd"))
 Next

 dtb.AddDef(
"合计", GetType(Double))
 dtb.Build()

 MainTable
= Tables("统计")

 


--  作者:唐尸三摆手
--  发布时间:2010/5/21 9:27:00
--  

我还走弯路考虑问题呢

 

 

Dim da As date
dim db as date
dim dc as date
dim s as integer
Dim i As Integer
da=Date.Today
db=#06/10/2010#
s=DateDiff("d",da,db)
For i = 0 to s
    dc=DateAdd("d",i,da)
    Output.Show(dc)
Next


--  作者:狐狸爸爸
--  发布时间:2010/5/21 9:30:00
--  

其实你思路完全正确啊


--  作者:唐尸三摆手
--  发布时间:2010/5/21 9:35:00
--  

老大,我原来的窗口表是这样写的按钮代码:

    Dim b As New SQLCrossTableBuilder("a","aec00000")
    b.c  \' 注:此处是数据源erp不知何故不能保存

    b.AddTable("aec00000","itemcode","aaa00000","code") \'添加统计表
    b.AddTable("aec00000","id_contract","eba00000","id_contract") \'添加统计表
    b.AddTable("aaa00000","classcode","aam00000","classcode") \'添加统计 表
    b.AddCols("aam00000","classcode") \'指定列来源
    b.AddCols("aam00000","classname") \'指定列来源
    b.AddCols("eba00000","sellunit") \'指定列来源
    b.HGroups.AddDef("classcode","分类码") \'添加水平分组
    b.HGroups.AddDef("classname","分类名称") \'添加水平分组
    b.VGroups.AddDef("requiredate",DateGroupEnum.none) \'添加垂直分组
    b.Totals.AddDef("plannum") \'添加数量列用于统计
    b.VerticalTotal=true
    b.Build(true) \'生成统计表

 

 

 

现在根据这两天您的启发,数据表越发规范、经典了

按照您提供的代码,如何将数据写入生成的表中呢,您能指点一二吗

[此贴子已经被作者于2010-5-21 9:37:20编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/5/21 9:42:00
--  

1、写数据的问题,你可以解决的,不要偷懒,搞不定就看看帮助中的“数据填充器”和“手工编码填充数据”这两节。

2、统计表可以自定义标题的,为啥要建立一个临时表,将统计表的数据写入临时表,我不明白。

 


--  作者:唐尸三摆手
--  发布时间:2010/5/21 10:07:00
--  

老大,瞒不过您的法眼,

 

我是想设置一段代码,然后在窗口的数据表中展现出结果来的,