domino基本web开发-表单

合集下载

在Domino中定制HTML登录表单的方法

在Domino中定制HTML登录表单的方法

在Domino中定制HTML登录表单的方法基于大家对domcfg.nsf数据库的登陆表单的设置问题比较多,特整理了一篇文章,希望对大家有所帮助,同时也希望大家完善。

Domino 提供缺省的HTML 登录表单,它允许用户输入名称和口令,然后将该名称和口令用于整个用户会话。

此表单在“Domino 配置”数据库(DOMCFG.NSF) 中创建并配置。

用户可以通定制此表单以包含其他信息。

一、创建“Domino 配置”数据库。

1、打开Notes 客户机,选择“文件”“数据库”“新建”。

2、在“服务器”域中输入Web 服务器的名称。

3、选择“Domino Web 服务器配置”模板(DOMCFG5.NTF)4、输入数据库的标题并将此数据库命名为(DOMCFG.NTF)。

5、单击“确定”。

6、将“匿名”的项目添加到数据库的存取控制列表中,并赋予“读者”的存取级别。

二、创建定制表单创建登录表单最简单的方法是修改“Domino 配置”数据库中$$LoginUserForm 表单的拷贝。

用户还可以“从头”新建登录表单。

1、打开Domino Designer 客户机,并打开“Domino 配置”数据库(DOMCFG.NSF)。

2、选择“视图”“设计”。

3、使用$$LoginUserForm 创建定制的表单,应先拷贝$$LoginUserForm,然后双击拷贝$$LoginUserForm 将它打开,进行定制、重命名。

要新建表单,单击“新建表单”。

4、当完成定制表单后,保存并关闭它。

三、指定定制表单为登录表单1、打开Notes 客户机,并打开“Domino 配置”数据库(DOMCFG.NSF)。

2、选择“创建”“映射登录表单”。

3、为Web 服务器选择正确服务器类型。

4、输入包含定制表单的数据库的名称。

此数据库应为DOMCFG.NSF,除非将这个定制表单存储在其他数据库数据库中。

5、输入定制的登录表单名称,如CustomLoginForm。

domino常用

domino常用

页面上常用的公式页面中的CGI变量1.按钮URLhttp://host/数据库名/dominoObject?action&argument特殊的打开文件中的附件名http://host/数据库名/documentUNID/$file/附件名代理1.定义变量Dim 变量名as 类型2.定义数组a.Dim 数据名(维数) as 类型b. redim preserve 数据名(维数) as 类型保留数据重新定义数组3.定义列表Dim 列名list as 类型例list(“s”)=5Print list(“s”)3.注示a.单行…号b.多行%rem ……………..%endrem4If 语句a.If 条件thenElseif 条件thenEnd ifc.if 条件thenelseend ifd.if条件thenend if4.for语句for index=1 to endnext5. While 条件…‟‟‟‟‟‟‟‟‟Wend6. DoLoop Until 条件7. Forall v In 数组列表……….End Forall8 With 对象.属性1=值1. 属性2=值2……………..End With9. select case 变量Case 值1:语句Case 值2:语句Case 值3:语句………………End select10. Evaluate执行公式例返回文档中的附件名:evaluate("@AttachmentNames",doc_tmp)12 常用代码a.读关系数据库Dim path_tmp As New KMPathDim db_config As New NotesDatabase(cur_db.server,path_tmp.GetFileDirectory("SystemConfig.nsf")) Dim view_config As NotesViewDim doc_config As NotesDocumentSet view_config=db_config.getview("(SystemSetting)")Set doc_config=view_config.getfirstdocumentSet con =New ODBCConnectionSet qry= New ODBCQuerySet result=New ODBCResultSetCallcon.ConnectTo(doc_config.ODBCSource(0),doc_config.ODBCUser(0),doc_config.ODBCPasswo rd(0))Set qry.Connection=conSet result.Query=qrySql=”sql语句”qry.SQL=sqlCall result.Execute()If result.IsResultSetAvailable ThenDoresult.NextRowresult.getValue(“表中列名”)Loop Until result.IsEndOfDataend ifb.读domino中的数据Dim session As New notessessionDim db_current As notesdatabaseDim doc_current As notesdocumentDim col_tmp As notesdocumentcollectionDim doc_tmp As notesdocumentSet db_current=session.currentdatabaseSet doc_current=session.documentcontextformual="form='fmSubModel'"Set col_tmp=db_current.search(formual,Nothing,0)If col_tmp.Count>0 ThenFor index=1 To col_tmp.CountSet doc_tmp=col_tmp.GetNthDocument(index)Doc_temp.getName(0)….NextEnd ifc.代理中出输a)输出javascriptPrint <script language=‟javascript‟>…………………….Print “</script>”b)输出链接Print “[”+链接地址+”]”c)输出XMLPrint |content-type:text/xml|Print |<?xml version="1.0" encoding="gb2312"?>|Print |<root>|Print str_xmlPrint |</root>|代理的过程1.得到当前的上下文Notessession2.得到当前的数据库notesdatabase3.得到当前文档当前页面notesdocument4.通过当前页面取的Query_String_Decoded域来取参数5.通过对当前页面的域赋值也可以改变当前显示页面的值代理的调用的时间1.打开页面时调用在webQueryOpen中调用2.通过按钮来调用。

