Foxtable(狐表)用户栏目专家坐堂 → 生记录的问题


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

主题:生记录的问题

帅哥,在线噢!
lgz518
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1306 积分:8894 威望:0 精华:0 注册:2019/6/13 9:57:00
生记录的问题  发帖心情 Post By:2025/1/3 14:56:00 [只看该作者]

如何根据表B的字段的天数和开始日期,级别为A的数据生成记录,如果生成记录的日期是表A的日期的星期六,星期日,或节假不为空时,跳过,向下日期生成日期?
如下图:

图片点击可在新窗口打开查看此主题相关图片如下:生成记录.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:狐神 帖子:4791 积分:34785 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2025/1/3 15:08:00 [只看该作者]

这玩艺儿不难,但得上示例文件

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


加好友 发短信
等级:超级版主 帖子:111651 积分:568379 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/3 15:31:00 [只看该作者]

遍历+查询

dim d1 as date = #12/30/2024#
dim cnt as integer = 5
dim dr as datarow
do while cnt > 0
dr = datatables("表A").find("日期=#" & d1 & "# and (星期 in ('六','日') or 节假 is not null)")
if dr is nothing then
output.show(d1)
cnt -= 1
end if
d1 = d1.adddays(1)
loop

 回到顶部
帅哥,在线噢!
lgz518
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1306 积分:8894 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/6 9:03:00 [只看该作者]

如何实现根据表B和表A的数据和条件生成表C的记录?步骤如下:    
1.在表B中将项目相同和级别的数据进行合并;              
2.将表B按条件合并后的数据,根据状态一和状态二均为1时,生成表C的记录;      
3.生成表C记录时,生成开始日期如果是表A的中星期六,星期日,节假,要跳过,顺延下个日期?
注:1.表B中灰色的记录是状态一和状态二均不是1时,不生成表C的记录;          
2.表B中线蓝与绿色的虽然项目、状态一和状态二相同,但级别不同,需根据条件独立生成表C的记录。  


[此贴子已经被作者于2025/1/6 15:40:17编辑过]

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


加好友 发短信
等级:超级版主 帖子:111651 积分:568379 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/6 9:43:00 [只看该作者]

先筛选状态一和状态二均为1的数据,然后遍历筛选后的数据,查询的用法参考3楼

 回到顶部
帅哥,在线噢!
lgz518
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1306 积分:8894 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/6 10:38:00 [只看该作者]

少一个很关键同类项目合并,再生成记录,

具体代码如何实现?

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


加好友 发短信
等级:超级版主 帖子:111651 积分:568379 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/6 10:53:00 [只看该作者]


 回到顶部
帅哥,在线噢!
lgz518
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1306 积分:8894 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/8 9:49:00 [只看该作者]

代码一
Dim b As New GroupTableBuilder("统计表1", DataTables("表B"))
b.Groups.AddDef("项目ID") '
b.Groups.AddDef("项目") '
'b.Groups.AddDef("天数") '
b.Totals.AddDef("计划运动量") '
Tables("窗口1_Table4").DataSource = b.BuildDataSource() '

代码二
Dim d1 As Date = #12/30/2024#
Dim cnt As Integer = 5
Dim dr As DataRow
Dim nr As Row
For Each r As Row In Tables("表B").rows
    Dim xs As Integer = r("天数")
    Dim d As Date = r("开始日期")
    Dim zs As Integer = r("计划运动量")
    Do While cnt > 0
'    Do While xs > 0 
        dr = DataTables("表A").find("日期=#" & d1 & "# and (星期 in ('星期六','星期日') or 节假 is not null)")
        If dr Is Nothing Then
            nr = Tables("表D").addnew


 
            nr("日期") = d1           
            cnt -= 1
        End If
        d1 = d1.adddays(1)
    Loop
Next 

问题1;代码二,为何不能遍历?Do While cnt > 0只能以表B的一条记录生成表D,Do While xs > 0 无限遍历表B的一条记录生成表D,正确遍历,如何实现?
问题2:如何实现代码一和代码二组合,实现合并后,生成记录?

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


加好友 发短信
等级:超级版主 帖子:111651 积分:568379 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/8 10:01:00 [只看该作者]

请上传实例说明

 回到顶部
帅哥,在线噢!
lgz518
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1306 积分:8894 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/1/8 10:14:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:填写已收运费 - 副本.zip


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