Foxtable(狐表)用户栏目专家坐堂 → 声明日期


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

主题:声明日期

帅哥哟,离线,有人找我吗?
爱相随
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
声明日期  发帖心情 Post By:2021/11/12 11:49:00 [只看该作者]

老师,我在表A的DataColChanged事件中要做如下声明,请问该如何写代码,谢谢!!

Dim dt3 As Date = DataTables("pjmxb").DataRow("出piao日期")
Dim dt4 As Date = DataTables("pjmxb").DataRow("到期日期")


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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


Dim dt3 As Date = e.DataRow("出piao日期")

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2021/11/12 13:40:00 [只看该作者]

老师,问题是这样的:
表A是piao据汇总表,有”出piao银行“”出piao人““查询日期”“出piao金额““本日到期”“本周到期”“本月到期”“本季到期”“半年到期”“一年到期”等列
表B是出piao明细表,有”出piao银行“”出piao人“”piao据号“”出piao金额“”出piao日期“”到期日期“”收piao人“等列,因本表涉及两个以上的日期列,因此日期列的名称不可能是唯一的。
现在在表A汇总代码时出现以下问题:
1、在表A的出piao金额的查询日期对应表B的出piao日期;而“本日到期”“本周到期”“本月到期”“本季到期”“半年到期”“一年到期”等列对应表B的“到期日期”列。这个时间代码怎么对设置对应??
下面的代码有错误,请老师指导,谢谢!!
Dim y As Integer = Date.Today.Year
Dim q As Integer = (Date.Today.Month - 1) \ 3 + 1 '计算现在是第几个季度
Dim w As Integer = Date.Today.DayOfWeek '算出今天是星期几
Dim dt1 As Date = Date.Today.AddDays(-w) '获取本周的第一天
Dim dt2 As Date = Date.Today.AddDays(6 - w) '获取本周的最后一天

Dim dt5 As New Date(y, 3 * (q - 1) + 1, 1) '获取本季度的第一天
Dim dt6 As New Date(y, 3 * q, Date.DaysInMonth(y,3 * q)) '获取本季度的最后一天
Dim dt7 As Date = E.DataRow("RQ")

If e.DataCol.Name = "出piao人" Then  
    Dim filter1 As String = "出piao银行 = '" & e.DataRow("出piao银行")  & "' And 出piao人 = '" & e.DataRow("出piao人") & "'"
    e.DataRow("开piao金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [出piao日期] <=  '"e.DataRow("rq")"')/10000’这里的[出piao日期]是表B的列,而'"e.DataRow("rq")"'属于表A的
    e.DataRow("到期需兑付金额") = DataTables("pjmxb").Compute("sum(到期需兑付金额)",filter1 & "And [出piao日期] <= & e.DataRow("rq")  & "  )/10000 ’这里的[出piao日期]是表B的列,而'"e.DataRow("rq")"'属于表A的
    e.DataRow("已兑付金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [兑付] = true" ) /10000
    e.DataRow("本日到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] = & e.DataRow("rq")  & " )/10000’这里的[到期日期]是表B的列,而'"e.DataRow("rq")"'属于表A的
    e.DataRow("本周到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] <= & e.DataRow("rq")  & " )/10000’这里的[到期日期]是表B的列,而'"e.DataRow("rq")"'属于表A的

End If

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/12 13:48:00 [只看该作者]

e.DataRow("本日到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] = #" & Date.Today  &"# " )/10000’这里的[到期日期]是表B的列,而'"e.DataRow("rq")"'属于表A的
    e.DataRow("本周到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] >= #" & dt1  &"# and [到期日期] <= #" & dt2  &"#" )/10000’这里的[到期日期]是表B的列,而'"e.DataRow("rq")"'属于表A的

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2021/11/12 13:57:00 [只看该作者]

老师,表A的“本日到期”的本日是指表A输入的“查询日期”的日期,并不是系统的当日日当期,比如输入的是2021年10月25日,本日到期金额就是10月25日到期的金额,而不是电脑系统的今天2021年11月12日。
[此贴子已经被作者于2021/11/12 13:58:35编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/12 14:06:00 [只看该作者]

e.DataRow("本日到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] = #" & e.DataRow("查询日期")  &"# " )/10000’这里的[到期日期]是表B的列,而'"e.DataRow("rq")"'属于表A的

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2021/11/12 15:24:00 [只看该作者]

老师,如下代码倒可以取数了,但是在运行出现错误
Dim y As Integer = E.DataRow("RQ").Year
Dim m As Integer = E.DataRow("RQ").Month
Dim q As Integer = (E.DataRow("RQ").Month - 1) \ 3 + 1 '计算现在是第几个季度
Dim w As Integer = E.DataRow("RQ").DayOfWeek '算出今天是星期几
Dim dt1 As Date = E.DataRow("RQ").AddDays(-w) '获取本周的第一天
Dim dt2 As Date = E.DataRow("RQ").AddDays(6 - w) '获取本周的最后一天
Dim dt3 As New Date(y, m, 1)
Dim dt4 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
Dim dt5 As New Date(y, 3 * (q - 1) + 1, 1) '获取本季度的第一天
Dim dt6 As New Date(y, 3 * q, Date.DaysInMonth(y,3 * q)) '获取本季度的最后一天
Dim dt7 As Date = E.DataRow("RQ")
Dim dt8 As Date = E.DataRow("RQ").AddMonths(3) '加上3个月
Dim dt9 As Date = E.DataRow("RQ").AddMonths(6) '加上6个月
Dim dt10 As Date = E.DataRow("RQ").AddMonths(12) '加上12个月
Dim dt11 As Date = E.DataRow("RQ").AddMonths(24) '加上24个月
If e.DataCol.Name = "出piao人" Then  
    Dim filter1 As String = "出piao银行 = '" & e.DataRow("出piao银行")  & "' And 出piao人 = '" & e.DataRow("出piao人") & "'"
    e.DataRow("开piao金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [出piao日期] <= #" & dt7 & "# ")/10000
    e.DataRow("到期需兑付金额") = DataTables("pjmxb").Compute("sum(到期需兑付金额)",filter1 & "And [出piao日期] <= #" & dt7 & "#" )/10000 
    e.DataRow("已兑付金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [兑付] = true" ) /10000
    e.DataRow("本日到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] = #" & dt7 & "# ")/10000
    e.DataRow("本日以前") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] >= #" & dt1 & "#   And [到期日期] < #" & dt7  &"#" )/10000
    e.DataRow("本周内到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] >= #" & dt7 & "#   And [到期日期] <= #" & dt2  &"#" )/10000
    e.DataRow("本日以前1") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] >= #" & dt3 & "#   And [到期日期] < #" & dt7  &"#" )/10000
    e.DataRow("本月内到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] >= #" & dt7 & "#   And [到期日期] <= #" & dt4  &"#" )/10000
    e.DataRow("本日以前2") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] >= #" & dt5 & "#   And [到期日期] < #" & dt7  &"#" )/10000
    e.DataRow("本季度内到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] >= #" & dt7 & "#   And [到期日期] <= #" & dt6  &"#" )/10000
    e.DataRow("三个月内到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] > #" & dt7 & "#   And [到期日期] <= #" & dt8  &"#" )/10000
    e.DataRow("六个月内到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] > #" & dt7 & "#   And [到期日期] <= #" & dt9  &"#" )/10000
    e.DataRow("一年内到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] > #" & dt7 & "#   And [到期日期] <= #" & dt10  &"#" )/10000
    e.DataRow("二年内到期金额") = DataTables("pjmxb").Compute("sum(开piao金额)",filter1 & "And [到期日期] > #" & dt7 & "#   And [到期日期] <= #" & dt11  &"#" )/10000