泛微OA 新增功能:表单建模详解

泛微OA 新增功能:表单建模详解

【47851】新增功能:表单建模Submitted By Weaver SoftwareWeaver Software中国上海耀华支路39弄9号(通耀路济明路路口)邮政编码:200126电话:+86 21 68860398目录一、背景 (4)二、功能描述 (4)三、功能说明 (4)1.表单建模 (4)1.1后台设置 (4)1.1.1功能入口 (4)1.1.2新建节点 (5)1.1.3模块设置 (5)1)新建模块 (5)2)模块基本信息 (6)3)页面布局 (7)4)默认值设置 (10)5)权限设置 (10)6)编码规则 (11)1.1.4联动设置 (12)1)属性联动 (12)2)字段联动 (13)1.1.5自定义信息 (14)1)查询设置 (14)2)报表设置 (16)3)浏览按钮 (18)1.1.6接口设置 (20)1)批量导入 (20)2)流程转数据 (21)3)数据审批 (23)4)页面扩展 (23)1.1.7创建菜单 (25)1.2前台应用 (27)1.2.1前提条件 (27)1.2.2新建数据 (27)1.2.3共享数据 (28)1.2.4查询数据 (29)1.2.5监控数据 (30)1.2.6报表 (31)1.2.7批量导入 (31)1.2.8页面扩展(实例) (32)2.树形设置 (36)2.1功能入口 (36)2.2新建树 (37)2.3创建菜单 (42)文档版本控制一、背景表单建模功能主要解决的问题是,简单的数据模块可以通过该功能直接配置实现,不需要单独开发定制,就如我们配置流程一样灵活,同时这些数据可以供其它模块使用。

有了这功能之后,我们可以降低二次开发以及维护的成本,同时也可以更好的维护界面操作的统一性。

二、功能描述三、功能说明1.表单建模1.1后台设置1.1.1功能入口[系统设置-设置中心-表单建模-表单建模]图1所需权限:“模块设置”(权限id:1297)有权限的人,可以打开[设置-设置中心表单建模]下的“表单建模”页面。

Domino中表单、页面、视图、文档和域之间的关系

Domino中表单、页面、视图、文档和域之间的关系

Domino中表单、页面、视图、文档和域之间的关系1.表单(Form)-关系型数据库里的表设计关系型数据库中通过表设计来定义这张Table上会有哪些字段,字段的类型以及长度等,然后通过Table来创建符合这个Table定义的记录(Record)通常情况下,Lotus通过表单(Form)来创建,编辑和显示记录(在Lotus里称为文档Document)补充:A. 除了对文档进行处理外,表单也常常作为应用程序界面显示的途径,比如可以在表单上放按钮,导航,内嵌视图等,这些用法可能不以创建和编辑文档为目的B.表单创建与编辑文档的功能,通过在表单上放置域(Field)来实现。

