Domino notes 中 使用URL Commands

<html>
<head>
<title>IO Test Demo</title>
<scrīpt type="text/javascrīpt">
var djConfig = {isDebug: true};
</scrīpt>
<scrīpt type="text/javascrīpt" src="../UIlib.nsf/dojo-0.4.1-ajax/dojo.js"></scrīpt>
<scrīpt language="Javascrīpt" type="text/javascrīpt">
dojo.require("dojo.io.*");
dojo.require("dojo.widget.Button");
function callagent(){
var form=dojo.byId("abc");
alert(form);
var bindArgs = {
url: "formula?createdocument",
formNode:form,
mimetype:"text/html",
method:"post",
load: function(type, data, evt){
dojo.debug(data);
// we could just set mimetype: "text/javascrīpt" to
// have it auto-eval, but that's not as interesting
// dj_eval(data);
}
};
var canBind = dojo.io.bind(bindArgs);
}
</scrīpt>
</head>
<body>
<form method="post" id="abc" action="">
<input type="text" name="formula" id="name"/>
<button dojoType="Button" ōnclick="callagent()">OK</button>
</form>
</body>
</html>
domino数据库中有个 "formula" 表单,有个域叫 formula, 该域值由页面提交,然后createdocument时触发$$return计算域 ,$$return存放计算公式. 然后返回给data.

syntax:=@CheckFormulaSyntax(formula);
eval:=@If(syntax="1";@Eval(formula);syntax);

@If(syntax!="1";"error-bad syntax":syntax;@If(@IsError(eval);"error-runtime error";@Implode(@Text(eval);"~~")))

使用URL Commands
Domino 提供URL command命令,我们可以通过url命令来实现一些非常巧妙得运用。
一、基本语法:
其中,host指的是domino服务器域名或ip地址,dominoObject指的是domino开发的一些元素对象,例如:database、view、form,agent等等
二、实例说明:
a) Open
Domino中的任何元素(包括设计元素如view,form等)都是文档,都有它的ID。我们可以通过一定方式打开查看,如打开一个视图:vwView,我们可以这样:
打开一个文档略有不同,它需要知道该文档所处的视图:http://host/db.nsf/vwView/DocUNID?open
打开和执行agent的url可以是: http://host/db.nsf/agentName?open. 这为我们以后用ajax异步方式处理文档提供了一种方式和可能,以后会详细介绍。
b) Create
主要介绍createdocument。Domino开发与其他web开发有所不同,大多数情况下它的设计元素集中在后缀为msf的notes数据库中。这与分工明确的协作开发有所不同,但并非不能进行协作开发。可以有专门的ui页面开发人员,用html和javascrīpt开发出美观的页面,数据处理可以就可以用URL Command。比如,我想做个form:fmTest,保存title,commons等信息,就可以这样做:
1.页面开发人员开发出ui页面

<form name="myform" method="POST" action="fmTest?createdocument">
<table>
<tr><td><input type="text" name="title" value=""></td></tr>
<tr><td><textarea name="commons"></textarea></td></tr>
<tr><td><input type="submit" name="btnOK" value="Save"></td></tr>
</table>
</form>

2.notes开发人员创建一个form:fmTest,包含字段:title(text类型),commons(RTF类型)。
3.创建视图:vwTest
4.创建一个page,名称为:test.htm将第一步创建的html放入其中,page的属性的content-tpye选择html
这样我们就可以通过 http://host/db.nsf/test.htm访问,点击save按钮,看看视图中是否多了条记录. J
notes中的设计元素都可以用html基本元素这样创建,除了file UpLoad Control控件。但我们也有办法来进行处理。先说明一下notes对于文档上传的处理方式。这是我个人的理解,如有错误欢迎指正讨论。
Notes可以在form中嵌入file upload control来保存附件,它是保存在form中一个特殊的默认域$FILE中,我们可以通过 http://host/viewname/documentunid/$FILE/attachmentName 的方式来进行访问。
在我们的page中也可以用通过添加html中的上传控件file来进行控制。
我们可以将test.htm改造成:

<form name="myform" method="POST" action="fmTest?createdocument">
<table>
<tr><td><input type="text" name="title" value=""></td></tr>
<tr><td><textarea name="commons"></textarea></td></tr>
<tr> <td><input type="file" name="%%File.1"></td></tr>
<tr> <td><input type="file" name="%%File.2"></td></tr>
<tr><td><input type="submit" name="btnOK" value="Save"></td></tr>
</table>
</form>

有两点需要注意
1.file的名称要开始一定是%%File.后边跟数字或字母才行。
2.在服务器的notes.ini文件的最下边添加上这么一句:
DominoDisableFileUploadChecks=1
这样,我们就可以访问test.htm来创建文档和上传附件了。
c) Update
创建成功后难免需要修改,目前我没有想到特别好的办法。有一个方式:根据url我们可以获得文档的信息,生成xml,将此xml对应的值放入test.html相关字段的value中,只不过action需要变成 "fmTest?savedocument"
熟悉 web 开发如 asp php jsp 的人都应该知道这种方式,我不清楚还有没有其他的更好的方式。
d) Delete
url:http://host/db.nsf/vwView/documentUNID?delete
e)
结合XML技术,用notes的URL Commands我们可以开发出更加灵活的程序。抛砖引玉,共同讨论,共同提高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值