以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]“投保日期”上366天,如何写代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1859) |
||||
-- 作者:yndlyh -- 发布时间:2009/2/18 14:47:00 -- [求助]“投保日期”上366天,如何写代码 日期计算问题.有一列“投保日期”是由用户输入的,现在要加上366天,得到另一日期列“保险到期”。请予指教。 [此贴子已经被smileboy于2009-2-20 11:51:32编辑过]
|
||||
-- 作者:don -- 发布时间:2009/2/18 15:06:00 -- 建议先认真看N次帮助文件,特别是:『开发篇』---『事件编程』---『事件实例』----『使用事件进行计算』部分 将该表的DataColChanged事件设置为: If e.DataCol.Name = "投保日期" Then Dim dr As DataRow = e.DataRow IF dr.IsNull("投保日期") Then dr("保险到期") = Nothing Else dr("保险到期") = dr("投保日期").AddDays(366) End If End If [此贴子已经被作者于2009-2-18 15:39:38编辑过]
|
||||
-- 作者:yndlyh -- 发布时间:2009/2/18 16:17:00 -- [求助]谢谢 一切正常 ,谢谢无私帮助,今后一定努力学习。 |
||||
-- 作者:yndlyh -- 发布时间:2009/2/19 20:10:00 -- 再次向老师求助 十再不好意思,再次向老师求助:我的数据库有一列日期型数据,字段名为:“二维到期”,现在我要知道这个字段的值(日期)离系统日期有几天(在易表里可以用“Number([行车证副到期])-Number(Today())”的刷新公式获得)。我想增设列“二维日龄”来解决这个问题。也认真看了FoxTable官方论坛关于“日龄”的例子,但始终不得要领。一句话,请老师指教:如何从系统日期和“二维到期”中获得“二维日龄”的数据。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/2/19 21:05:00 -- Dim dr As DataRow = e.DataRow [此贴子已经被作者于2009-2-19 21:10:55编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间:2009/2/19 21:28:00 -- 楼主为什么不dr("投保日期").Addyears(1) ? 那一年要不是366天呢? 楼主的要求应该改为一年吧? [此贴子已经被作者于2009-2-19 21:29:05编辑过]
|
||||
-- 作者:yndlyh -- 发布时间:2009/2/19 22:06:00 -- [求助]收到。十分感谢 收到。十分感谢。但是—— 1) Dim dr As DataRow = e.DataRow If e.DataCol.Name = "投保日期" Then IF dr.IsNull("投保日期") Then dr("保险到期") = Nothing Else dr("保险到期") = dr("投保日期").AddDays(366) End If 中的第二语句“If e.DataCol.Name = "投保日期" Then”编译错误。不知是何原因? 2) ElseIf e.DataCol.Name = "二维到期" Then IF dr.IsNull("二维到期") Then dr("二维日龄") = Nothing Else Dim Val As Date = dr("二维到期") dr("二维日龄") = (Date.Today -Val).Days End If End If 中的第一语句“ElseIf e.DataCol.Name = "二维到期" Then”编译错误。不知是何原因? 3) 第一次给的—— If e.DataCol.Name = "投保日期" Then Dim dr As DataRow = e.DataRow IF dr.IsNull("投保日期") Then dr("保险到期") = Nothing Else dr("保险到期") = dr("投保日期").AddDays(366) End If End If 一开始并没有错,但是,今天我在加载“\'如果刚刚输入的不是"班线类别"或"经营线路"列 If e.DataCol.Name <> "班线类别" AndAlso e.DataCol.Name <> "经营线路" Then Return \'则返回 End If \'如果"班线类别"或"经营线路"列的内容为空 If e.DataRow.IsNull("班线类别") OrElse e.DataRow.IsNull("经营线路") Then \'则清除"途经地"和"经营里程""高速公路里程"三列的内容 e.DataRow("途经地") = Nothing e.DataRow("经营里程") = Nothing e.DataRow("高速公路里程") = Nothing Return \'然后返回 End If Dim dr As DataRow \'在"经营线路表"查找所输入"班线类别""经营线路"的行 dr = DataTables("经营线路表").Find("[班线类别] = \'" & e.DataRow("班线类别") & "\' And [经营线路] = \'" & e.DataRow("经营线路") & "\'") If dr IsNot Nothing Then \'如果找到 \'将找到行的"途经地""经营里程""高速公路里程"内容填入到正在输入的行中. e.DataRow("途经地") = dr("途经地") \' e.DataRow("经营里程") = dr("经营里程") e.DataRow("高速公路里程") = dr("高速公路里程") End If”语句时(全部语句无错误),第二语句“Dim dr As DataRow = e.DataRow”编译错误。无法理解。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/2/19 22:13:00 -- IF和End IF,这两个要成双成对的 不同的If 和End IF之间,可以定义相同名称的变量。 但是If 和End If之外和之内,不能定义相同名称的变量。 最好传上文件,告诉在哪个表的哪个事件设置了什么代码通不过,否则我们也只能稀里糊涂地猜想。 [此贴子已经被作者于2009-2-19 22:15:45编辑过]
|
||||
-- 作者:yndlyh -- 发布时间:2009/2/19 23:00:00 -- [求助]谢谢!现在我把文件传上
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/2/19 23:11:00 --
|