2.页面(Page)-类似于表单,但是页面上不能放置域(Field),所以页面不能用来对文档进行处理。

3.视图(View)-关系型数据库中的Table,或者View(更接近于View)通过选择公式,将符合条件的文档Select到某个视图中。

同一个视图中的文档可以由不同的Form创建而来并不需要View中的所有文档中具有相同的域(比如文档A中可能有a1,a2,a3等域,文档B中可能有b1,b2,b3等域,而这两个文档可能归在同一个视图中)4.文档(Document)-关系型数据库中的记录与关系型数据库不同的是,文档中的域不一定需要与创建的表单中的域定义一致。

比如通过表单创建时,文档有a1.a2,a3三个域,通过其它办法,可以增加或者减少域。

(这个就是文档型数据库结构与关系型数据库的主要区别)一般来说文档中都有一个Form的域名,值就是创建这个文档的表单名,当打开这个文档时,系统默认用这个指定的Form来显示或者编辑这个文档。

你可以手工通过代码或者计算公式,改变这个域的值。

通过这种方法,可以控制用不同的表单打开同一个文档。

工作流常用这种方法,在不同的节点间切换用不同的表单来显示文档内容。

A.当文档的域多于显示的表单的域时,只显示表单上的这些域,其它域不显示,但是编辑和保存时默认情况下不改变这些隐藏域的值。

Domino开发介绍

Domino开发介绍

Domino 与传统数据库的区别D o m i n o的数据库是一个集数据与设计元素于一身的集合体。

数据存储在文档中。

文档的界面是表单,一个设计元素。

你可以把文档与表单非常粗略地类比为数据库的行与表。

但这种比喻并不恰当,比如我们可以在文档中添加一个在过去创建的表单中并不存在的域,而且,你可以使用不同的表单去显示同一个给定的文档。

在D o m i n o中文档可以通过视图来显示。

一个视图是满足某种规则(比如P r i o r i t y = " H i g h " )的文档的集合,视图的每一行既可能代表一个文档又可能代表一个分类,不同的列显示文档内容的不同信息。

列中既可能显示某一个域的值也可能显示某个公式的结果,比如P r i c e * Q u a n t i t y。

打开一个视图与执行一条S Q L语句相似,只不过在视图中双击某一行可以打开相关文档。

N o t e s不是一个关系型数据库。

例如,你不可能设计一个能够在一行中显示不同文档内容的视图。

但是,你可以设计一个能够反映主文档和子文档关系的视图。

在表单中,你可以创建一些有限的关系,例如,你可以通过创建一个优先域使视图按照该域的值列表。

文档总是存在于编辑模式或只读模式下。

在编辑模式下,文档的可编辑域就像表单中的域。

在只读模式下,这些域的内容以静态文本的形式出现。

开发部件表单和视图是D o m i n o数据库开发的最重要的设计元素。

但D o m i n o数据库开发不仅仅使用这两个元素,其他元素包括:1) 导航器。

导航器是一种图形。

Domino 的设计端提供了可视化工具使图形的创建非常简单。

2) 页面。

页面是一种区别于表单与文档之外的新的设计元素,是在Domino R5中新增的设计组件。

在页面中用户既不必填写数据,也不能得到数据。

3) 大纲。

大纲是在Domino R5中新增的设计组件,大纲就像你的站点的映射。

你可以根据你的习惯以不同的方式显示你的大纲。

数据导出-Domino浏览器端(网页端)数据导出实现

数据导出-Domino浏览器端(网页端)数据导出实现

数据导出-Domino浏览器端(网页端)数据导出实现简介:本文介绍了两种导出domino数据的实现方法,一种使用代理,一种使用XPage。

