Foxtable(狐表)用户栏目专家坐堂 → 求根据参数生成表的代码


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

主题:求根据参数生成表的代码

帅哥哟,离线,有人找我吗?
唐尸三摆手
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
求根据参数生成表的代码  发帖心情 Post By: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能否生成介于两个日期参数之间的表(临时表也可)如上表。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/21 8:39:00 [只看该作者]

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

 

 


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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/5/21 8:59:00 [只看该作者]

老大,我说的不是这个意思,这个表是后来生成的,只是先给了两个日期,然后才生成的这个表,先不涉及到表中的数据,先说结构

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/21 9:02:00 [只看该作者]

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

 

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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("统计")

 


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By: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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/21 9:30:00 [只看该作者]

其实你思路完全正确啊


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/21 9:42:00 [只看该作者]

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

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/5/21 10:07:00 [只看该作者]

老大,瞒不过您的法眼,

 

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


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