以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 列属性如何智能变换? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34810) |
-- 作者:yangsion -- 发布时间:2013/6/16 15:36:00 -- 列属性如何智能变换? 请教大家一下。我有个表"单车水标目录”,里面有两列,一个为“完成时间”,另外一个为“样品进度”,可否在样品进度这列设置属性,当今日到“完成时间”指定的时间的时候,样品进度不是“已完成”,自动转为“异常”,请问如何编码 [此贴子已经被作者于2013-6-16 15:44:26编辑过]
|
-- 作者:y2287958 -- 发布时间:2013/6/16 16:11:00 -- 一、DataColChanged中设置一下事件 二、打开项目或当前表时重置一下完成日期列即可
|
-- 作者:gsnake -- 发布时间:2013/6/16 16:16:00 -- 这个 “已完成”是手工输入的! 那就判断 样品进度 不是 已完成 且 date=完成日期 样品进度=异常 |
-- 作者:yangsion -- 发布时间:2013/6/16 16:44:00 -- 差不多就是这个意思,但是我不会编码啊,请教一下,谢谢 |
-- 作者:有点甜 -- 发布时间:2013/6/16 20:50:00 -- 这个用代码,设置在DAtaColChanged事件:
If e.DataCol.Name = "完成时间" Then If e.DataRow.IsNull("完成时间") = False Then e.Datarow("样品进度") = “已完成” End If End If |
-- 作者:yangsion -- 发布时间:2013/6/17 0:56:00 -- 试了不行哦 |
-- 作者:Bin -- 发布时间:2013/6/17 8:56:00 -- If e.DataCol.Name = "完成时间" Then If e.DataRow.IsNull("完成时间") = False Then if e.DataRow("完成时间")>=#06/16/2013# then e.Datarow("样品进度") = “异常” \'注意如果你用的是数据字典列表项目之类的 应该赋值为取值列 end if End If End If 试试看 不行就上个例子,这种简单的问题怎么会不行.
|
-- 作者:blackzhu -- 发布时间:2013/6/17 10:43:00 -- 不要这样 如果这样 还需要手工输入,在项目事件(AfterOpenProject 项目事件)里面加入代码: For Each dr As DataRow In DataTables("样品表").DataRows If dr.IsNull("完成日期")=False And dr("完成日期")> Date.today Then dr("样品进度")="异常" End If Next 这样每次打开系统会自动修改样品进度! [此贴子已经被作者于2013-6-17 10:45:27编辑过]
|
-- 作者:yangsion -- 发布时间:2013/6/17 13:14:00 -- For Each dr As DataRow In DataTables("单车水标目录").DataRows If dr("完成日期")= Date.Today And dr("样品进度")="已完成"=False Then dr("样品进度")="异常" End If Next 谢谢各位,参考各位的然后我改动了一下,现在逻辑是正确的了。本人是做技术管理的,完全不懂编程。有你们的指引,我想我会走的更远 |
-- 作者:狐狸爸爸 -- 发布时间:2013/6/17 14:20:00 -- 按道理不需要这样,5楼的代码是肯定可以的,不过这个代码列名是“完成时间”,你的列名是“完成日期”,你改一下:
If e.DataCol.Name = "完成日期" Then If e.DataRow.IsNull("完成日期") = False Then e.Datarow("样品进度") = “已完成” End If End If
你设置好代码后,记得重置一下列,这样原来已经输入的数据才会有效: http://www.foxtable.com/help/topics/1469.htm
|