一、使用代理导出数据导出代理使用LotusScript实现,基本原理涉及输出信息到网页,设置网页内容类型:1、print()方法可输出信息到网页2、设置输出HTML页面类型 为附件 “Content-Disposition:Attachment;”参考代码:%REMSub exportDataBSDescription: 数据导出,参数为导出的数据%END REMSub exportDataBS(dataTable As String)Dim attSetting As StringDim htmlHeader As String'Generate HTML PageattSetting="Content-Disposition:Attachment; filename=" & Format(Now,"YYYYMM DDHHMM") & ".xls" & Chr$(13)htmlHeader=|<html><head><meta content="text/html; charset=GB2312" http-equiv="Content-Type"/>| & Chr$(13) & _|<style type="text/css">body {background-color:transparent;font-family: Arial;}table {font-size:12;border: 1px black solid;border-collapse:collapse;}th,td {border: 1px black solid;}</style>| & _|</head><body>|Print attSetting & htmlHeader & dataTable & |</body></html>|End Sub3、通过对请求页面可获取GET和POST类型参数值参考代码:Set context=s.DocumentcontextREQUEST_CONTENT=context.Getitemvalue("REQUEST_CONTENT")(0) 'POST参数 Query_String_Decoded=context.Getitemvalue("Query_String_Decoded")(0) 'URL参数 '<<<<<<Get dataIf REQUEST_CONTENT<>"" Then'Export selected documentids=Trim(StrToken(REQUEST_CONTENT,"ids=",2))If ids<>"" ThenaryIDs=Split(ids,".")ForAll Noteid In aryIDsSet request=db.Getdocumentbyid(Noteid)If Not request Is Nothing ThentbHTML=tbHTML & getDocInfoHTML(request)ElsetbHTML=tbHTML & "<tr><td>" & Noteid & "</td><td>" & "File not fo und" & "</td></tr>"End If ' get request doc objectEnd ForAll 'loop note idsEnd IfElseIf Query_String_Decoded<>"" Then'Export as conditiondtType=GetParameter("type",Query_String_Decoded)startDate =GetParameter("start",Query_String_Decoded)endDate = GetParameter("end",Query_String_Decoded)matType=GetParameter("matType",Query_String_Decoded)'导出处理代码...ElsePrint "未获取到导出参数!"GoTo endSubEnd If其他辅助函数:* 获取URL参数Function GetParameter(strParamName As String, strQuery As String) As StringDim i As IntegerDim s As StringDim v As VariantGetParameter = ""i = InStr(UCase(strQuery),"&" & UCase(strParamName) & "=")If i <> 0 Thens = StrRight(Mid(strQuery, i),"=")If InStr(s, "&") Thens = StrLeft(s, "&")End Ifv = Evaluate("@UrlDecode(""Domino""; """ & s & """)")GetParameter = CStr(v(0))End IfEnd Function* 特殊字符转换Function PCDATA(ByVal phrase$) As String%REM当需要输出HTML格式文本时,可使用此函数将输出字符中的特殊字符转换为&#unicode格式%END REMOn Error GoTo errorHandlerDim begin%, found%, oldPhrase$If phrase$="" Then GoTo endSuboldPhrase= phraseDim a As LongDim ch As Stringphrase$=""For a=1 To Len(oldphrase)ch=Mid$(oldphrase,a,1)If Uni(ch)=32 Or Uni(ch)>47 And Uni(ch)<58 Or _ '0-9Uni(ch)>64 And Uni(ch)<91 Or _ 'A-ZUni(ch)>96 And Uni(ch)<123 Then 'a-zphrase$=phrase$ & chElsephrase$=phrase$ & "&#" & Uni(ch) & ";"End IfNextPCDATA = phraseendSub:Exit FunctionerrorHandler:PCDATA = oldPhraseResume endSubEnd Function二、通过设置XPage返回信息来导出数据设置导出功能的XPage,需设置Xpage的"rendered"属性为false,并在XPage的“afterRenderResponse()”事件中编写导出数据代码,使用SSJS编写,可以导出特殊字符(不用做处理),基本要点是:* 设置输出页面类型var exCon:javax.faces.context.ExternalContext = facesContext.getExternalContext();var writer:javax.faces.context.ResponseWriter = facesContext.getResponseWriter();var response:javax.servlet.http.HttpServletResponse = exCon.getResponse();response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setHeader("Cache-Control", "no-cache");response.setHeader("Content-Disposition","attachment; filename=\"export.xls\"");* 设置输出页面及样式writer.write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/></head>"); writer.write("<body style=\"background-color:transparent;font-family: Arial\">");.....writer.write("</body></html>");writer.endDocument();* 实现代码参考(输出指定视图内容)function getSerialTimeNo():string{var nt:Date=@Now();var y=@Year(nt);var mon=@Month(nt);var d=@Day(nt);var h=@Hour(nt);var m=@Minute(nt);var s=@Second(nt);var day=y+(@Length(mon)==1?"0":"")+mon+(@Length(d)==1?"0":"")+d;var time=(@Length(h)==1?"0":"")+h+(@Length(m)==1?"0":"")+m+(@Length(s)==1?"0":"")+s;return day+time;}function export2Excel(){try {//javax.faces.context.FacesContextvar exCon:javax.faces.context.ExternalContext = facesContext.getExternalContext();var writer:javax.faces.context.ResponseWriter = facesContext.getResponseWriter();var response:javax.servlet.http.HttpServletResponse = exCon.getResponse();response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setHeader("Cache-Control", "no-cache");response.setHeader("Content-Disposition","attachment; filename=\"export"+getSerialTimeNo()+".xls\"");writer.write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/></hea d>");writer.write("<body style=\"background-color:transparent;font-family: Arial\">");try{//////////////////////////输出代码开始///////////////////////////////页面参数传递var condition=sessionScope.parts;sessionScope.parts=null;var vw:NotesView = null;var vc:NotesViewEntryCollection = null;var ve:NotesViewEntry = null;var veTmp:NotesViewEntry = null;vw = database.getView("Request");vc = vw.getAllEntries();if(vc.getCount()>0){//输出表格及表格标题writer.write("<table border=\"1px black solid\">");writer.write("<tr>");var columns=vw.getColumnNames();for(j = 0 ; j < vw.getColumnCount() ; j++){writer.write("<th>" + columns[j] + "</th>");}writer.write("</tr>");//输出表格行:视图数据ve = vc.getFirstEntry();while (ve) {v = ve.getColumnValues();//条件判断if(condition==null || condition==v.elementAt(0)){writer.write("<tr>");for (i = 0; i < v.size(); i++) {writer.write("<td>"+v.elementAt(i).toString()+"</td>");}}veTmp = vc.getNextEntry(ve);ve.recycle();ve= veTmp;}writer.write("</table>");}else{//没有数据writer.write("No Data");}//////////////////////////输出代码结束/////////////////////////////}catch(e){writer.write("ERROR: "+e.toString());}writer.write("</body></html>");writer.endDocument();} catch (e) {print("sysExportToExcel: "+e);}}Use the context global variable to get an XSPContext object representing the current context.。

domino设计表单和页面

domino设计表单和页面

第三章设计表单和页面本章描述如何设计表单和页面。

3.1 设计表单表单和页面一样,也可以显示信息。

在页面中可以完成的事情在表单中同样可以完成。

表单与页面的区别在于:表单可以用来收集信息。

表单提供了用于创建和显示文档的结构,而文档是数据库中保存数据的设计元素。

当用户向表单中填入信息并进行保存时,此信息就作为文档保存。

当用户打开该文档时,该文档将把该表单作为模板来提供显示数据的结构。

下面是设计表单的基本步骤:●要确定所需表单的用途和类型,应考虑:要收集的信息种类和需要的元素如何显示以及在何处显示结果文档,此文档要包含并显示收集的信息。

●创建表单●向表单中添加元素●命名表单●指定表单属性●在用户访问表单所使用的浏览器中预览和测试表单3.1.1 表单元素表单元素是用于创建表单外观和功能的组件。

同页面一样,表单可以包含:●文本文本通常用于标注域,以便用户了解每个域的用途。

●水平基准线添加水平基准线以分开表单的不同部分,或者用以增强表单的可视性。

●表格使用表格可以概括信息和使各个元素(例如:域和图形)按行或列排列。

如果在表单中放置了表格,那么通过该表单创建的每个文档都将显示该表格。

●区段区段是在表单中定义的可折叠和展开的区域。

其中可以包括域、对象、布局区域和文本。

存取受控制的区段只允许特定的用户编辑此区段中的域。

●图形如果在表单的任何位置放置了图形,则通过该表单创建的每个文档都将显示该图形。

例如:在用于通信的表单中,在表单上端放置公司标志就可以创建印有抬头的信笺。

●图像映射图像映射是使用可编程热点增强的图形,当用户单击这些热点时,可以执行一些操作。

在应用程序中通常把图像映射作为导航结构来使用。

●链接在表单中,可以添加到数据库、视图、特殊文档的链接,也可以添加打开Internet 页面的URL链接。

●自动功能表单操作、按钮或热点会自动执行简单或复杂的任务。

●小程序使用Java小程序在表单中包含小程序,例如,动画图标或独立的应用程序。

泛微OA【开发技巧】流程表单HTML扩展开发

泛微OA【开发技巧】流程表单HTML扩展开发

仅限阅读请勿传播当您阅读本方案时,即表示您同意不传播本方案的所有内容流程表单HTML设计器实现自定义控制表单元素的长度及其他常见需求实现案例版本目录1.说明难度:★★★☆☆预计时间:1小时涉及代码开发:有目标需求:此案例适用项目人员通过流程表单HTML设计器实现自定义控制表单元素的长度。

当不得不这么做的时候,请参考该方案进行适当调整。

可以按照客户要求对时间流程表单进行适当改造。

流程表单上面布局、校验、样式等功能可以jQuery的方式进行适当改造。

知识点:基本信息:背景知识:1、在阅读本教程之前,需具备html和JavaScript基本知识。

2、在阅读本教程之前,需具备jsp页面读写的基本能力。

最终效果:●通过流程表单HTML设计器实现自定义控制表单元素的长度●实现隐藏表单原始边框●实现表单元素未输入内容时悬浮提醒的效果●html签字节点格式调整(内容在左,署名在右)●html签字节点按时间排序并调整格式2.准备工作1、准备一台和正式环境一致操作系统的服务器。

3.(推荐)实现自主设置表单元素的长度将附件提供的上传到服务器的/css/width/目录下面。

css文件 .zip3.1.支持PC端及手机端HMTL模式流程表单(单个流程)1.在代码块中单个流程引入css样式文件<LINK href="/css/width/" type=text/css rel=STYLESHEET>如(如图1)。

(图1)2.在需要自主设置长度单元格式设置class 例如图2 里面的class w50 表示设置这个框子里面的input长度为50px。

如果设置为w100 则限制长度为100px,具体效果如图3(图2)(图3)3.2.HMTL模式流程引入样式文件(一劳永逸)1.新建流程界面流程引入css样式文件<LINK href="/css/width/" type=text/css rel=STYLESHEET>需要修改ecology/workflow/request/文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STORY TITLE
可编辑: 当文档是编辑状态时,用户可以编辑此域的信息,该域的可 编辑状态与文档相同。大部分域使用这种域,用于用户填写信息。
计算 : 该域类型在任何状态下都是不可编辑的,每次文档保存的时 候,该域都会根据公式进行值的计算,然后将计算结果写到到文档对 应的域值中,常用的。
显示时计算: 类似计算文本,当文档打开的时候,根据域中的公式现 去计算该域的值。注意一点,显示时计算域,在文档保存时,不保存 该域的真实值,永远是空,也就是说,你定义了一个显示时计算域, 则只能在前台使用,后台(代理等)无法使用这个域。
对于带有附加信息的查询,比如 HTTP POST 和 PUT,这是数据的内容类型。 服务器所遵守的 CGI 规范版本。 客户机接受的 MIME 类型,通过 HTTP 标题指定。 客户机接受的语言,通过 HTTP 标题指定。
HTTP_Referer
用户经常访问的页面的 URL 地址。
HTTPS
指示服务器是否启用 SSL 模式。
1.保存在文档中的表单 2.视图的表单公式决定的表单 3.创建文档的表单 4.数据库的缺省表单
12
表单 – 练习
STORY TITLE
创建一个表单, 1.添加文本域、复选框等类型的域,然后在浏览器上预览效果 2.在表单的事件中添加javascript方法,在浏览器上预览效果 3.在表单中写入html代码,并设置为内置html,然后在浏览器上预览效
4.Domino中的文档总是处于编辑模式或只读模式下。 url分别为: 只读模式:…/文档unid?openDocument 编辑模式:…/文档unid?editDocument
3
数据库概述
STORY TITLE
是一种文档型的数据库,所有数据和设计都存储在*.nsf文件中。 Domino DB中的内容 —.nsf (Notes Storage Facility) ACL 设计元素 数据元素

13
Domino中的CGI变量
STORY TITLE
CGI(公共网关接口) 是将外部应用程序与 HTTP 服务器连接的标准。
当 Web 用户保存文档或打开现有文档时,Domino Web 服务器使用 CGI 变量收集关于用 户的信息,包括用户姓名、浏览器和用户的 Internet 协议 (IP) 地址。 NotesSession对象的DocumentContext属性返回由Domino捕获的CGI变量值, DocumentConext返回一个NotesDocument对象,该文档中的条目名称和CGI变量名相同
当用户打开该文档时,将把该表单作为模板来提供显示数据的结构。 表单保存在创建它的数据库中,并且用来显示所有关联的文档。
当用户把文档邮递到另一个数据库,而此数据库不包含创建该文档所 用表单。在这种情况下,可以指定将表单保存在由此表单创建的每个 文档中。将表单存储在文档中将占用更多内存。
寻找显示文档的表单顺序
注释:
① 域是表单中用于收集、计算或是显示数据的部分。一个域接受信 息的类型必须被定义
② 每个域存储一种类型的信息,对于Note数据库中的一个文档,它是 由若干域组成的,
③文档中每个域中都存储了某种类型的数据。这里它和关系型数据库
中数据的存储模式很相似(记录-字段)
8
表单 –域的类型
7
表单 – 在表单中添加域
STORY TITLE
① 域是表单上存储数据的元素
② 域决定了一个独立的文档中能包含些什么数据
③ 文档里的每个域只能存储某一特定类型的数据,如文本、数字、 日期、用户名。
④ 数据通常由用户在域中输入的-可编辑;但有时数据是系统自动 填入的或修改的-通过计算域中的程序实现的。
4
表单
STORY TITLE
表单是一个domino应用的核心。
表单是数据库当中一种允许通过用户输入来收集数据的设计元素,用 户填写的数据会在保存之后,存储到数据库文档中。
表单同时又是一种显示存储在数据库中的文档的显示结构。也可以理 解为是一种文档的呈现方式,或是文档的显示结构。
表单可以只显示文档中的一部分域,也可以按用户希望的顺序排列域。
Domino 基本web开发
表单、视图及代理
Domino上web开发基础: STORY TITLE 数据库概述 表单 视图 代理 子表单 Script库
2
数据库概述
STORY TITLE
1. Domino的数据库是一个集数据与设计元素于一身的集合体。数据存 储在文档中。与关系型数据库不同,Domino数据库中不存在一个不可 见的与用户界面完全分离的“后台”。
发出请求的远程主机的 IP 地址。
Remote_Host
发出请求的主机名称。
Remote_Ident
此变量会设置为从服务器提取的远程用户名。仅登录时使用此变量。
Remote_User
返回被验证用户名的验证方法。
Request_Content Request_Method
仅由代理支持。包含使用 HTTP POST 请求发送的数据。此数据经常是“URL 编码 的”,由用“&”连接的 name=value 对组成。
表单的命名 ① 在同一个数据库中表单的名称必须是唯一的。 ② 表单名称可以包括(字符、空格、数字、标点)。 ③ 表单的名称区分大小写。 ④ 表单名(包括所有的同义名和层次名称)不能超过256字符。 ⑤ 表单名称的前 64 个字符显示在Notes菜单的“创建”菜单中。
6
表单 -表单中的设计元素
当你想通过Web来创建一个新文档时,你通过打开表单的URL命令打开 一个指定的表单。例如:
http://server/example.nsf/personInfo?OpenForm
5
表单
STORY TITLE
创建表单的方法: ① 从其他数据库中拷贝表单-要求对数据库的访问权限为设计者以上 ② 从头开始创建表单
14
域名
返回值
STORY
HTTPS_KEYSIZE
TITLE
SSL
会话过程中的会话密钥。例如:40-bit、128-bit。
Path_Translated Query_String
服务器提供 PATH_INFO 的翻译版本,它获得路径并能对其进行从虚拟地址到物理 地址的任何映射。
? 后的信息,或在某些情况下是引用此 Script. 的 URL 中位于 !* 后的信息。
用于发出请求的方法。对于 HTTP,是“GET”、“HEAD”、“POST” 等等。
Server_Name
服务器的宿主名称、DNS 别名或 IP 地址,将出现在自引用的 URL 中。
Server_Port
发送请求的端口。
Server_Protocol
与请求同时出现的信息协议的名称和修订。
15
STORY TITLE 16
Query_String_Deco ded
Remote_Addr
返回值与 Query_String 相同,但是将字符串解码。例如:如果 URL 引用了一个包 含不允许出现在 URL 中的字符的视图名称,此名称会被编码。此 CGI 变量将字符 串解码。Path_Info_Decoded 仅对于 Domino 应用程序可用。
10
表单-特殊用途的模版表单
STORY TITLE
$$View Template Default
假设你的Domino数据库包含20个不同的视图,而你想让他们具有一致 的风格,你可以创建一个$$ViewTemplate表单,并做19份拷贝,每一 个对应一个视图,但这会非常费时。相反,你可以创建一个简单的表 单,用来显示数据库内的任何视图,仅仅只须给表单命名为 $$ViewTemplateDefault.
域名
ห้องสมุดไป่ตู้返回值
Auth_Type
如果服务器支持用户验证而且 Script. 被保护,这是用于校验用户的特定协议的验证 方法。
Content_Length 内容的长度,与客户机给出的相同。
Content_Type Gateway_Interface HTTP_Accept HTTP_Accept_lan guage
STORY TITLE
域(域的数据类型,类型,隐藏公式) 计算文本 使用热点及按钮 在表单内使用H T M L WebQueryOpen和WebQuerySave 在表单中使用CGI变量,如:Query_String_Decoded,Remote_Addr
,Server_Name等
当你创建这种$$ViewTemplate表单时,嵌入一个视图元素(或 $$ViewBody域),而不必指定一个特殊的视图。
11
表单和文档的关系
STORY TITLE
当用户创建表单并向其中填写信息后进行保存时,此信息就作为文档 保存。注意:用表单创建文档后,表单的名称会存储在文档中的 “form”域内。
2. Domino的数据库不能像关系型数据库一样,直接在nsf数据库里使用 像SQL一样的语句,来创建,检索,更新,删除数据。但是也不像关 系型数据库每条记录(文档)都要有非常严格的表结构,Domino数据 库中的文档可以随意增加域、增加附件等。
3.Domino的应用程序就是数据库。文档相当于关系数据库中的记录; 视图相当于关系数据库中的表;表单上的域相当于关系数据库中的字 段。
STORY TITLE
$$ViewTemplate
你可以让Domino总是使用一个表单来显示一个特殊的视图。为此,给 此视图命名为:
$$ViewTemplate for viewname
在此,viewname是视图的名字或别名。例如,一个用来显示All by Data 视图的表单可以 命名为$ $ Vi e w Template for All by Date。 当你创建这种包含有$ $ViewTemplate的类型的表单时,你必须在表单 中嵌入视图本身 (或者,你也可以包含一个名为$ $ Vi e w B o d y的域 来替换嵌入的视图)。
相关文档
最新文档