End If
运行如下代码:
For Each r As Row In Tables("pjmxb").Rows
        DataTables("pjtzhzb").datarows.clear
        Dim f As New Filler
        f.SourceTable = DataTables("pjmxb") '指定数据来源
        f.SourceCols = "出piao行,出piao银行,出piao人" '指定数据来源列
        f.DataTable = DataTables("pjtzhzb") '指定数据接收表
        f.DataCols = "出piao行,出piao银行,出piao人" '指定数据接收列
        f.ExcludeExistValue = True
        f.Fill() '填充数据
Next
MainTable = Tables("pjtzhzb")
提示如下运行错误:
.NET Framework 版本:2.0.50727.8806
Foxtable 版本:2017.6.12.1
错误所在事件:表,pjtzhzb,DataColChanged
详细错误信息:
调用的目标发生了异常。
添加或减去的值产生无法表示的 DateTime。
参数名: value

[此贴子已经被作者于2021/11/12 15:38:08编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/12 15:42:00 [只看该作者]

调试看是哪一句代码出错,应该是季度的计算值出错了
[此贴子已经被作者于2021/11/12 15:42:56编辑过]

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2021/11/12 16:51:00 [只看该作者]

MessageBox.Show(0)

Dim y As Integer = E.DataRow("RQ").Year
Dim m As Integer = E.DataRow("RQ").Month
MessageBox.Show(1)
Dim q As Integer = (E.DataRow("RQ").Month - 1) \ 3 + 1 '计算现在是第几个季度
Dim w As Integer = E.DataRow("RQ").DayOfWeek '算出今天是星期几
Dim dt1 As Date = E.DataRow("RQ").AddDays(-w) '获取本周的第一天
Dim dt2 As Date = E.DataRow("RQ").AddDays(6 - w) '获取本周的最后一天
Dim dt3 As New Date(y, m, 1)
Dim dt4 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
MessageBox.Show(2)
Dim dt5 As New Date(y, 3 * (q - 1) + 1, 1) '获取本季度的第一天
Dim dt6 As New Date(y, 3 * q, Date.DaysInMonth(y,3 * q)) '获取本季度的最后一天
MessageBox.Show(3)

提示0和1代码有错,也不知道错在哪里了

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2021/11/12 16:59:00 [只看该作者]

MessageBox.Show(0)

Dim y As Integer = E.DataRow("RQ").Year
Dim m As Integer = E.DataRow("RQ").Month
MessageBox.Show(1)
Dim q As Integer = (E.DataRow("RQ").Month - 1) \ 3 + 1 '计算现在是第几个季度
Dim w As Integer = E.DataRow("RQ").DayOfWeek '算出今天是星期几
MessageBox.Show(2)
Dim dt1 As Date = E.DataRow("RQ").AddDays(-w) '获取本周的第一天
Dim dt2 As Date = E.DataRow("RQ").AddDays(6 - w) '获取本周的最后一天
MessageBox.Show(3)
Dim dt3 As New Date(y, m, 1)
Dim dt4 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天
Dim dt5 As New Date(y, 3 * (q - 1) + 1, 1) '获取本季度的第一天
Dim dt6 As New Date(y, 3 * q, Date.DaysInMonth(y,3 * q)) '获取本季度的最后一天

这样提示0、1、2有错。。。

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