网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用Visual C++增强Notes打印功能
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
体实现的。Notes中定义对象的结构体都以"CD"开头,如CDTEXT定义静态文本、CDFIELD定义域等,其他对象的具体定义请查阅Lotus C API 的参考文档。

  通常,一个$BODY域的整体结构是这样的:

  CDPABDEFINITION
  CDPABDEFINITION
  
  CDPARAGRAPH
  CDPABREFERENCE
  CDTEXT
  text
  
  CDPARAGRAPH
  CDPABREFERENCE
  CDBEGINRECORD
  CDFIELD
  CDBEGINRECORD
  

  下面对其中的各部分分别予以说明。

  1.段落预定义部分

  CDPABDEFINITION定义页面上一个段落的属性,在这个结构体中我们可以定义段落的对齐方式、页边距、段间距、行间距等。在后面的某个具体段落中,如果定义了到此段定义的引用,则该段落就具有了此处定义的各属性。

  段落的定义可以放在$BODY域的开头,也可以放在中间,只要保证序号PABID不重复就可以了。

  2.静态文本的定义

  上述总体结构的中间部分定义了一段文本:CDPARAGRAPH定义一段的开始,类似文本串中的一个回车换行符;CDPABREFERENCE定义一个到段定义的引用,从而本段就具有了前面定义的各种属性;CDTEXT是文本的头部,包含有文本的长度、字体、颜色等信息;text是实际的文本。

  3.域的定义

  对域的定义也是以CDPARAGRAPH和CDPABREFERENCE开始,但与文本不同的是,像域、图像等对象的定义,除了有作为头部的结构体外,还要有一对界定结构体CDBEGINRECORD和CDENDRECORD放在对象定义的前后两端。

  有时在域的前面还要有一些提示性文字,如一个用于接收姓名的域name,通常在其前面要有"姓名"两个字,以便具体操作者知道此处要输入姓名。具体创建域时,这部分内容以文本形式放在CDBEGINRECORD之前,格式如上一步中所述。

  在货币型或数值型的域中,为了对数据的格式进行更进一步的控制,在CDBEGINRECORD和CDFIELD中间还要插入一个CDEXT2FIELD结构,该结构提供了附加的格式定义。

  域中的其他元素,如默认值计算公式、输入变换公式、域名、描述字串等放在CDFIELD后面,排列顺序和其长度值在CDFIELD结构体中的位置顺序一致。当然除域名外,其他元素如不是必要可以省略。

  在本部分中,以文本和域为例,介绍了$BODY域中各对象的具体定义方式,其他对象与此类似。

  三 创建Notes表单

  在了解了Notes表单结构的基础上,通过API函数建立表单就很容易了。

  首先打开一个数据库,然后在其中新建一个空白note,接下来就可以向其中添加各域了。像$TITLE这样的单一类型的域,可以直接调用NSFItemSetText函数创建。而像$INFO和$BODY这样的复合类型的域,就比较麻烦一些。通常的做法是,先申请一块足够大的内存,然后顺序写入各部分内容,最后调用NSFItemAppend函数创建域。

  在向复合域中写入数据时,文本、域名等一般字符串可以直接写入,而各种结构体需调用ODSWriteMemory函数以Domino规范的形式写入,另外就是域定义中用到的各种公式,在写入前要经过NSFFormulaCompile变换。

四 例程

  下面的程序段定义了一个带有默认值公式的名为"TextField"的域:

  char TextFieldName = "TextField";
  char TextDescription = "This is a Simple Text Field";
  char TextDefValFormula = "\"Default\"";
  char far *pBufferStart, far *pBuffer;
  HANDLE hMem;
  CDPABREFERENCE CDPabRef;
  CDPARAGRAPH CDPara;
  CDBEGINRECORD CDBegin;
  CDENDRECORD CDEnd;
  CDEXT2FIELD CDExt2Field;
  CDFIELD CDField;
  FONTIDFIELDS *pFontFields;

// 申请内存并锁定内存,获得指向该块内存的指针
  OSMemAlloc (0, wCDBufferLength, &hMem);
  pBufferStart = (char far *)OSLockO
  • 上一篇资讯: 自动过滤选择的组合框
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号