rtf域在b/s下的一些使用技巧(可用分比较多,散点分)

xaser 2005-01-29 03:11:36
根据网络上的一些资料以及个人使用的经验,总结一些rtf域的特性供各位参考:
1、 使用rtf域在b/s上存储内容突破域大小限制的问题。
很多时候,存储超过64k的限制,在这个时候:
错误的代码:
String s = “html 内容” ;
s += “….”;
s+= “……”;
doc.replaceItemValue(“ItemName”,s);

正确的代码:
RichTextItem rtf = (RichTextItem) doc.getFirstItem(“ItemName”);
rtf.appendText(“html 内容”);
rtf.apendText(“………..”);

在domino中,如果内容超过限制,domino 会自动在文档中生成多个同名域来存储相关内容。

2、 使用rtf域显示随机生成的html代码:
首先:要确定,超过64k的时候一定要使用第一点所表述的方法。
其次:如果在页面上没有正确的显示html代码所描述的界面,而是将html代码显示出来,解决方法如下:
A、 如果存在循环
for(int i=0;i<n;i++){
rtf.apendText(“[”);
…………….
循环主体
…………….
rtf.apendText(“]”);
}

B、 如果还未解决问题,可以使用如下代码(未经实际验证,后果自负)

Dim richStyle
As NotesRichTextStyle
Set richStyle = session.CreateRichTextStyle
Call cdoc.RemoveItem( "Body" )
Dim myrichText As New NotesRichTextItem(cdoc, "Body")
richStyle.PassThruHTML = True
Call myrichText.AppendStyle(richStyle)
Call myrichText.AppendText(getHtml)


说明:上面所讲的内容包括使用lotusscript或者java。请自行根据所用语言进行相应转换。
...全文
441 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
zleeway 2005-02-04
  • 打赏
  • 举报
回复
rtf的超过64k的问题,其实就是domino后台会自动生成多个同名域,每个大概放62k的内容
如果使用doc.myrtf(0)取出来的,就是那些同名域的第一个内容,所以内容不全.
要用rtitem.getFormattedText(false, 0)取出内容
zwhIvan 2005-02-04
  • 打赏
  • 举报
回复
学习ing!
zleeway(杂草)兄,rtf域也可以用doc.myrtf(0)来取值吗?
kingchang2000 2005-02-03
  • 打赏
  • 举报
回复
要说bs上设置html内容,一般是使用rtf域,但是,如果字符串内容太大的话,性能实在是吃不消,我曾经写了一个table,有3000行,50列吧,是数据库搜索内容的代理,你知道光这个appendtext方法用了多少时间吗?不敢说了,呵呵。
wfifi 2005-02-03
  • 打赏
  • 举报
回复
控制富文本有相关lotus script类,一般以NotesRich...开头的
zclsq 2005-02-03
  • 打赏
  • 举报
回复
学习!
yongkyoko 2005-02-03
  • 打赏
  • 举报
回复
xiexie
dj2267239 2005-02-03
  • 打赏
  • 举报
回复
過年了 我也來湊湊熱腦 呵呵......^_^
UP>>>>>>>>>>>>>>>
jenfier 2005-02-03
  • 打赏
  • 举报
回复
赞楼主一个~
学习来了
hbyelang 2005-02-03
  • 打赏
  • 举报
回复
学习一下!!
chenmengliang 2005-02-03
  • 打赏
  • 举报
回复
学习,up ^_^
duchx 2005-02-02
  • 打赏
  • 举报
回复
也来接分!
H_264 2005-02-02
  • 打赏
  • 举报
回复
dim nSelc as Integer
dim nAll as integer

nSelc = 30000

nAll = Mod(Len(strContent)/nSelc) + 1

for 1 to nAll
call rtMyrichitem.AppendText(Left(strContent, nSelc))
strContent = Mid$(strContent, nSelc)
next

本代码是未经测试的,我评印象写的,代码的意思是分批次的将一个超大的字符串(一般是动态生成)写入一个richtext域,我们是以30000为循环界限额。

showhigh 2005-02-02
  • 打赏
  • 举报
回复
我是来学习的
gdut2004 2005-02-02
  • 打赏
  • 举报
回复
学习学习
kelvin-w 2005-02-02
  • 打赏
  • 举报
回复
学到东东,赞,顺便接分
yaorong 2005-02-01
  • 打赏
  • 举报
回复
也来接分!
destiny0714 2005-02-01
  • 打赏
  • 举报
回复
学习ing>>>>>
mice_215 2005-01-31
  • 打赏
  • 举报
回复
呵呵,谢谢了
FANGHAONO1 2005-01-31
  • 打赏
  • 举报
回复
一起学习
ylj718 2005-01-31
  • 打赏
  • 举报
回复
up
加载更多回复(8)

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