以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 自动取数 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=149339) |
-- 作者:nbsugu_z -- 发布时间:2020/4/29 12:35:00 -- 自动取数 表dk_lxb 有以下列 产品编号 (cpbm), 付息日期(fxrq), 起息日期(qxrq),止息日期(zxrq), 标志(bz) 当窗口按钮新增一行时,(bz)是在窗口新增行时默认填充的。要求当bz=1时执行如下代码 过程是:先查找不同产品编号中的上次zxrq最大的日期,找出后: 新增行的qxrq=找出的zxrq加一天 (上次计算日止第二天重新开始计息开始日期) 新增行的zxrq=找出的zxrq加一月 (上次计算日止加一个月结算期) 新增行的fxrq=zxrq加一天 (利息计算止日第二天付款) 问题:我在当窗口按钮新增一行时,这三个日期出不来,是什么原因? \'以下增加一个月自动填写所有日期 Select Case e.DataCol.name Case "cpbm","bz" If e.DataRow.IsNull("cpbm") OrElse e.DataRow.IsNull("bz") Then e.DataRow("fxrq") = Nothing e.DataRow("qxrq") = Nothing e.DataRow("zxrq") = Nothing Else Dim ddr0 As DataRow Dim max As Date max = e.DataTable.Compute("Max(zxrq)") ddr0 = DataTables("dk_lxb").Find("[cpbm] = \'" & e.DataRow("cpbm") & "\' And [zxrq] = #" & Max & "#") If e.DataRow("bz")=1 Then Dim dd4 As Date = e.DataRow("zxrq") \'止息日期 Dim dd1 As Date = dd4.AddDays(1) \'起息日期 Dim dd2 As Date = dd4.addmonths(1) \'第二次止息日期 Dim dd3 As Date = dd2.AddDays(1) \'付息日期 If ddr0 IsNot Nothing e.DataRow("fxrq") = ddr0("dd3") e.DataRow("qxrq") = ddr0("dd1") e.DataRow("zxrq") = ddr0("dd2") End If End If End If End Select |
-- 作者:有点蓝 -- 发布时间:2020/4/29 13:59:00 -- …… Else If e.DataRow("bz")=1 Then Dim ddr0 As DataRow Dim max As Date max = e.DataTable.Compute("Max(zxrq)") ddr0 = DataTables("dk_lxb").Find("[cpbm] <> \'" & e.DataRow("cpbm") & "\'","zxrq desc") If ddr0 IsNot Nothing Dim dd4 As Date = ddr0("zxrq") \'止息日期 Dim dd1 As Date = dd4.AddDays(1) \'起息日期 Dim dd2 As Date = dd4.addmonths(1) \'第二次止息日期 Dim dd3 As Date = dd2.AddDays(1) \'付息日期 e.DataRow("fxrq") = dd3 e.DataRow("qxrq") = dd1 e.DataRow("zxrq") = dd2 End If End If ……
|
-- 作者:nbsugu_z -- 发布时间:2020/4/29 14:22:00 -- 表dk_lxb 有以下列 产品编号 (cpbm), 付息日期(fxrq), 起息日期(qxrq),止息日期(zxrq), 标志(bz) 当窗口按钮新增一行时,(bz)是在窗口新增行时默认填充的。要求当bz=1时执行如下代码 过程是:先查找不同产品编号中的上次zxrq最大的日期,找出后: 新增行的qxrq=找出的zxrq加一天 (上次计算日止第二天重新开始计息开始日期) 新增行的zxrq=找出的zxrq加一月 (上次计算日止加一个月结算期) 新增行的fxrq=zxrq加一天 (利息计算止日第二天付款) 问题:我在当窗口按钮新增一行时,这三个日期出不来,是什么原因? \'以下增加一个月自动填写所有日期 Select Case e.DataCol.name Case "cpbm","bz" If e.DataRow.IsNull("cpbm") OrElse e.DataRow.IsNull("bz") Then e.DataRow("fxrq") = Nothing e.DataRow("qxrq") = Nothing e.DataRow("zxrq") = Nothing Else If e.DataRow("bz")= "1" Then Dim ddr0 As DataRow Dim max As Date max = e.DataTable.Compute("Max(zxrq)") ddr0 = DataTables("dk_lxb").Find("[cpbm] <> \'" & e.DataRow("cpbm") & "\'","zxrq desc") If ddr0 IsNot Nothing Dim dd4 As Date = ddr0("zxrq") \'止息日期 Dim dd1 As Date = dd4.AddDays(1) \'起息日期 Dim dd2 As Date = dd4.addmonths(1) \'第二次止息日期 Dim dd3 As Date = dd2.AddDays(1) \'付息日期 e.DataRow("fxrq") = dd3 e.DataRow("qxrq") = dd1 e.DataRow("zxrq") = dd2 End If End If End If End Select 老师。出不来
[此贴子已经被作者于2020/4/29 14:23:34编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/4/29 14:45:00 -- 数据有没有加载?做个例子发上来看看 |
-- 作者:nbsugu_z -- 发布时间:2020/4/29 15:12:00 -- ddr0 = DataTables("dk_lxb").Find("[cpbm] = \'" & e.DataRow("cpbm") & "\'","zxrq desc") 修改成等于=可以了 但是在重置数据时,所有日期年份都变成 0001了 0001-05-29而且日期输入下拉框都成了0001年了。电脑系统日期还是正确的 [此贴子已经被作者于2020/4/29 15:17:11编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/4/29 15:19:00 -- 不是说“过程是:先查找不同产品编号中的上次zxrq最大的日期”?所谓我才改为<> 应该不是代码的问题,数据问题,是不是一些止息日期本来就没有年份,或者是空值?
|