Domino基础——开发
设计元素 — 子表单
Domino的重要元素、表单的辅助设计元素: 可以包含域、静态文本、表格和操作按钮等内容 不能保存文档,只能嵌入表单中使用 可以从代码重用、可读、可修改性角度来理解
设计元素 — 帧结构集
Domino的重要元素、桢的容器: 与桢配合使用、分割页面布局 一般做为数据库进入的默认页面 表现在web客户端上,就是FrameSet
Domino的重要元素,存放可重用的脚本: 一次编写、到处使用、集中管理、有些类似类库 支持LScript、Java、Javascript三种类型 代理中使用LS和Java,页面前端使用Javascript
设计元素 — 其他
帧:(frame)可以嵌入其他元素、如表单、页面、视 图等 大纲:主要应用于C/S开发 导航器:主要应用于C/S开发 文件夹:类似视图,但显示的文档来源不同,用于临 时存放文档和排序 共享资源:可共享的设计资源,包括图像、共享域、 共享操作等
公式语言
概述
Notes自带的一种语言,包含一整套的语法规 则,提供丰富的命令和函数。用它可以进行简单 的逻辑控制,简单易用,代码简洁 。常用于设计 元素的隐藏公式、域值的计算中。
公式语言—基本语法
基本形式 以@开头的语句 例如: @TextToNumber @Prompt @For @Platform @DbTitle @Created
公式语言—示例
文件操作
@Command([FileSave])、@Command([FileCloseWindow]) 、 @Command([FileExit])、@SetField()………… 字符运算 @text()、@contains()、@right、 @left()、@Length()、 @TextToNumber() 文档查找 @Dblookup()、@DbCloumn()
如何创建一个数据库
使用模板创建数据库 新建拷贝数据库 新建复本数据库 物理拷贝数据库 从头开始创建数据库
设计元素 — 表单
Domino的核心元素、兼具定义存储和显示的功能: 用来定义Web页面显示的格式、布局和内容; 用来定义数据库各字段设计、类似RDB中的表; 每个表单包含域、静态文本、表格和操作按钮等 内容。
表单中的域
域用来输入、修改和显示存储在条目中的数据。
下面在开发工具中讲解
设计元素 — 域
域: 对域的理解: 收集应用数据,类似RDB表结构中的字段设计; 配合页面展示,类似web页面Form下各种input; 配合控制文档权限,主要针对读者/作者两种类 型; 特殊的保留域; 域的类型: 文本、数值、时间、组合框、单选框、读者、作者、 RTF域等;
用数据,又是用来保存应用设计的。下面要介绍 的设计元素理 大纲 桢 桢结构
子表单
页面 Script库
共享资源
导航器 文件夹
Domino与传统数据库的区别
Domino的数据库是一个集数据与设计元素于一身的集合体。数据存储在文 档中。文档的界面是表单,一个设计元素。你可以把文档与表单非常粗略地类 比为数据库的行与表。但这种比喻并不恰当,比如我们可以在文档中添加一个 在过去创建的表单中并不存在的域,而且,你可以使用不同的表单去显示同一 个给定的文档。 在Domino中文档可以通过视图来显示。一个视图是满足某种规则(比如P r i o r t y = " H i g h " )的文档的集合,视图的每一行既可能代表一个文档又可能代 表一个分类,不同的列显示文档内容的不同信息。列中既可能显示某一个域的 值也可能显示某个公式的结果,比如P r i c e * Q u a n t i t y。打开一个视图与 执行一条S Q L语句相似,只不过在视图中双击某一行可以打开相关文档。 文档总是存在于编辑模式或只读模式下。在编辑模式下,文档的可编辑域 就像表单中的域。在只读模式下,这些域的内容以静态文本的形式出现
设计元素 — 视图
Domino的核心元素、是重要的数据展示手段: 通过指定选择公式确定要显示的文档; 通过视图列公式指定要显示的字段; 通过列属性指定排序,显示样式等; 每个数据库至少要有一个视图 类似RDB的视图
设计元素 — 页面
Domino的重要元素、用于显示信息: 可以包含图像、文本、大纲、表格、区段 可以作为网页、图片、附件夹来理解
Domino开发基础知识
亿同科技 福州技术部 2011-04
内容
设计元素介绍 公式语言介绍 LS 脚本介绍
Domino/Notes开发:思想方法
数据(文档)和代码一起保存 以文档为核心 以视图为主要表现方式 更偏向于一种扁平和混合的特点
Domino Web服务
数据库
数据库:存储文档的单元,文档既是用来保存应
Domino文档对象模型
LotusScript语言
变量定义和赋值
Dim a as string //定义一个字符串 Dim c as long //定义一个长整型变量 Dim doc as notesdocuemnt //定义一个notes文档 Dim db as notesdatabase //定义一个notes数据库
设计元素 — 代理
Domino的核心元素,通过预先定义好的程序,用来实 现应用逻辑
复杂应用逻辑的主要实现手段 可使用简单操作、公式、LScript、Java实现,相当 于三层模式中应用层和数据层的部分逻辑处理 触发方式:页面触发、直接URL调用、时间触发、 事件触发
设计元素 — Script库
运行代理
@Command( [ToolsRunMacro];agent) 取当前用户信息 @username() @dbname() @now() @ClientType() *对于web开发而言,有部分UI相关的公式是无法使用的
LotusScript语言
Domino提供的一种嵌入式的脚本语言 语法类似VB,是Basic的超集 支持面向对象、Domino 文档对象模型 OLE 支持 (automation server) 与其他语言的协同能力 使用LotusScript类库 在B/S模式的应用开发中,用于完成代理
文本转成数值型 在客户端弹出确认对话框 循环语句 返回服务器平台信息 返回当前数据库标题 返回当前文档的创建时间
公式语言—基本语法
常量:文本、数值、时间 变量:域、临时变量 操作符: 关键字: 流程控制:@if @While @DoWhile @for
样例:
Temp:=@UserName
各种域类型区别介绍
域类型 计算型 何时变化 当文档创建,存盘,刷新时计算,并保存在文档中
显示时计算 当文档打开编辑,读或刷新时计算,不保存在文档中 创建时计算 当文档被创建时,仅此计算一次,并保存在文档中。
WEB表单中的特殊域
$$HTMLHead 包含在<HEAD>和</HEAD>标记之间的文本。在R4.6以后版本中可用HTML的Head属性 $$NavigatorBody 在表单中嵌入的导航器名,在R4.6以后版本中可用“嵌入导航器” $Readers 使得文档仅仅只能在该域中或者其他类型的“读者”域中指定的用户阅读。可以包括用户名, 群组和角色(将角色名包括在方括号内),例如:“JoeSmith”:“Marketing”:“[Reviewer]” $$Return 表单被递交时响应浏览者的文本;例如:“<h1>Thankyou</h1>”;你也可以根据表单的递交情 况通过返回一个包含在方括号内的URL传递给浏览者一个URL资源,例如: [http://www:/kelleher] SaveOptions 决定一个文档是否使用该表单保存的值:取默认值0时不保存。当递交按钮被设计成激活某些操 作而不是创建文档时,这一点非常有用。例如,搜索或激活一个代理 SendTo 文档被邮寄时邮件接收人列表。相关的域包括CopyTo,BlindCopyTo和 $$ViewBody 表单中想要嵌入的视图名,在R4.6以后版本中可用“嵌入视图”功能$$ViewList在数据库中显 示视图列表,在R4.6以后版本中可用嵌入文件夹功能
表单中的设计元素
• • • • •
域(域的数据类型,类型,隐藏公式) 在表单和表单对象中使用HTML属性 计算文本 使用热点 在表单内使用H T M L WebQueryOpen和WebQuerySave $$Return 域(表单中的特殊域) 在表单中使用C G I变量 表单和搜索
表单与WEB
• 当你想通过Web来创建一个新文档时,你通过打开表单
Open Form URL命令打开一个适当的表单。例如,下 面的U R L在example数据库中打开了personInfo的表单。 http://server/example.nsf/personInfo?OpenForm Domino将Notes表单转化成一个HTML表单以响应你的 请求。当然,Notes客户端应用还可以使用表单的没有 HTML等价的另外一些特征,这些特征并不能在Domino 的Web应用中工作。 你可以通过提交表单来保存新文档。提交表单时会触发 表单事件(通过一个CreateDocumentURL对象)。继 而,Domino使用在CreateDecumentURL中指定的表单 将信息从HTML表单传输过来并保存在数据中。
关于表单
表单是Notes 应用的基础,它们决定了数据在输入输出过程中的显示方式;在一
定程度上决定了在数据库中信息是如何存储的。如果没有设计漂亮的表单,就不 会有精美的D o m i n o应用。 如果你熟悉H T M L的表单,开始时你可能会被Lotus Notes 的表单弄糊涂。 和H T M L表单一样, N o t e s的表单被用来从用户那儿获取信息(通常是通过 可编辑的域)。和H T M L表单不一样的是,N o t e s的表单也被用来显示已经 获取的信息。这些信息存储在称为文档的容器之中。 当你打开一个N o t e s表单时,填写完信息,选择保存。此时,在数据库中保 存一个新文档。这个文档中包含了一个F o r m域,它的值确认用来创建文档的表 单名,当你打开文档时,这个表单被用来显示信息。文档是数据的一部分,表单 是数据库设计的一部分。这和一个数据库中的记录(称为数据)与表(称为基础 组织)二者之间的关系相类似。在H T M L表单和N o t e s表单中,另一个不同 的地方是访问的模式。在默认情况下,当你打开一个N o t e s文档时,它处于只 读模式;读者所看到的都是在一个字处理器中创建的文档,不包含任何文本域或 下拉列表。如果你将此文档改成编辑模式,则它有着明显的不同:可编辑文本域, 下拉列表,以及其他元素都变得可见了,好像是在一个H T M L的表单之中。然 而,你所见到的并非是一个表单,确切地说,你所看到的文档,是通过一个表单 显示出来的。