이것은 내가 작성하는 샘플 스크립트입니다.제출 단추 (onclick)를 사용하여 javaScript (서버 측)에 메시지 상자를 만드는 방법
작업 : - 사용자가 시스템에 회원으로 등록하지 않은 경우 사용자에게 표시하는 팝업 메시지를 만듭니다.
- 사용자가 뷰 내에서 이름이 사용자 -if "이름으로 직원 정보"메모보기
안에 이름을 가져야합니다, 그것은 그들이 요청하는 것을 검토 알리기 위해, 검토 자에 메시지를 작성합니다.
사용자가 "이름 별 직원 정보"보기에 이름이 없으면 사용자에게 수행 할 작업을 알리는 메시지가 나타납니다. 다른 페이지에서 작업
// address book
var db:NotesDatabase = session.getDatabase("websvr/pcs", "names", false);
var vw2:NotesView = db.getView("($VIMPeople)");
var dc2:NotesDocumentCollection = vw2.getAllDocumentsByKey(document1.getItemValue("Name"),true);
var doc2:NotesDocument=dc2.getFirstDocument();
while (doc2!=null){
sname=doc2.getItemValueString('LastName')
doc2=dc2.getNextDocument();
}
// end of address book
//current database
var vw:NotesView = database.getView("Staff Information By Name");
var doc:NotesDocument = vw.getDocumentByKey(sname, true);
//check whether have setting on reviewer for current user else will be hard code to specific person
if (doc!=null)
{
revname=doc.getItemValueString("Reviewer")
rev=doc.getItemValueString("ReviewerEmail");
//set Email
var maildoc:NotesDocument=database.createDocument();
var body=maildoc.createMIMEEntity();
var stream=session.createStream();
var content="Dear "+revname+",<br></br>"+
"Please click <a href='http://"+applicationScope.hostname+"/"+(applicationScope.dbfilepath).replace(/(\\)/g, "/")+"/"+
"RequisitionForm.xsp?databaseName="+applicationScope.serverCN+"!!"+
applicationScope.dbfilepath+"&documentId="+
document1.getDocument().getUniversalID()+
"&action=editDocument'>here</a> to view it if you are in a web browser (eg: Internet Explorer, Mozilla Firefox, Google Chrome etc.)"+
"<br /><br /><b>OR</b><br /><br />"+
"<a href='"+document1.getDocument().getNotesURL()+"'>here</a> if you are in the Notes Client. Thank you.";
stream.writeText(content);
body.setContentFromText(stream, "text/html; charset=iso-8859-1", 0);
maildoc.replaceItemValue('Subject', 'Kindly review this '+document1.getItemValueString('Item')+' request by '+document1.getItemValueString('Name')+" on "+I18n.toString(@Today(), 'dd/MM/yyyy'));
maildoc.send(rev);
document1.replaceItemValue("TotalCost",document1.getValue("Cost")*document1.getValue("Qty"));
document1.replaceItemValue("Status","Pending");
document1.save();
context.redirectToPage("/MyRequisition.xsp");
}
else
{
a = 'alert("You do not have access right, please contact admin to register!")' ;
view.postScript(a);
break;
}
샘플 스크립트 :
a = 'alert("The applicant details must be unique!")' ;
b = 'alert("Applicant Details inserted!")' ;
var vw:NotesView = database.getView("Staff information by Name");
var doc:NotesDocument = vw.getDocumentByKey(getComponent("Name").getValue(), true);
if (doc!=null){
view.postScript(a);
break;
}
else
{
var newDoc = database.createDocument();
newDoc.appendItemValue("Form", "Staff Form");
newDoc.appendItemValue("Name", getComponent("Name").getValue());
newDoc.appendItemValue("Designation", getComponent("Designation").getValue());
newDoc.appendItemValue("Department", getComponent("Department").getValue());
newDoc.appendItemValue("Reviewer", getComponent("Reviewer").getValue());
newDoc.appendItemValue("Email", getComponent("Email").getValue());
newDoc.appendItemValue("ReviewerEmail", getComponent("ReviewerEmail").getValue());
newDoc.save();
getComponent("Name").setValue("");
getComponent("Designation").setValue("");
getComponent("Department").setValue("");
getComponent("Reviewer").setValue("");
getComponent("Email").setValue("");
getComponent("ReviewerEmail").setValue("");
view.postScript(b);
}
정확히 무엇이 문제입니까? 귀하의 질문에 대한 답변은 @DbLookup 및 postscript()를 사용하는 것입니다. 그래서 시도해 보셨습니까? –
제 질문은 왜 코드의 첫 번째 세트에서 메시지 상자를 열 수 없는지, 두 번째 코드 세트는 View.PostScript를 사용하여 메시지 상자를 열 수 있습니까? 첫 번째 코드 집합에서 무엇이 잘못되었는지 알 수 있습니까? 그건 그렇고,이 모든 xpages 자바 스크립트를 쓰기 위해 사용하고 있습니다! –