Сохранение выбранного документа в качестве документа ответа с помощью XPages

я новичок в xpages, но я хочу попытаться создать ответный документ для основного документа, который является документом заказа. есть документ продукта, который отображает вид всего продукта в базе данных и с флажком, оба документа находятся на одной странице. используя приведенный ниже код в событии onclick, если флажок

var colName = view1Collection.getColumnValue("Name");
var prodNameScope = sessionScope.get("scopeProdName");
var docIdScope = sessionScope.get("scopeDocID");

var selDocID = view1Collection.getUniversalID();

 if(docIdScope .contains(selDocID )) {
    prodNameScope .remove(colName );
    docIdScope .remove(selDocID );
    } else {
    prodNameScope .add(colName );
    docIdScope .add(selDocID );
}

Постоткрытое мероприятие:

var nameList = new java.util.ArrayList();
sessionScope.put('scopeProdName', nameList );
var idList = new java.util.ArrayList();
sessionScope.put('scopeDocID', idList );

На следующих страницах элемент отображается хорошо, но я хочу, чтобы выбранный элемент был скопирован и сохранен как ответный документ к основному документу.

Я пробовал следующий скрипт, но не работал:

var PN = sessionScope.get("scopeProdName[indexRowdata]");
document1.replaceItemValue("_Title", PN);

у кого-нибудь есть идеи, как я могу это сделать. заранее спасибо.


person simon peter    schedule 16.09.2013    source источник


Ответы (1)


если вы отображаете статьи в элементе управления представлением, вы можете получить идентификаторы, а затем использовать

 var myArray = sessionScope.get("projectName");
 var PNu = sessionScope.get("projectNumber");

 document1.replaceItemValue("ProjectName", myArray);
 document1.replaceItemValue("ProjectNumber", PNu);

 var PN:java.util.ArrayList = sessionScope.get("scopeProdName");

 document1.save()
 var Id:java.util.ArrayList=sessionScope.get("scopeDocID");

 for(var x=0;x<Id.size();x++){
   var doc=database.getDocumentByUNID(Id.get(x)); 
   var newdoc:NotesDocument=doc.copyToDatabase(database);
   newdoc.makeResponse(document1.getDocument());
   newdoc.save();
 }
person Fredrik Norling    schedule 16.09.2013
comment
я отображаю статьи с помощью dataTable, после того, как выбрано на страницу предварительного просмотра, я использую dataTable для отображения выбранного элемента. - person simon peter; 16.09.2013
comment
Если вы извлекаете все выбранные идентификаторы в массив JS, используйте цикл, чтобы скопировать их и сделать их ответами. - person Fredrik Norling; 16.09.2013
comment
в этом проблема, я не получаю код, чтобы сделать это, я продолжаю получать ошибку, я не знаю, что упускаю, извлекая выбранные идентификаторы из массива Js. какой правильный код использовать? - person simon peter; 16.09.2013
comment
Я обновил свой код в ответе. Вам нужно сделать .get с номером индекса - person Fredrik Norling; 17.09.2013
comment
Я действительно ценю вашу помощь до сих пор, но я продолжаю получать сообщение об ошибке indexRowdata not found, я не возражаю, если бы я мог отправить вам файл nsf, чтобы вы могли его увидеть. - person simon peter; 19.09.2013
comment
Конечно, пришлите мне nsf, fredrik, на xpagedeveloper.com, и я посмотрю. - person Fredrik Norling; 19.09.2013