以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- [公告]聚沙篇(易表应用小技巧) (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=19504) |
-- 作者:smileboy -- 发布时间:2006/8/13 14:04:00 -- [公告]聚沙篇(易表应用小技巧) [这个贴子最后由smileboy在 2006/08/13 03:04pm 第 1 次编辑]相信每个易表爱好者在应用过程中都有自己的一些应用小技巧,这些技巧通常不是帮助文件都能涵盖到的,为了让大家共享这些技巧,特设置此贴。 跟贴规则: - 只要认为是个人的经验所得,即可跟贴。 - 内容可以是最简单、最常见而容易被忽略的。 - 有关函数应用方面的技巧不要跟贴,请到应用技巧区发布。 - 内容不要重复,也不要发表例如“谢谢,支持”之类的贴子,否则删除。 聚沙成塔,集腋成裘,发挥你的一份热量,请积极跟贴吧! 说明:为使该贴的内容更好地服务于各位论坛成员,版主可能视情况对发贴进行编辑、整理甚至删除,请大家理解。 |
-- 作者:smileboy -- 发布时间:2006/8/13 14:08:00 -- 1、下面的公式第二个selectfill怎么也不执行,经过贺老师近一个小时的研究,原来And之前有一个全角空格,希望能够引起大家的注意: DelFor(GridName) And SelectFill("总表","业务负责人","业务负责人","日期","日期","订单_产品","产品","订单_单价","订单_单价") And SelectFill("总表","业务负责人","业务负责人","日期","日期","代销_产品","产品","代销_单价","代销_单价","2") And DelReptRows("ww","业务负责人","日期","产品","订单_单价","代销_单价") 2、问:自动生成录入窗口也应该包含设置的变量,不然如果在窗口中插入变量,需要一个一个来,我的表有大概200多列,用下拉菜单找到一个变量需要快2分钟,10个变量就是20分钟,效率很低呀! 答:其实有个方法很简便,随便插入一个字段,把字段里的内容改为变量名就行了。 3、存盘冲突问题: 4、问:菜单中的“上一条”及“下一条”按钮里设置的是move函数,进入表后,如不点击其他单元格,使用“上一条”及“下一条”按钮没有作用。移动到其他单元格后,这两个按钮就可用了。不知为什么? 答:当表打开的时候,若无相关的预处理公式,row=-1,row不等于rowsel,所以,可以有两个解决方法: 2、使用row变量,【上一条】公式为if(row=1,true,move(row-1,1)),【下一条】公式为if(row=rows,true,move(row+1,1)),还要在“表预处理公式”中添上move(1,1)。 但总的来说,还是使用rowsel变量,比较好。 5、你碰到过想让窗口停靠在主表的右侧或下面,却不能得心应手,调整了老半天而不能使窗口和主表合为一体吗?其实这里面有点小技巧。 6、由win98操作系统自身的问题,在有冻结列的表中,拖动横向滚动条时,易表容易死机(数据量不多时,可能不会出现)。 告诉大家一个办法:1、冻结列里不要包含隐藏行。2、重新进入易表后,先调整冻结列中的其中一列的列宽,保存。然后再试试,不会死机了。如果是多用户使用,请禁止其他用户的“列宽设置”权限。 7、对于逻辑列的锁定必须选择“锁定全部内容”才行,因为逻辑列就两个值,0和-1,无所谓空与非空 8、问:我发现易表允许相同名称表的存在,请问这是否一个BUG,是否在调用时会产生混乱? 9、问:修改字体大小后,新增(添加)行的字号又变小了,为什么?怎样才能使添加的行的字号与上一行一致? |
-- 作者:smileboy -- 发布时间:2006/8/13 14:12:00 -- 10、易表安装目录下有一个symbol.txt的文件,这是易表的符号库,易表菜单中的插入符号命令,用的就是这些符号,你可以修改这个文件,删除不需要的符号,增加你常用的符号。 11、问:如何备份我的收藏夹? 12、表名和列名命名要注意: 13、有时当输入单元格公式相同但每个单元格都要重复输入,是不是很累人呢? 14、如何在录入窗口显示¥100,000.00格式? 15、怎样直接取得“星期X”?
|
-- 作者:smileboy -- 发布时间:2006/8/13 14:16:00 -- 16、禁止行菜单中的“行高设置”命令,将同时禁止用户通过鼠标调整行高 列宽同理。 17、输入百分比样式的数值时不要直接输入xx%(如20%),而要输入0.2,然后用按工具栏中百分比样式"%"键使其显示为20%,否则引用该数据进行计算时容易出错,而且还不易找出问题在。 18、问:在录入窗口中用变量调用万年历,为什么有时行、有时不行,不行时只能靠手工输入? 19、问:我在文章套打中用aggregate函数设置好了公式,而且确定公式没有错,但为什么会和表中统计的总计结果不符? 20、问:我原先设计好的按钮正常,现在怎么不行了? 21、对于函数中的可选参数,并非可有可无,如可选参数后没有条件参数,则可选参数可省略,如可选参数后还有条件参数,此时可选参数成了必选参数,必须设置,如以下两公式,一正一错: 22、如何用公式选定整个表: 23、验证公式中如果提示语太长,显示的效果不好看,在提示语中加入char(10)或char(13)可以自动换行。 9 TAB 24、问:如何在图片列批量插入图片? |
-- 作者:smileboy -- 发布时间:2006/8/13 14:21:00 -- 25、常见错误: 错误:IF([日期]="",公式1,公式2),应为:If(IsBlank("日期"),公式1,公式2),因""为字符,字段类型不同是不能相比较的。 注:IsBlank除了对逻辑列不起作用外,其余的列类型都可用它来判断是否为空。 26、判断字符列是否为空可写成如:If([某列] > "","A","D"),无须If([某列] <> "","A","D") 27、用Instr或Search简化公式:如一系统有abcde五个用户,每个用户使用不同的视图,可设表预处理公式为:OpenView(Instr(username,"Zabcde"))或OpenView(Search("ZabcdeX")),这里仅说明Instr或Search简化公式所起的作用,以上问题最简洁的答案是:openview(usertype),用户的分组号设置为视图编号编号即可。 28、问:如何求在一个日期后或前几天的日期? 问:日期能否排序? 问:日期和日期能相加减吗? 问:如何找出距指定日期最近或最远的日期? 29、问:一月有几个星期天? 30、问:在公式生成器输入公式,有无办法点击面板上<,>,=等变成带引号如:"<",">","="等? 31、问:执行Select(1,1,Rows,Cols) And Do(420,1) (锁定所有行)后,全表一片蓝,有点难看,有何办法解决? 32、问:怎样将数字向上舍入为最接近的整数? 33、轻轻的告诉大家:1231增加了一个变量:表位置变量grid,如grid用在文件第一个表中,返回1,用在第五个表中,返回5,如此类推,grid比gridname简洁,好用,许多地方grid可取代gridname!! |
-- 作者:smileboy -- 发布时间:2006/8/13 14:30:00 -- 34、问:如何删除表中的空记录? 答:在最后增加一列,公式设为:Aggregate(4,Row,1,Row,Cols - 1),按钮公式设为:RecalcCol(Grid,Cols) And DelFor(Grid,Cols,"=",0)(注:本法适用于没逻辑列的表) RAR文件下载 对于带逻辑列的,A列公式设为:Aggregate(4,Row,1,Row,Cols - 1)-n(n为逻辑列数)即可。 35、问:为保证所有资料已经录入(即记录中的所有列都非空),如何进行验证? 36、解决Win98非法操作的小技巧 37、问:如何清空窗口所有字段输入框的内容? 38、问:在查询窗口中用变量调用万年历,为什么不行时只能靠手工输入? 39、发现了一个解决52错误的方法(ctj兄提供): 40、问:用DelFor()删除上万行的记录比较慢,可有更快速的办法? 41、问:如何在本表操作其他表数据? 42、问:如何做个一个按钮,将本目录下的易表文件和它下一级目录的若干个照片,输出到软盘? |
-- 作者:smileboy -- 发布时间:2006/8/13 14:39:00 -- 43、问:怎样让系统中的录入窗口,在不同分辩率下打开时始终居中? 答:可利用系统变量screenwidth、screenheight的返回值及窗口的大小值计算确定,具体可在表预处理公式中这样设置公式:OpenWindow(1,(screenwidth - 400) / 2,(screenheight - 300) / 2)(假设窗口大小为400*300)。 44、问:如果我的信息管理系统有多个文件组成,每次修改某个文件的菜单或工具栏,为了保持整个系统的一直,就得每个对每个文件的菜单方案进行修改,很麻烦,请问有没有办法让每个文件的自定义菜单、工具栏都统一? 答:有办法的,最新版本的易表增加了OpenMenufromFile函数。用户可以将菜单文件保存为菜单模板,然后为每个文件的第一个表设定预处理公式:OpenMenufromFile(docdir + "模板.mnu");需要注意的是,在这种情况下最好利用filename变量来判断文件名,如果不符合,结合OpenFile文件来定义菜单函数,如果符合,则可直接用OpenGrid函数! (注意:最好将所有易表数据库文件放在一个目录下,使用Open系列函数的时候注意用docdir来定义路径) 45、[求助]网络环境中使用易表出现错误提示? 46、问:在公式生成器中怎样快速找到要找的函数? 47、快速输入日期:1949年10月28日,输入491028即可。 48、相邻的几个单元格要设置同一个公式,如果第一个单元格已设置好公式,其他的单元格不需再输入公式,将要设置公式的单元格全部选中,单击右键——设置单元格公式,确定,OK了! 49、默认的易表列类型是字符型,通常设计表的时候要先输入列名称,再调整列类型。经常遇到这样的情况,要设计的表格列数比较多,而类型大部分是数值型,输完列名称后再一个一个地将字符型改为数值型,感到很麻烦。解决的办法是:先将第二列以后的各列删掉,再将第一列改为数值型,然后按向下的方向键添加列,这样新增加的列便都是数值型,个别不是数值型的列调整起来就省力多了。 50、问:有时公式左看右看都是正确的,在公式生成器中“执行计算”也有结果,但实际却得不到想要的结果!是什么原因? [分享]提高覆盖数据的效率! 51、[分享]克隆关联数据! 52、[分享]由身份证号码取得发证省市的简洁公式! |
-- 作者:smileboy -- 发布时间:2006/8/13 14:53:00 -- 53、问:怎样让每两个字符之间只保留1个空格。 答:Substitute(Substitute(Substitute(Substitute(Substitute([某列],"13"," "),"7"," "),"3"," "),"2"," "),"2"," ") 可以将388个空格合并为一个空格 注:数字为空格的数量 RAR文件下载 54、问:如何打开某表时只显示本月数据? 55、问: 解决方法: 56、问:如果每月20日结账,怎样筛选每月的数据? 57、通用数据恢复按钮的制作: 第一步:设置一个变量%HF%,数值型。 58、报表设计的一个小技巧: 59、在工具栏中动态显示当前日期和时间 60、不能重复选择的列表项(本技巧经点将版主修改)。 61、使用HideMainWindow函数隐藏易表的系统界面后,如果将设置有显示系统界面按钮的录入窗口误操作,被关闭后,如何能够打开被隐藏易表的系统界面? 62、在报表设计中,如何使打印时首行打印的字空两个字位? |
-- 作者:smileboy -- 发布时间:2006/8/13 14:57:00 -- [这个贴子最后由smileboy在 2007/08/30 09:50am 第 5 次编辑] 63、N次方根的函数易表未列明,但可以^表示。 问:数字A的n次方如何表示? 答:A^n 。例如,23的30次方,可表示为23^30;23的30次方根,可表示为23^(1/30) 64、问:如何“请出”被隐藏在录入窗口标题栏里的对象? 65、问:易表中有判断某个文件是否存在的函数,但不知是否有判断某个文件夹是否存在的函数? 66、用setup2go打包你自己开发的系统时,如果是一起打包运行环境的话,你便可以在打包时将易表文件图标变成你自己的了 67、reset函数解释 68、Number的特殊用法: 69、在打印报表中如何设计合并模式 70、下面两个公式有什么不同?,好像改成第二个无效??难道有顺序? 71、几例字符串应用公式 一翻二("A|B|C"→"A@A|B@B|C@C"): Eval("Substitute(""|@|"",""|"","""+Substitute("A|B|C","|",""")+""|""+Substitute(""|@|"",""|"",""")+""")") Eval("Substitute(""|@|#|"",""|"","""+Substitute("A|B|C","|",""")+""|""+Substitute(""|@|#|"",""|"",""")+""")") 一翻四("A|B|C"→"A@A#A&A|B@B#B&B|C@C#C&C"): ⑴:("A|B"+"1|2"→"A#1@A#2|B#1@B#2") Eval("mid(Substitute(""|1|2"",""|"",""@"+Substitute("A|B","|","#""),1)+""|""+mid(Substitute(""|1|2"",""|"",""@")+"#""),1)") ⑵: ("A|B|C"+"1|2|3"→"A@1|B@2|C@3") Eval("SPLIT(""A|B|C"",""|"","+Substitute(Substitute(Left("01@01|02@02|03@03|04@04|05@05|06@06|07@07|08@08|09@09",6*(len("A|B|C")-len(Substitute("A|B|C","|","")))+5),"|",")+""|""+SPLIT(""A|B|C"",""|"","),"@",")+""@""+SPLIT(""1|2|3"",""|"",")+")") 如"A|B|C"中的"|"多于9,则要加长预设数列:"01@01|02@02|03@03|04@04|05@05|06@06|07@07|08@08|09@09" 注:俺原先进行一翻多是在eval("Mid(Rept(""@"+Substitute("A|B|C","|",""",2),1)+"" |
-- 作者:smileboy -- 发布时间:2006/8/13 14:59:00 -- [这个贴子最后由smileboy在 2007/10/23 03:37pm 第 1 次编辑] 72、如何利用SendKeys()最小化录入窗口? 实现方法:在窗口增加一个自定义按钮,在该按钮里设置好筛选公式,并在该公式最后加上 SendKeys("% ") and SendKeys("n") ,这个公式的含义就是:“ALT+空格+n键”,这样的组合按键作用就是最小化录入窗口。 也可以直接写成:sendkeys("% n"),注意%与n之间有一个空格。 |