当程序发生错误的时候,经常会弹出包含错误消息的对话框。而我们经常需要把这些信息复制下来,发送给相关人员或者上网寻求答案。在这个时候其实我们只要按下Ctrl+C就可以了,是不是很方便呢?

弹出提示框

复制上面的弹出信息,可以得到以下结果:

—————————
Microsoft Internet Explorer
—————————
一些文本
—————————
确定
—————————

我们在检索的时候,一般都是检索某个域值是XX的文档。使用"NOT [fieldname] is present"可以检索fieldname为空的文档,这是一个未公开的检索功能。

记得前些时间写了一个例子,说明了CSS expression是如何的方便和强大。这回再来数落一下CSS expression。

首先它的兼容性有很大问题。由于它不属于CSS标准,所以除了IE之外的浏览器支持的不好。firefox就只能处理一些非常简单的,比如下文中控制文本框颜色的例子。另外就是效率问题。每个鼠标、键盘的动作都会导致CSS expression重新计算,对于复杂的表达式就会是很大的开销。更要命的是你无法预料某一个表达式可能会导致另一个表达式重新计算,这样的情况会让你的IE死掉。
所以使用CSS expression时一定要小心谨慎。

前两天从网上找了个脚本调试器,装上后没啥用就卸掉了。这一卸不要紧,弄出一堆麻烦来。一是Office自带的脚本编辑器不能直接调试IE脚本错误了;二是IE的Session完全混乱,具体表现为新开的IE进程会继承以前登陆过的权限,所有的IE窗口就像一个进程一样。。。而且在任务管理器里面找不到 iexplore 这个进程

尝试重装脚本调试器、IE6均未生效,莫非真的要我重装系统?万般无奈只好google一下,嘿,还真对得起咱这只手,原因给我找到了!原来是有个注册表的值控制着是否合并iexplore和explorer,我就是不知道被什么东西给改了这个键值,所以所有的IE进程都被合并到explorer里面当成一个进程了,也就找不到iexplore这个进程了。这个神奇的键值就是HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Explorer BrowseNewProcess下面的BrowseNewProcess,值为”no”表示合并iexplore和explorer,”yes”为不合并。可怜的是有好多人都没找到原因,只好重装系统了,看来我还算幸运的呢

最后有两个结论:没事google一下、MS的东西真烂。。。

先看看下面的一点代码:

问题是三次msgbox打出来的都应该是什么?我们先来分析以下这段代码,答案在最后揭晓。

继续阅读

使用byKey查找视图有GetDocumentByKey、GetAllDocumentsByKey、GetEntryByKey、GetAllEntriesByKey四种方法。前面两个方法获得的是符合条件的文档/文档集,后面两个方法获得的则是符合条件的视图的一行/多行。

这四个方法使用方法基本一致,第一个参数是查找的key(多个key使用数组);第二个参数是是否精确匹配,这个参数我们一般都用true,除非在你想在检索“三”的时候,将“三毛”也一起检索出来。这就是第一个要注意的地方:精确匹配。

第二个要注意的是,使用GetAllDocumentsByKey方法获得的文档集并不是按照视图排序的,想要获得和视图顺序一样的文档集,应该使用GetAllEntriesByKey,然后再用NotesViewEntry的document属性。

前些天在项目中发现Domino的一个问题:名为“张 三”和“张_三”的两个用户在读者域中是混淆的,就是说“张 三”能看到读者域为“张_三”的文档,反过来也是。后悔不该让客户注册这种用户名的同时,客户还有另外一个要求,就是将带空格的用户重命名,并且要平滑的过渡,原来该谁看的文档还是给谁看,该谁处理的还是要谁处理。

还好Domino提供的重命名用户功能比较好用,试了一下ACL/读者域/作者域/姓名域都能处理,算是不错了。不过有个问题,系统中有些存储姓名的域并不是姓名域而是普通文本域,这样的情况就没办法了。

所以以后在写东西的时候要注意了:是姓名的地方就用姓名域、是数字的地方就用数字域,也省去了明明是数值却不能比较大小的尴尬。还有就是服务器名带下划线时SSO好像会失败,所以对于用户名、服务器名等,我们还是不要使用奇怪的字符,省得出了问题后悔莫及。