易表在线答疑技术与交流精华分享 → 鱼与熊掌和SetCellText函数(ylm原创)


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

主题:鱼与熊掌和SetCellText函数(ylm原创)

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


加好友 发短信
等级:天使 帖子:178 积分:0 威望:0 精华:0 注册:2006/8/11 11:09:00
鱼与熊掌和SetCellText函数(ylm原创)  发帖心情 Post By:2006/8/16 19:07:00 [只看该作者]

[操作技巧]鱼与熊掌和SetCellText函数
   
   很多时候,贪心的我们,常常鱼与熊掌想统统吃下,我们用易表也不例外, 既想手工改动,同时又想随着另一列的变化而变化,其实全盘统吃还是有可能的,大家不妨看看:

egd文件下载
在这个附件中, 就在第二列实现了:既可以手工改动,同时又可以随着第一列的变化而变化。
呵呵,如果你有点心动的话,打开易表文件,马上与我一起行动吧!

一,常规想法
      平常,要想数据来源于某列,同时有要可以手工修改,我们常常会在刷新公式中设置如下公式:If([第二列] > "",[第二列],[第一列]),这个公式意思是当第二列有数据时,按第二列数据不变(也就是你修改什么是什么),反之,则刷新为第一列数据。这样设置,带来一个问题是,当第一列数据修改后,第二列因为已有数据而无法刷新。这就是,鱼与熊掌不可兼得也

二,换一个想路
    我们知道,要想让系统知道,第一列是否已修改,必须有个参照数据进行比较才行,也就是得增加一列辅助列,(也许你一听要加一列就觉得烦,其实比起能吃到熊掌来说,这可是小儿科毛毛雨啦)通过表设计,加一列,取名为:A 吧。在A列操作公式中写入:

SetCellText(GridName,Row,"A",[第一列])
     意思是在当前表,当前行,A列中写入第一列数据。
     这样一来,当我们一旦修改了第一列数据,A列就会记录一下第一列数据。

三,一起来吃鱼与熊掌
     现在,只要我们在第一列的操作公式中写入:

IF([第一列] <> [A],SetCellText(GridName,Row,"第二列",[第一列]), True )
    公式意思我想你也已明白了吧。(什么,不明白?!好吧,这个公式就是说,当第一列数据不等于A列时,写入当前表当前行第二列为第一列数据。否则就是按兵不动。)
    好了,为了好看些,选中A列,隐藏它吧,现在,你可以坐下来(噢,你一直是坐着的,很少有人站着用易表吧,呵呵!),慢慢品尝鲜美鱼与熊掌了。


 回到顶部