以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 标记的问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83872) |
||||
-- 作者:zsslly -- 发布时间:2016/4/18 23:46:00 -- 标记的问题? 我们知道Foxtable有修改标记功能,能用红底白字标出那些 已经被修改过的单元格。 1、新增一个自定义样式,红底白字,假定样式名为"a" 2、将DrawCell事件代码设置为: If e.Row(e.Col.Name) <> e.Row.DataRow.OriginalValue(e.Col.Name) Then 在知识点上看到标记,也这样设了 现在的情况是,我的表中有一个“备注”列,而这个备注列我们通过一个新建窗口,且通过代码将内容添加进去的,如上这个标记的代码就不可以用了,应该怎么判断单元格中内容改变并标记呢? |
||||
-- 作者:zsslly -- 发布时间:2016/4/18 23:47:00 -- 常规的单元格,手动修改的情况下,这个标记的代码是可以实现标记的 |
||||
-- 作者:Hyphen -- 发布时间:2016/4/19 8:24:00 -- 测试没有问题,上例子 |
||||
-- 作者:大红袍 -- 发布时间:2016/4/19 9:28:00 -- 以下是引用zsslly在2016/4/18 23:47:00的发言:
常规的单元格,手动修改的情况下,这个标记的代码是可以实现标记的
那你可以在DataColChanged事件或者你控件的TextChanged、ValueChanged刷新一下表
Tables("表A").Refresh |
||||
-- 作者:zsslly -- 发布时间:2016/4/19 17:34:00 -- 老师请看,备注列用窗口输入就不可以
|
||||
-- 作者:大红袍 -- 发布时间:2016/4/19 17:39:00 -- 你都把表保存了,自然就不显示,去掉代码
If DataTables ("表A").HasChanges Then |
||||
-- 作者:zsslly -- 发布时间:2016/4/19 18:03:00 -- 谢谢老师 |
||||
-- 作者:zsslly -- 发布时间:2016/4/19 20:04:00 -- 老师,我发现这个代码和汇总样式的代码冲突了: 修改标记开始 If e.Row(e.Col.Name) <> e.Row.DataRow.OriginalValue(e.Col.Name) Then e.Style = "a" End If If e.Row.IsGroup = False Then If e.Row.Isnull ("操作性") = False Then If e.Row("操作性") = ("签单") Then e.style = "签单" Else If e.Row("操作性") = ("跑单") Then e.style = "跑单" End If End If If e. Col.name = "操作日期" Then If e.Row.Isnull("操作日期") = False Then If e.Row("操作日期") < = Date.Today Then e.style = "逾期" Else If e.Row("操作日期") < Date.Today.addDays(3) Then e.style = "近期" End If End If End If End If If e.Row.Isnull ("市场部") = False Then If e.Row("市场部") = ("未分派") Then e.style = "未分派" End If End If If e.Row.Isnull ("操作性") = False Then If e.Row("操作性") = ("预签") Then e.style = "预签" End If End If If e.Row.Isnull ("操作性") = False Then If e.Row("操作性") = ("预收设计") Then e.style = "预收设计" End If End If If e.Row.Isnull ("跟单状态") = False Then If e.Row("跟单状态") = ("转跟") Then e.style = "转跟" End If End If Else If e.Row.Level = 0 Then e.Style = "样式1" Else If e.Row.Level = 1 Then e.Style = "样式2" End If End If 求老师帮看看那里出错了?
|
||||
-- 作者:zsslly -- 发布时间:2016/4/19 20:05:00 -- 主要是样式这里,取消标记代码都可以,用这个代码后在汇总时,系统提示未引用到对象 |
||||
-- 作者:大红袍 -- 发布时间:2016/4/19 20:08:00 -- If e.Row.DataRow IsNot Nothing AndAlso e.Row.DataRow.OriginalValue(e.Col.Name).Gettype.Name <> "DBNull" AndAlso e.Row(e.Col.Name) <> e.Row.DataRow.OriginalValue(e.Col.Name) Then
e.Style = "a"
End If
[此贴子已经被作者于2016/4/19 20:07:59编辑过]
|