2016-11-24 4 views
0

У меня возникла проблема с заполнением таблицы при использовании SSJS на моем xPage.Создание и заполнение таблицы с использованием Javascript в xPages

код, я использую для создания, а затем перейдите к таблице

var user = session.getEffectiveUserName(); 
var doc = database.createDocument(); 
var rtitem:NotesRichTextItem = doc.createRichTextItem("Body"); 

doc.Form = "Memo"; 

doc.replaceItemValue("SendTo", user) 

doc.replaceItemValue("Subject","Renewal forms received"); 

var i:Double = sessionScope.unidArray.size(); 

rtitem.appendTable(i,12); 

var rtnav = rtitem.createNavigator(); 
rtnav.findFirstElement(RTELEM_TYPE_TABLE); 

rtnav.findFirstElement(RTELEM_TYPE_TABLECELL); 

try{ 

for(v=0;v<i;v++){ 
    print("v is " + v); 
    for(j=3;j<=14;j++){ 
     rtitem.beginInsert(rtnav); 
     rtitem.appendText(sessionScope.unidArray(v,j)); 
     rtitem.endInsert(); 
     rtnav.findNextElement(RTELEM_TYPE_TABLECELL); 
    } 
} 
}catch(e){ 
    print("error " + e); 
} 

Ошибка я получаю

Script interpreter error, line=18, col=24: [ReferenceError] 'RTELEM_TYPE_TABLE' not found 
    16: print("3"); 
    17: var rtnav = rtitem.createNavigator(); 
-> 18: rtnav.findFirstElement(RTELEM_TYPE_TABLE); 

Я попытался с помощью

rtitem.RTELEM_TYPE_TABLE

в строке 18 выше, которая также вызывает ошибку.

Любые предложения о том, что я делаю неправильно, будут оценены.

Благодаря

Graeme

ответ

1

Использование Try lotus.domino.RichTextItem.RTELEM_TYPE_TABLECELL (хорошо) или передать в качестве параметра 7 (плохой)

экзамен 1:

rtnav.findNextElement(lotus.domino.RichTextItem.RTELEM_TYPE_TABLE); 
rtnav.findNextElement(lotus.domino.RichTextItem.RTELEM_TYPE_TABLECELL); 

экзамен 2:

rtnav.findNextElement(1); // table 
rtnav.findNextElement(7); // table cell 

Все константы:

// Field descriptor #5 I 
    public static final int RT_FIND_CASEINSENSITIVE = 1; 

    // Field descriptor #5 I 
    public static final int RT_FIND_PITCHINSENSITIVE = 2; 

    // Field descriptor #5 I 
    public static final int RT_FIND_ACCENTINSENSITIVE = 4; 

    // Field descriptor #5 I 
    public static final int RT_REPL_PRESERVECASE = 8; 

    // Field descriptor #5 I 
    public static final int RT_REPL_ALL = 16; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_TABLE = 1; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_TEXTRUN = 3; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_TEXTPARAGRAPH = 4; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_DOCLINK = 5; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_SECTION = 6; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_TABLECELL = 7; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_FILEATTACHMENT = 8; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_OLE = 9; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_TEXTPOSITION = 10; 

    // Field descriptor #5 I 
    public static final int RTELEM_TYPE_TEXTSTRING = 11; 
+0

Также вы можете попробовать использовать 'NotesRichTextItem.RTELEM_TYPE_TABLE' * (Но я не знаю, будет ли работать этот вариант) * – Roman

+0

Perfect - Спасибо вам большое. – NotesNut

+0

Я бы настоятельно предложил вам переключиться на MIME для рендеринга контента - проще и даст вам лучший контроль. Пример кода находится в OpenNTF - компонент электронной почты – stwissel

Смежные вопросы