Foxtable(狐表)用户栏目专家坐堂 → 列属性如何智能变换?


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

主题:列属性如何智能变换?

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


加好友 发短信
等级:幼狐 帖子:114 积分:1628 威望:0 精华:0 注册:2013/6/11 19:13:00
列属性如何智能变换?  发帖心情 Post By:2013/6/16 15:36:00 [只看该作者]

请教大家一下。我有个表"单车水标目录”,里面有两列,一个为“完成时间”,另外一个为“样品进度”,可否在样品进度这列设置属性,当今日到“完成时间”指定的时间的时候,样品进度不是“已完成”,自动转为“异常”,请问如何编码
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2013-6-16 15:44:26编辑过]

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


加好友 发短信
等级:狐神 帖子:4773 积分:34673 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2013/6/16 16:11:00 [只看该作者]

一、DataColChanged中设置一下事件
二、打开项目或当前表时重置一下完成日期列即可

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


加好友 发短信
等级:三尾狐 帖子:682 积分:5263 威望:0 精华:0 注册:2012/6/6 14:37:00
  发帖心情 Post By:2013/6/16 16:16:00 [只看该作者]

这个 “已完成”是手工输入的!

那就判断 样品进度 不是 已完成 且 date=完成日期  样品进度=异常  

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


加好友 发短信
等级:幼狐 帖子:114 积分:1628 威望:0 精华:0 注册:2013/6/11 19:13:00
  发帖心情 Post By:2013/6/16 16:44:00 [只看该作者]

差不多就是这个意思,但是我不会编码啊,请教一下,谢谢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1628 威望:0 精华:0 注册:2013/6/11 19:13:00
  发帖心情 Post By:2013/6/17 0:56:00 [只看该作者]

试了不行哦


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:114 积分:1628 威望:0 精华:0 注册:2013/6/11 19:13:00
  发帖心情 Post By: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

     谢谢各位,参考各位的然后我改动了一下,现在逻辑是正确的了。本人是做技术管理的,完全不懂编程。有你们的指引,我想我会走的更远


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

 


 回到顶部