關於js讀取rtf域的問題

來源:互聯網
上載者:User

一、基礎知識:

1、常用ASCII碼知識:

chr(9)、chr(10)、chr(13)、chr(32)、chr(34)
所有關於 ASCII碼的表格:[url]http://www.asciitable.com/

chr(13) 是一個斷行符號
Chr(10) 是個分行符號
chr(32) 是一個空格符
9/34 是tab,未確定?

2、lotus notes中的rtf域

GetFormattedText(tabstrip, lineLength% )

eg:GetFormattedText(false,0),對rtf域值中的tab不進行處理,並且預設80個字元換行。

我們常用如下代碼的方式來讀取rtf域的值

Dim doc As NotesDocument
Dim rtitem As Variant
Dim plainText As String
Dim fileNum As Integer
'...set value of doc...
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
  plainText = rtitem.GetFormattedText( False, 0 )
End If

二、遇到的問題

今天在讀取rtf域的值,並通過js代碼讀取到excel中的時候報錯:“未結束的字串常量”。

相關代理中的代碼如下:

Print |<script language="Javascript">|
    Print |alert("|+doc.rtfDecription+|");|
    Print |</script>|

其中rtfDecription 為rtf域。

當此域中的值為簡單的文本(eg,123,dsa)時,不存在這種問題。當域值包含換行等字元的時候,就會報錯“未結束的字串常量”。

三、處理辦法

以下範例程式碼針對相關字元(斷行符號和換行)進行處理。

Sub Initialize
    On Error Goto errHandler
    Dim s As NotesSession
    Dim doc As NotesDocument
    Set s = New NotesSession
    Set doc = s.DocumentContext
    Dim rtitem As Variant
    Dim plainText As String
    Dim vTextArea As Variant
    Set rtitem=doc.GetFirstItem("wahaha")
    If ( rtitem.Type = RICHTEXT ) Then
        plainText = rtitem.GetFormattedText( False, 0 )
    End If
    Dim strTemp As String
    If (Instr(plainText,Chr(13))>0) Then
        vTextArea = Split(plainText,Chr(13))
        strTemp =""
        strTemp = Join(vTextArea," ")
    End If       
    If (Instr(strTemp,Chr(10))>0) Then
        vTextArea = Split(strTemp,Chr(10))
        strTemp =""
        strTemp = Join(vTextArea," ")
    End If       
    'Method 2
    'vTextArea = Evaluate(|@ReplaceSubstring(@Text(wahaha);@NewLine;" ")|,doc)
    'Msgbox vTextArea(0)
    Print |<script language="Javascript">|
    Print |alert("|+strTemp+|");|
    Print |</script>|
    Exit Sub
errHandler:
    Msgbox Error & Error$ & Cstr(Erl)
    Exit Sub
End Sub

輸入值:abc

def

afs

輸出值:abc def afs

四、總結

前台代碼(js代碼)和後台代碼(LotusScript、java)盡量分開寫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.