经验:
1、在用NSFDbGetUnreadNoteTable函数取得未读文档列表时,发现在读取本地数据库时,未读文档列表是正确的,而当读取服务器上数据库时(即使你在本地做个复本,再读本地复本的未读文档列表也是一样),总是返回总文档数,即使在用NSFDbUpdateUnread函数更新了未读文档列表后仍是如此,只有在用文档集函数NIFUpdateCollection更新后才能得到真正的未读文档数。
2、在上面得到的未读文档数是整个数据库的全部未读文档,应和视图文档进行对比后才真正得到某视图或文件夹的未读文档。
3、Notes在处理中文时,要求每个中文前都必须有0x13字符才行。所以在处理中文数据库方面,自己还要自行处理中文名问题。
4、要进一步得到文档的字段内容,可以用将以下函数段加入上述函数中。
BOOL fFirst = TRUE;
int j=0;
NOTEHANDLE noteHandle;
while(IDScan(hTable, fFirst, &NoteID))
{
fFirst = FALSE;
for (i=0; i
if (NoteID==IdList[i]) {
if (NSFNoteOpen(hDb, NoteID,0, ¬eHandle)==NOERROR) {
NSFItemGetText(noteHandle,szItemName,Buffer[j],MAX_PATH);
}
j++;
break;
}
}
|
5、本文是实现该功能的主要函数,你可以将其写成一个DLL
程序,那么就可以在你的Notes Script脚本程序中来使用它。你也可以利用它写成一个独立的应用程序,你就可以在Notes外部运行它了。
本程序在Windows2000 Server,Visual C++ 6.0下调试通过。如果本文有任何问题,请与作者联系。
参考文献:
Lotus C API 5.0.7 User Guide
Lotus C API 5.0.7 Reference
