以文本方式查看主题 - 易表在线答疑 (http://www.egrid2000.com/dvbbs/index.asp) -- 意见与建议 (http://www.egrid2000.com/dvbbs/list.asp?boardid=8) ---- [建议] 在粘贴、删除主表内某行数据时,自动排除(忽略)隐藏列 (http://www.egrid2000.com/dvbbs/dispbbs.asp?boardid=8&id=668) |
-- 作者:程兴刚 -- 发布时间:2007/9/10 23:11:00 -- [建议] 在粘贴、删除主表内某行数据时,自动排除(忽略)隐藏列 [这个贴子最后由程兴刚在 2007/09/10 11:26pm 第 1 次编辑] 隐藏列一般都针对非管理员用户(或者说非当前用户,或者使用易表二次开发程序的终端用户),这样的列数据一般都由公式生成,或一些操作公式写入,可是往往在这些非管理员的用户在向表内某一记录的多字段粘贴数据时,易表总是提示有隐藏的列不让粘贴或删除数据!这等于是告诉了当前用户:管理员或其他用户有隐藏列数据的秘密,况且还不让粘贴,操作起来很不方便! 如果把所有的隐藏列用movecol()函数,调整到最后排列,这样可以避免,但是,由于易表的列计算的顺序的限制,有的隐藏列就还必须排列在前面,否则,计算一次将得不到正确的结果,当然,除非可以由管理员指定各列计算的先后顺序,但是这样的话,估计速度将会受到很大影响! 至少,希望在新版中能够实现这一点! |
-- 作者:Czy -- 发布时间:2007/9/10 23:37:00 -- 假设隐藏的列是用公式生成,那么你这个问题应该是可以解决的,只要允许用户向隐藏列粘贴数据就行了(实际情况因为这些列是用公式生成,贴入数据后会触动公式,自然也就返回了公式计算值)。 我做了一个公式,用公式去判断用户隐藏显示列,这样就可以贴入数据了。 if(usertype=1,eval("SetColWidth("""+Substitute(ListCols(GridName),"|",",")+""","""+Substitute(Rept(",75",Cols),",","",1)+""")"),SetColWidth("第三列,第五列","0,0")) |
-- 作者:程兴刚 -- 发布时间:2007/9/10 23:52:00 -- 谢谢总版主! |
-- 作者:Czy -- 发布时间:2007/9/10 23:53:00 -- 可能我的理解有误,这样粘贴数据时不能跳过隐藏列。 |