下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 第8章在Web中使用视图

第8章在Web中使用视图.doc

第8章在Web中使用视图

zhengguangchuan
2013-11-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《第8章在Web中使用视图doc》,可适用于IT/计算机领域

第章在Web中使用视图第章在Web中使用视图关于视图视图和Web在视图的Web化中使用公式使用视图图标创建视图操作按钮使用单个分类视图在视图中使用html通用文本改变视图的格式改变视图连接的动作在表单中使用视图在表单中嵌入视图创建视图模板在Web视图中同时删除多个文档关于视图就像表单是Notes输入数据的主要组成部分一样视图是Notes查看信息的主要组成部分。在一个Notes视图中每行代表一个文档一列代表文档中的一个域或由文档提供的信息计算的值。一列也可以就是与文档无关而只是为视图的某种目的服务的一个静态文本或一个固定数字。以用户的观点视图的主要功能是为每个文档显示足够多的信息以便用户识别它并且允许用户在视图中打开文档有时你还可以看到文档组的摘要信息比如总计或平均值。但是对于开发者来说你应该了解关于视图的更多的信息:·访问限制:你可以定义一个访问列表规定谁可以打开一个特定的视图。注意这不是一个真正的安全功能因为它不能阻止用户自己打开某个文档。·以层次结构显示主文档和答复文档:你可以创建一个包含主文档答复文档答复的答复文档的视图并以层次结构显示它在讨论数据库中就是根据这样的思路显示的。·自动展开和折叠分类:你可以决定当用户第一次打开视图时视图中的分类应该是展开的还是折叠的。·创建一个多行的文档:你可以允许每个文档包含多行对于长标题行或多值域来说非常有用。·创建视图操作:你可以创建一个视图操作执行普通操作任务(如显示一个帮助文档)或在视图的一个或多个文档的操作。·以日历形式显示一个视图:对于一个对日期或时间很敏感的视图来说将其显示为日历形式是很有帮助的。视图还被用来进行全文搜索当用户对数据库进行全文搜索的时候是在搜索一个特别的视图而非真正对数据库进行全文搜索。接下来我们讲解如何为视图添加一些在Web中使用的功能。视图和Web默认情况下Domino把视图转换为HTML表并提供一个标准的操作比如搜索或展开。如果视图被分类Domino显示一个三角标志单击三角标志把该分类展开。我们可以通过视图的属性设置视图在Web中的显示方式。图表视图的Web访问属性有三种方式:·将视图内容作为Html·在浏览器中使用小程序·取消所有选项如果在浏览器中使用小程序那么显示方式如下使用方式和在Notes客户端中没有多大的区别。图表使用Java小程序显示视图Domino可以把大量Notes视图形式的功能转换为HTML形式。被包含在Domino表单中的格式属性同样可以包含在视图中。例如如果你在Notes中把列的属性设置为加粗斜体居中则Domino将以这些特性显示这些列。Domino还提供一个重要的格式化功能:在表单中嵌入一个视图你可以使用这种功能修饰显示视图的页面的外观增加一些环绕的图形或其他元素或者一个用户可以输入搜索请求的域。后面对视图的主要使用方式是把视图嵌入在表单中。在视图的Web化中使用公式视图的选择公式决定在视图中将包含那些文档视图的列公式决定视图列的内容视图的表单公式决定打开视图中的文档使用的表单。这些公式都可以在Web中使用无需任何修改。使用视图图标在设计视图时为了达到比较好的视觉效果可以把视图的某列设置位显示图标这一特性在Web中被支持。如果用户使用的是Domino提供的图形那么在列公式中请返回一个图像的编号。图表在视图列显示图标如果用户使用的图标Domino没有提供那么用户需自己在数据库中创建图像资源在视图的列公式中返回图像资源的名称。创建视图操作按钮我们可以在Web中使用视图操作按钮默认情况下在Domino的Web视图上没有所谓的“选定”或“当前”文档。因此你不能创建某个在视图的选定文档上运行的操作也不能使用和用户交互的公式。尽管Domino不支持直接使用LotusScript的操作但是它可以在操作中使用Command(ToolsRunMacro)运行一个LotusScript代理。当然这个代理只可以使用Web支持的LotusScript功能。例如不能在Domino视图中创建一个按钮使用NotesUIWorkspaceDialogBox方法显示一个对话框。所有的前端LotusScript对象不能使用。默认情况下Domino的操作按钮被转换为DominoURL。如果它不能被转换为URL按钮不能被显示。下表是转换示例:公式URL命令Command(Compose"InfoContentForm")http:serverdbfabbdbfedOpenForm(注表单名称“InfoContentForm”被转换成了唯一ID)Command(ViewShowSearchBar)http:serverdbviewname$searchFormSearchViewPrompt(OK"Hello""Hellothere!")不转换如果使用缺省方式在浏览器中打开视图则显示如下:图表使用缺省的Web方式显示视图在视图的上部和下部分别多了个操作:上一页下一页展开折叠搜索。这些操作是Domino自动产生的在浏览器中表示为链接即DominoURL命令。图表常用的视图导航操作操作URL命令上一页dbviewIDOpenViewStart=下一页dbviewIDOpenViewStart=x(x等于本页的起始数加上本页的行数)展开dbviewIDOpenViewExpandView折叠dbviewIDOpenViewCollapseView搜索dbviewID$searchFormSearchView但是如果把表单嵌入到视图中显示这些操作就不会显示但我们可以自己创建我们需要的操作为自定义用户界面提供了重要的途径。图表把视图嵌入在表单中下面我们就在表单中增加这些操作在浏览器中得显示如下图:图表通用视图导航条操作命令上一页DbCommand("Domino""ViewPreviousPage")下一页DbCommand("Domino""ViewNextPage")第一页Command(OpenViewViewTitle)最后一页DbCommand("Domino""EndView")全部展开Command(ViewExpandAll)全部折叠Command(ViewCollapseAll)搜索Command(ViewShowSearchBar)图表使用了导航条的Web视图这个界面看上去更整洁美观。总之把视图嵌入到表单中为我们定制界面提供了方便。使用单个分类视图在R以后的版本中新增加了可以嵌入视图的单个分类。使用这个功能你可以开发单个分类的视图使其根据用户或某些其他准则动态处理数据。它的运行原理是这样的。在一个表单或一个页面中嵌入一个视图并为它指定一个单个分类的公式当视图被打开的时候Domino执行公式并只显示属于这个分类的文档。例如如果你有一个视图以用户名分类指定如下公式可只显示当前用户的文档:Usernames如果你想得到更灵活的结果可以根据打开视图的URL的参数决定类别。设有如下URL:Http:ServerDbnsfStudentInfo?OpenFormview=StudentTestViewForWebcategory=这个URL传递了两个参数view=StudentTestViewForWebcategory=(学号)在嵌入视图公式中使用UrlQueryString函数分别获取这两个参数的值就可以动态显示视图和分类。图表单个分类视图“显示单个分类”的公式如果设置为“*”则显示所有分类。在视图中使用html通用文本简单的说Html通用文本就是用“”括起来的文本Domino把它当作Html源代码。可以在视图的几个地方使用通用文本:·改变视图的格式。·显示Java小应用程序和图像。·改变一个视图连接的动作。·在行的基础上使用JavaScript。改变视图的格式改变视图的格式分为两部分:改变视图的整体显示方式和某一列的显示方式。.改变视图的整体风格在不使用小程序的情况下视图的显示方式如下:视图的内容以表格的形式显示但是没有表格线有的时候为了便于查看需要给视图加上表格线。可以在视图的第一列使用Html通用文本:<table><tableborder=""cellspacing=""cellpadding=""bordercolor=#CCC><tr><th>图表视图列使用Html通用文本在浏览器中的显示风格如下:.改变行的格式有时为了突出显示某些行需要为其使用特别的颜色那么可以在列公式中返回html通用文本。假如想把状态不“正常”的文档的姓名显示为红色可以在“姓名”列中使用下面的公式:If(StuStatus!="正常""<fontcolor=#FF>"stuName"<font>"stuName)图表改变行的颜色改变视图连接的动作一般情况下在视图上单击链接会打开相应的文档但我们可以使用Html通用文本改变视图的链接动作。在第一列中使用html通用文本显示一个对话框图表改变视图的链接动作这一列的公式如下:"<ahref=JavaScript:alert("学生"stuname"的文档状态是'"stustatus"'")>"stuno"<a>"还可以通过列的属性设置视图的链接:图表设置列的链接为了创建一个不包含连接的视图创建一个列设置列的属性为“将此列的值显示为链接”并把这个列设置为隐藏。可以使用类似的方法改变一个视图连接的动作。例如可以:·创建一个视图在视图中每个文档代表一个代理单击代理名将运行这个代理。·创建一个视图在视图中每个文档代表一个查询单击查询名将执行这个查询。·创建一个视图视图的每个<AHERF>标签的TARGET属性被设置为”Blank”使每个文档都可以打开一个分离的窗口。只要你拥有一点关于HTML标签的知识和想象力可能性是无限的。在表单中使用视图有几种方式可创建并使用表单显示视图:·创建一个包含内嵌的视图的表单。·创建一个表单并使它总是显示特定的视图。·创建一个表单用来作为显示所有视图的默认表单在表单中嵌入视图最为直接的把视图和表单联系在一起的方法是简单地创建一个表单并在其中插入一个内嵌式视图元素。当你使用OpenFormURL在Web浏览器中显示表单嵌入的视图与其他表单中的元素如Submit按钮同样被显示在浏览器中。并且可以设置嵌入视图的属性。图表嵌入视图的显示方式另外一个在表单中嵌入视图的方法是创建一个名为$$ViewBody的域它的默认值是视图的名字。创建视图模板.独立模板在表单中显示视图的另外一种方法是使用一个视图模板可以为某个独立的视图创建一个模板或为所有的视图创建一个默认的模板。创建独立模板的方法是把表单的名字命为:$ViewTemplateforViewNameViewName是视图的名字或者别名对于StudentList视图创建的表单模板名称为:$ViewTemplateforStudentList在表单中既可以插入一个嵌入式视图元素也可以插入一个名为$$ViewBody的域并在域中显示你想显示的视图内容。.默认的视图模板有时视图比较多我们不可能单独为所有的视图创建独立的模板。希望所有的视图用同一的风格和外观可以创建一个显示数据库中所有视图的表单名称为:$ViewTemplate在表单中运行下面两个动作之一:·插入一个嵌入式视图元素在公式中使用空字符串("")代表视图名称。·插入一个名为$$ViewBody的域名但是不指定一个特定的值。如果同时存在独立模板和默认模板那么先使用独立模板。在Web视图中同时删除多个文档当我们在Notes中使用视图时可以选择多个文档并删除当我们在Web中显示视图的时候Domino没有直接提供选择文档和删除文档的操作我们需要自己创建。基本原理是我们创建一个表单用户可以在表单中输入文档的ID收集到这些ID后使用表单操作调用代理根据文档的ID把文档从数据库中删除。在“IBM认证系统”中表单“InfoListViewForm”中嵌入了视图“InfoListForWebOnTop”在视图中使用Html通用文本在某一列创建了一个复选框:"<inputtype="checkbox"name="noteids"value=""Text(DocumentUniqueID)"">"在浏览器中每一行产生类似如下的值:<inputtype="checkbox"name="noteids"value="BEBBADCE">图表在Web视图中选择多个文档为了当表单被提交的时候Domino处理复选框InfoListViewForm表单必须有一个和复选框同名的域:noteids。把这个域设为隐藏并允许多值在表单的属性中取消“产生所有域的html”。在提交表单的时这个域搜集所有选中文档的ID。在表单中还需创建两个域:pathinfo和SaveOptions。pathinfo是一个CGI变量存储当前页面的路径信息在表单提交后还可以返回本页面。在提交表单时会创建文档这里我们只是收集数据并不保存文档所以设置SaveOptions的值为。要提交表单需要创建一个“保存”按钮:Command(FileSave)Command(FileCloseWindow)。然后在WebQuerySave中使用ToolsRunMacro调用代理删除文档。但我们在这里创建一个表单操作“删除”在操作中直接使用ToolsRunMacro调用代理删除文档。一定要记住执行表单操作也可以触发表单提交但是不保存文档即使没有SaveOptions域。图表创建删除多个文档的代理操作调用了代理“cleandoc”。其代码如下:SubInitialize'OnErrorResumeNextOnErrorGotoErrhandleDimsessionAsNewNotesSessionDimdoc,noteAsNotesDocumentDimdbAsnotesdatabaseDimiAsIntegerDimfoldername,dbpathAsStringSetdb=sessioncurrentdatabasedbpath=dbfilepathSetdoc=SessionDocumentContextIfdocnoteids()=""ThenPrint""dbpath"messageboxformopenformmessage=请选择要删除的文档!"ExitSubEndIfForallNoteunIDIndocnoteidsIfnoteunid<>""ThenSetnote=DbGetDocumentbyunID(NoteunID)IfNot(noteIsNothing)ThenCallnoteRemove(True)EndIfEndIfEndForallPrint""docpathinfo()""ExitSubErrhandle:Print"行号:"Erl()"  错误号:"Err()"  错误内容:"Error()ExitSubEndSub代理中使用了一个Forall语句遍历Noteids域中的值调用NotesDocument的remove方法删除文档。删除完成后使用Print""docpathinfo()""把浏览器重定向到调用页面。表单的删除操作在Web中被转换成下面的html:<ahref=""onclick="returndoClick('ADecafa$VACTIONS',this,)"target="self">调用了一个doClick()函数这个函数的代码如下:functiondoClick(v,o,t,h){varform=documentInfoListViewFormif(formonsubmit){varretVal=formonsubmit()if(typeofretVal=="boolean"retVal==false)returnfalse}vartarget=documentdominotargetif(ohref!=){if(otarget!=)target=otarget}else{if(t!=)target=t}formtarget=targetformClickvalue=vif(h!=)formaction=hformsubmit()returnfalse}在代码的最后调用了一个表单提交函数:formsubmit()完成了表单提交过程。图表视图的Web访问属性图表使用Java小程序显示视图图表在视图列显示图标图表使用缺省的Web方式显示视图图表常用的视图导航操作图表把视图嵌入在表单中图表通用视图导航条图表使用了导航条的Web视图图表单个分类视图图表视图列使用Html通用文本图表改变行的颜色图表改变视图的链接动作图表设置列的链接图表嵌入视图的显示方式图表在Web视图中选择多个文档图表创建删除多个文档的代理

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/14

第8章在Web中使用视图

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利