求救,关于DB.SEARCH里面的公式
近日写一代理,里面需要用DB.SEARCH,写法如下:
searchFormula$ ={zz="}+ tName +{" & Form="frm_originality" & HasResult!="1" & del!="1" & @Created>=@TextToTime("}+ Cstr(doc.startdate(0)) +{") & @Created <=@TextToTime("}+ Cstr(doc.enddate(0)) +{") }
前面这几项都没问题
zz="}+ tName +{" & Form="frm_originality" & HasResult!="1" & del!="1"
doc.startdate(0)和doc.enddate(0)是两个时间,需要找出的文档就是创建时间在这两个时间之间的文档
现在问题来了,如果只用zz="}+ tName +{" & Form="frm_originality" & HasResult!="1" & del!="1"这一段公式,那么还好,代理很快可以运行完,大概值需要1秒钟
如果加上@Created>=@TextToTime("}+ Cstr(doc.startdate(0)) +{") & @Created <=@TextToTime("}+ Cstr(doc.enddate(0)) +{") }
这一段时间比较,代理运行需要10秒钟,是因为我这样写效率太低的原因嘛?
有没有朋友遇到过,大家帮着分析一下吧。 --------------------编程问答-------------------- @Created>=[}+ doc.startdate(0) +{] & @Created <=[}+ doc.enddate(0) +{]}
把你说的那段改成这个试试(括弧你再检查下,我自己有点晕),就是data类型在公示里可以用[]裹起来,等同于字符串的"" --------------------编程问答-------------------- 说错了,是日期类型在公式里可以用[]裹起来 --------------------编程问答-------------------- 不需要那么麻烦吧。试试这个:
searchFormula$={zz="}+ tName +{" & Form="frm_originality" & HasResult!="1" & del!="1" & @Created - startdate>=0 & @Created - enddate <=0 }
前提是startdate和enddate都是Date/Time类型的。 --------------------编程问答-------------------- 这种情况我也遇到过,加上时间这个条件会让当前数据库重建索引,你直接在视图上添加那些条件你刷新显示数据都会那样。不过也没找到什么好办法解除那个问题
补充:企业软件 , Lotus