上次我们提到有很多数据库属性,是存储在 Database Icon 文档 $Flags 域里面的。最近有同事问我能否修改数据库的主模板的属性,我们翻翻之前的 Flag 列表,好像没有哦。实际上 Database Icon 文档中还有一些其他的域,存储了数据库另外的属性。这次我们就来看看 $Title 域。
从名字上看,$Title 应该保存了数据库的标题。没错,标题确实是存在这个域里面的。不过呢,这里还放了一些其他的信息,包括数据库类别、主模板的属性、继承设计自哪个模板。所以我们通过修改这个域,就可以实现控制上述的四个属性了。数据具体的存储方式如下:
标题\n类别\n#1主模板名\n#2继承的模板名
我们可以看到,系统是用“\n”(也就是10号字符)来分隔各个部分的, 我们只要照着样子写回去就好了。但是在实验中我发现,如果用LS的 chr(10) 的话,保存后会变成另外的字符,而不是“\n”。原因可能是由于 LS 的 Unicode 编码和 Notes 的 LMBCS 转化造成的。所以我们改用公式语言的 @Char(10) 就可以了。最后要说明的是,以上四部分信息没有的部分直接略过就可以了。下面部分代码仅供参考:
Set doc = db.GetDocumentByID(“FFFF0010″) ‘获得 DB Icon 文档
sTitle = |”title” +@char(10) + “#1| + strtemplatename + |” | ‘标题和模板信息
r = Evaluate(|@SetField( “$TITLE” ; | & sTitle & | )|,doc) ‘写入 $Title 域
Call doc.Save(True,True)