|
日常办公应用中,大量的文档处理不可避免要碰到多页格式文本,而在以文档为主要处理对象的应用程序里,也会碰到这一问题。Lotus Notes的应用程序中,表单是生成文档的模板,如果要在文档中增加表格行,就必须动态改变表单,所以在Lotus Notes中实现格式文档的多页显示仍有其实用意义。
Lotus Domino/Notes是Lotus公司推出的群件系统。通过Lotus Notes的支持,Domino能够为Internet/Intranet用户提供强大的工作流、消息传递、协同计算、信息检索和信息发布等应用。目前,已经有越来越多的公司企业、政府机关使用Lotus Domino/Notes作为协同工作平台,有效地实现了办公自动化。
多页文本的显示问题
在办公应用中,大量的文档处理不可避免要碰到多页格式文本。例如:合同的正本有相应的幅面尺寸规定,一张合同只能输入有限的信息量,因此会碰到一个合同里的交易产品种类数量过多,必须用多页文本显示。在以文档为主要处理对象的应用程序里,也会碰到这一问题,但由于文档在电脑中不受纸面的限制,可以通过对表格增行以得到足够的空间,这样即节省了存储空间,山可不重复存储单据的头信息。
Lotus Notes的应用程序中,表单是生成文档的模板,如果要在文档中增加表格行,就必须动态改变表单。因为Lotus Notes应用程序中的表单是静态的,故动态增删表格行不太方便。另外,考虑到网络普及的今天仍然脱离不了必要的纸面凭证,我们有时仍需打印出大量的文件,所以在Lotus Notes中实现格式文档的多页显示仍有其实用意义。
实现文档的多页显示的前提是:在信息量超过一个表单页面所能显示的信息的时候,能够产生下一页,并将文档的上一页的头信息内容复制到当前页(以一个合同为例,合同的供方及相关信息、需方及相关信息、签订时间、合同号、合同细则都属于头信息,对于一次交易而言,每页合同的这些信息应该相同),同时能增加当前页的页码,并保证一次交易中只有一个惟一标识(通常可用合同号),以确保在浏览上下页时可以打开正确的文档。
实现多页文本的显示
现假设合同表单域名为“Contract”,页码域名为“pageNo”,页数域名为“pages”,合同号域名为“contractNo”。
为了保证填写下一张页面时,能得到上一张页面的值,必须在“Contract”表单的属性里选择“公式继承选定文档的数值”。这里最关键的是要继承合同号、页码和页数信息。为了在新的页面里得到上述信息的正确值,还应再在上述域的缺省值里加上一些公式。在“contractNo”域里的缺省值为:contractNo。可以原封不动地把上一页的合同号拷贝到新的页面,以保证是同一笔交易。在“pageNo”域里的缺省值为:
@if(@environment("isNext")="True";
@do(@environment("isNext";"");pageNo+1);1)。
上面的公式可以辨别当前是第一页还是继续填写的页,其中“pages”域里的缺省值为pageNo。
需要注意的是,虽然继续填写的新页的页数已经增加了,但是并没有改变前面所填页面上的页数值。从符合逻辑的角度来说,前面已填写页面的页数,应该在最后所有页面填完之后才添加上去,所以在新填写的页面未保存时不能将页数统一为新页上的页数。
在“继续填写下一页”按钮按下的时候,执行的操作包括两个:保存并关闭当前页面和打开新的页面。这里采用Lotus Script编写代码,详细代码如下:
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim session As NotesSession
Set uidoc = workspace.CurrentDocument
If uidoc.editmode=[1] [2] [3] 下一页 |
|
|
|
|
|
|
|