我和domino不得不说的故事(连载2016-3-2)
1、关于NotesViewEntry
注意:通过NotesViewEntry获取某列的值时,若该列的值为@IsExpandable or @DocNumber 或者是常量时,将不会显示。
Set entry = view.GetEntryByKey("Sports car", False)
Messagebox entry.ColumnValues(0),, "Column 1"
帮助文档的解释:
A column value is not returned if it is determined by:
A formula containing a UI-only function such as @IsExpandable or @DocNumber.
A constant.
结论:要多看帮助文档,上面都有。苦逼的新人啊!
2、关于在domino中导出Excel
2.1)按照视图导出Excel时,某列常量没有导出来。
解决方法:在常量后面加一个不存在的变量。如:“11”+a; "a"+a
2.2)按照视图导出Excel时,某列数值为编号,前面为0,如021、089等等,却没有显示出来。即导出时丢失了前面的0。
解决方法:代理中写入数据的位置,在数据的左边或右边添加一个 即可。
提示:该代理为domino的lotusscript语言所写,通过table格式所写的excel导出代理。具体的代码,可以在这里看:
3、通过java代理从Oracle 11g中取数据,在domino中引入java代理,打印到页面,也可以将这些数据导出到Excel。这个问题以前出过,然后不知道怎么被我调试好了。这次因为电脑奔溃重装了Domino Server,数据是原来的不变,java代理的编码也没变,Eclipse是完全拷贝到机子的,Domino的表单也没变。但是,直接写在代理中的中文,在输出到页面后,通通变成了乱码。
在我将domino 服务端的Domino Server 修改后,从java代理输出到页面的所有数据都成了乱码。
另外,导致js提示也为乱码,究其原因,乃是因为js文件本身编码的问题。因为当前的Domino编码为UTF-8,而这份文件编码却为GB2312。将这份文件转成gbk,复制到记事本中,再将该文件另存为utf-8格式,最后上传替换原来的文件,即可。
最后,我想起打印出来的数据的编码设置,将它从utf-8改为gb2312,从Oracle获取的数据中中文乱码消失。
4、有个客户需要从Domino系统通过web Service 接口拿走数据。乍听之下,不知所云。问了做过的同事,一时也未能说清楚。于是,只好向度娘打听打听。可以注意看看文章后面的评论,以及博主的回答,还会另有些收获的。
在Domino85中调用Web Service
http://windindream.blog.163.com/blog/static/4935919201011285263783/
Domino8.5中发布Web Service
http://windindream.blog.163.com/blog/static/493591920101128423493/
需要注意的是:
1、因为客户的接口是用java编写的,在domino designer 通过WSDL文件在web service获取到这些.java。不知是不是domino的问题,在designer端获得的客户.java代码是被编译过的,客户给的方法,全部都变成了.java类。
这个时候,需要在.java文件中找到两个重要的接口。
第一个是,XXXXLocator,以Locator结尾,这个类应该是domino解析时,作为所有方法的总接口。
第二个是,客户通过webService传过来的接口,在WSDL中可以找到。
大家可以通过下面的图了解一下:
1
2
3
|
WebserviceCommonserviceLocator comLoc = new WebserviceCommonserviceLocator(); ICommon ic = comLoc.getCommonImplPort(); ic.方法 |
5、关于domino中引用js的问题
js文件在数据库的资源文件中,在html首页内容中引用时,src='test.js'。
在表单中引用,<script type = "text/javascript" src = "test.js"></script>
在lotusscript中引用:print 'alert(1111)'
6、如何在domino视图中写html代码。
将代码用[]包住即可。
例如:“[<input name='gdCheck' type='text' value=”+unid+"'></input>]"
7、关于Domino数据库中js文件编码的问题
描述:在做项目的时候,将公用的js方法放到js文件里面,方便调用。但是,在进行迁移后,再次对js文件中的js方法进行修改,保存之后,发现应用中调用该方法出错了,该js文件中的方法全部无法调用。
经检查,发现如下情况:
1)修改保存后,再次打开js文件,中文显示为乱码。
2)打开js文件,设置当前文本文件编码为gb2312后,代码显示正常。保存时,会提示编码有问题。(菜单“编辑”-->设置编码-->)
3)将js文件中的内容通过记事本转为utf-8编码,然后复制到,js文件中,问题依旧。
4)将编码为utf-8编码的js文件直接导入,问题依旧。
结论:当前数据库的编码有问题。因为每次只要不对js文件进行改动、保存,那么就不会有乱码的问题。很明显,保存的时候,数据库自动将js文件的编码转换了。找了半天没找到到底在哪里进行修改,通过请教公司高手后,找到了菜单“项目”-->属性-->资源-->文本文件编码,默认为gb18030。
解决方案:
1)首先修改数据库的资源-->文本文件编码,将编码改为utf-8。这样每次保存时,js文件就会为自动变成utf-8编码。
2)将所有的js文件通过记事本,把编码转成utf-8,然后再导入进来。
3)测试。
8、通过webService将Domino文档中的附件传送给一个Java系统,结果当在XP环境下的时候没有问题。但是,在AIX环境下的时候报错。
描述:关于这个接口,由我们从OA中提取文档内容(包括附件、正文、域值),然后调用对方提供的方法,将这些内容传送给对方。他们的传送方式是,首先将附件转换成字节流,然后将所有的附件打包成一个对象,作为参数进行传送;而正文则只是转换成字节流,作为参数进行传送;域值则挑选重要的进行传送。结果在XP环境中测试没有问题,开始时报过“OutOfMemoryError”的问题,配置JavaMaxHeapSize以后解决了问题。但是在AIX环境中却总是不行,而且一直在报内存不够的问题。
目前报的错误,如下图:
现在就卡在这里。
这个链接是别人总结的JVM异常处理办法:http://blog.csdn.net/zys5212/article/details/7046066
备注:
目前这个问题已经解决。我们的解决方案是,将附件转成文件流以后,放到集合里面,这样就可以避免出现内存溢出错误。但是,当附件达到100M左右的时候,依旧还是会报内存溢出错误。(JavaMaxHeapSize设置的是1G)
9、关于lotus Domino复杂查询
描述:有关Domino查询的资料在网上也能找到一些,我这里主要记录一下复杂查询。复杂查询也就是db.Search(formula)。
formula="form=\"fFaWen\""
数值类型:"& @texttonumber(num)=>"+num2
文本类型:“&@contains("";"")”
日期类型:“&@texttotime(riqi)>=@texttotime("2011-09-09")”
10、Error: ...'WAITING FOR READ LOCK ON FRWSEM'...‘FOR 30000 ms’...
描述:这个问题遇到过两次,前面一次找了很久没找到怎么解决,后面这次似乎在重启Domino Server后提示就没出现。在网上找了下解决方法,如下链接:
在note.ini中增加参数:SCHEDULE_NO_CALCSTATS=1.
http://www-01.ibm.com/support/docview.wss?uid=swg21315806
11、登录表单原来是通过action提交的,后来直接通过按钮调用代理提交到后台代理进行处理。但是,发现代理中无法取到当前表单中录入的值。若是默认值,没有问题。
描述:.几经折腾,发现原来是表单的最上方,有一个标签</form>。当调用按钮提交到代理的时候,页面默认<form>以外的内容(包括域)都不属于此次提交的内容。所以,我们在提交的时候,JS显示有内容。但是,代理中根本无法获取最新的域值。
以前的表单可以,主要是因为,他们直接写了一个新的form包裹住了需要提交的内容。而我在修改的时候,不再使用action这种方式,而是以整个表单的形式提交,表单会找到第一个form就会直接进行处理了。
这个</form>之前我是有发现的,但是没有搞清楚它的作用没删除。结果,浪费了大把时间。
我和domino不得不说的故事(连载2016-3-2)的更多相关文章
- 与《YII框架》不得不说的故事—5篇目录
与<YII框架>不得不说的故事—基础篇 第1章 课程目标 1-1 课程目标 (00:54) 第2章 课前知识准备 2-1 YII的启动和安装 (05:12) 2-2 YII请求处理流程 ( ...
- 【征文】Hadoop十周年特别策划——我与Hadoop不得不说的故事
2016年是Hadoop的十周年生日,在今年,CSDN将以技术和实战为主题与大家共同为Hadoop庆生.其主要内容包含Hadoop专业词典.系列视频技术解析.Hadoop行业实践.线上问答.线下沙龙. ...
- asList和ArrayList不得不说的故事
目录 简介 创建ArrayList UnsupportedOperationException asList 转换 总结 asList和ArrayList不得不说的故事 简介 提到集合类,ArrayL ...
- 微信、QQ和手机号之间不得不说的故事!
发文字,发图片,发心情,视频聊天,查看附近的人,微信能干的事情QQ都可以,那么它们有什么区别,我QQ用得好好的为什么要我联系人都导到微信去?我们很早就有了QQ,但是在QQ时代,我们虽然用QQ发消息聊天 ...
- Visual Studio 20周年,我和VS不得不说的故事(内含福利)
Visual Studio 2017正式版已如期发布(点击这里查看发布全记录)!自去年 11 月正式宣布 Visual Studio 项目之后,微软终于正式推出了“宇宙最强集成开发环境(IDE)”的最 ...
- 【Hadoop 10周年】我与Hadoop不得不说的故事
什么是Hadoop 今年是2016年,是hadoop十岁的生日,穿越时间和空间,跟她说一声生日快乐,二千零八年一月二十八号,是一个特别的日子,hadoop带着第一声啼哭,来到了这个世界, ...
- Visual Studio 20周年,我和VS不得不说的故事
Visual Studio 2017正式版已如期发布(点击这里查看发布全记录)!自去年 11 月正式宣布 Visual Studio 项目之后,微软终于正式推出了“宇宙最强集成开发环境(IDE)”的最 ...
- CSS absolute与relative不得不说的故事
写在开篇: absolute说:“relative,我这辈子都不想看见你!” 为什么呢?它们明明那么相亲相爱,形影不离,这之中到底发生了什么不为人知的故事,竟然让absolute如此讨厌relativ ...
- 关于Puppet不得不说的故事
Puppet对于做DevOps的同学来说,是个熟悉的名字,但仍有许多人并不了解它.那么我先来简单介绍一下:Puppet是由Puppetlabs公司开发的系统管理框架和工具集,被用于IT服务的自动化管理 ...
随机推荐
- Classloader机制
1.概述? 类加载器:负责.class文件加载到内存中,并为之生成对应的Class对象,也就是字节码对象.这样就可以使用这个类中的成员变量和方法了.而被加载到内存中的class文件就会变成class对 ...
- 用简单的反射优化代码(动态web项目)
在动态web项目中,没有使用框架时,只是简单的jsp访问servlet实现增删改查, 无论是哪个方法都需要经过Servlet中的doGet()方法或doPost()方法,我们可以在链接中附带参数进行区 ...
- Windows下MetaMap工具安装
Windows下MetaMap工具安装 一.Main MetaMap安装 Prerequisties 12G磁盘空间 JAVA6 or newer JRE or SDK installed Downl ...
- android、ipone在文本框中输入文字的不同
1.android机会输入时会在键盘上先显示,你确定后再填充如文本框 2.ipone机是你输入时就直接填充到文本框,当你选择输入信息时,就会先把文本框的内容清空,在填充选择的文字,这时就会有个问题,如 ...
- NSRegularExpression iOS自带的正则表达式
以前做验证邮箱,电话号码的时候通常用第三方的正则表达式或者NSPredicate(点这里查看以前的文章),在后期,苹果推出了自己的正则表达式来提供给开发者调用,很方便,功能也强大. 具体可以查看官方文 ...
- IOS开发--解析复杂json数据
json的自我介绍:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...
- Maven基础配置
重要网址 Maven主页:http://maven.apache.org/ Maven central repository:http://search.maven.org/ Maven aliyun ...
- java异常中的finally(二)
对于含有return语句的情况,这里我们可以简单地总结如下: try语句在返回前,将其他所有的操作执行完,保留好要返回的值,而后转入执行finally中的语句,而后分为以下三种情况: 情况一:如果fi ...
- SQL之merge into(转)
简介 Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:”根 ...
- QT Creator引用win32 api类库方法(.lib)
由于Qt Creator使用的是mingW进行程序编译,该编译方式无法识别#pragma comment(lib,"lib\\hvdailt.lib")引用. 所以需要在.Pro文 ...