易表在线答疑技术与交流用户社区 → [求助]光标指向问题或在录入窗体上修改而后在表中被修改的地方显红色


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

主题:[求助]光标指向问题或在录入窗体上修改而后在表中被修改的地方显红色

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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/13 9:19:00 [显示全部帖子]

这个我是没有好办法!
你可以把你的最终要达到的目的说一下,看看还有没有其他解决思路...

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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/14 13:55:00 [显示全部帖子]

供参考!
egd文件下载

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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/19 9:14:00 [显示全部帖子]

[这个贴子最后由lyang70在 2012/03/19 09:17am 第 1 次编辑]

下面引用由楚风2012/03/16 09:56pm 发表的内容:
||||
里面的看不懂啊,@1或 @2表示什么意思呢?老师们给解释解释啊

这个主要是用于区别字符串而增加的特殊字符,简单点就是确保字符串的唯一性...

例如:[HH^@2]|
“HH”:就是指单元格的实际值;
“^@”:就是增加的特殊字符。
“2”:表示当前单元格所处的列位置。

仍然以这个例子说明:
1、在不增加特殊字符和列位置时:如果某个单元格修改前的值为“HH”(那值就为[HH])。我们要将其修改为“H”(那值就为[H])。这时如果用Substitute来替换,要替换的内容为[H],这样的话原来的[HH]就会全部替换。
2、在增加特殊字符和列位置时:如果某个单元格修改前的值为“HH”(那列表项目值就为[HH^@2])。我们要将其修改为[H](那列表项目值就为[H^@2])。这时如果用Substitute来替换,要替换的内容为[H^@2],这样的话原来的[HH^@2]就不会被替换。

——再设计过程中,我需要的是第二种效果,所以增加了特殊字符加列位置的方法来解决。这样同时对于修改过程中可能会将某个单元格的值清空或将某个空单元格增加值的修改都有效。


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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/19 9:57:00 [显示全部帖子]

下面引用由楚风2012/03/19 09:11am 发表的内容:
里面公式好多引号和空白的理不懂啊,请老师给解释一下啊》谢谢

至于引号和空格这是EVAL循环执行Substitute命令的语法参数,其完全以Substitute基本语法为基准,就目前楼主一时难以理解也正常。我认为楼主主要了解解决方案最关键。

解决思路为:

1、要素:定时器和变化值。

2、解决问题的思路。
2.1、增加“原始”、“修改”、“值1”、“值2”列。
2.1.1、原始列:即修改前的列的值。
2.1.2、修改列:即修改后的列的值,详见刷新公式(为何这样设置见楼上的解释)。
2.1.3、值1列:就是通过原始列值和修改列值对比,如果不同,就取原始列和修改列的不同值,反之。详见刷新公式(就是采用EVAL和SubstituteSubstitute命令)。
2.1.4、值2列:用取值1列(修改值)中的列位置参数。如果有修改,值2不为空,反之。详见刷新公式。

2.2、增加一个定时器,详见公式,目的在于检测有无修改操作(这个在录入窗口中,当然,也可以设为表预处理公式,这样的话无论在窗口或主表中修改都有效)。如果值2列大于0,就设修改单元格的背景为红色(选择背景色是考虑到如果将有值单元格替换成无值单元格的修改无法通过字体色体现),然后将原始列的值改回与修改列值相同并重算当前行。


——这样应该清楚些了吧?


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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/19 11:05:00 [显示全部帖子]

可以直接套用呀!增加四个列,列名对上号就可以了,不用去管引号与空格...

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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/19 13:26:00 [显示全部帖子]

不明白你的控制要如何做或如何控制...

如果要确保一旦修改就检测到并报告我只能通过辅助列加定时器来实现,没有其他好办法。


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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/19 15:35:00 [显示全部帖子]

[这个贴子最后由lyang70在 2012/03/19 03:55pm 第 1 次编辑]

那就用EvalFor重算指定列呗!

但我不明白这又与你所谓的控制有什么区别?我理解的控制无非是要不要保留修改,如果是这样,你自己也可以将定时器公式修改为MsgBox提示是否保留修改这种形式呀?!

egd文件下载


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


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2012/3/22 11:11:00 [显示全部帖子]

[这个贴子最后由lyang70在 2012/03/22 01:07pm 第 1 次编辑]

下面引用由楚风2012/03/21 05:12pm 发表的内容:
谢谢了,我只不过想学一题多解的方法。因为值1的刷新公式太复杂,要是用公式SetColFormula(Grid,Col,Formula)来放到按钮上不知怎样加引号,只是想你给加一下引号,我想学。

SetColformula和值1列公式结合?
有何意义,我是看不懂...


我把公式分解/精简一下,你自己用点心思再琢磨一下吧!egd文件下载


 回到顶部