Lotus Notes上に構築されたWebフォームがあります。このフォームでは、保存するボタンをクリックします。クリックするとフォームが保存され、フォームは閉じられません。ユーザーがフォームを閉じることなく編集して保存できるようにする必要があります。これはどうすればできますか?Lotus Notes Webフォームでの編集と保存
答えて
Javascriptを使用して保存関数を書くことができます(またはjQueryを使いやすくすることもできます)。 シンプルなLotusScriptエージェントを呼び出して、フォームの値をドキュメントに保存できます。
私は8月にオースティンのMWLUGでこれについてのプレゼンテーションを行いますが、あなたはここで私の前のプレゼンテーションのサンプルコードを見つけることができます。
http://blog.texasswede.com/mwlug-2015/は - また、アヤックス、JSON、jQueryとブートストラップ
の基本を含みhttp://blog.texasswede.com/my-connect-2016-presentation-demo-database/ - IBM Connect 2016からの私のプレゼンテーションは、JSONPを使用して他のサーバー上のエージェントを呼び出す方法を示す、基本的に短くて焦点が絞られています。ここで
は、あなたがそれを行うことができる方法である。
1)すべての入力を与えるには、Dominoデータベース内のフィールドの名前に設定し、ノート・フィールドと呼ばれるカスタムattributをフィールド。それは次のようになります。
<input type="text" id="firstName" notes-field="FirstName">
また必ず注意事項は、あなたがHTML要素に編集している文書のUNID(一意のID)をdoucument保存します。私はこのように、docUNIDのIDを持つDIV内のデータ属性として保存:
<div id="docUNID" data-UNID="CD8808D24664739A86257FB7005B38CE">
2)あなたの保存ボタンに次のjQueryコードをバインドします
// Get Document UNID for the document you want to update
var docunid = $("#docUNID").attr("data-UNID");
var json = new Object();
// Store field values in JSON object
json["DocUNID"] = docunid;
$('input[notes-field]').each(function() {
var notesfield = $(this).attr("notes-field");
json[notesfield] = $(this).val();
});
// Perform Ajax call to the server to save values
$.ajax({
url: "http://www.example.com/path/database.nsf/ajax_SaveContact.jsonp?OpenAgent",
dataType: "jsonp",
data: json
});
3)コールバックを作成します。 SaveDataエージェントによって返されたデータを処理する関数です。この関数名は、次の手順で作成するエージェント内の関数名と一致する必要があります。
// Call-back function for save contact call
function callbackSaveContact(data) {
if (data.ajaxstatus=="error") {
alert("Failure: " + data.msg);
} else if (data.ajaxstatus=="success") {
alert("Success: " + data.msg);
}
}
4)指定された文書に渡されたデータを保存するために、あなたのエージェントを作成します:あなたは、各カスタムクラスを含む、2つのスクリプト・ライブラリを使用する必要が
%REM
Agent ajax_SaveContact.jsonp
Created Dec 24, 2015 by Karl-Henry Martinsson
Description: Save contact details, return status
and informational message as JSONP
%END REM
Option Public
Option Declare
Use "Class.JSON"
Use "Class.URL"
Sub Initialize
'--- Local Notes classes used in agent
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
'--- Custom classes
Dim json As JSONData
Dim url As New URLData
'*** Get document
Set db = session.CurrentDatabase
If url.GetValue("DocUNID")<>"" Then
Set doc = db.GetDocumentByUNID(url.GetValue("DocUNID"))
End If
'*** Check that we found a document, otherwise create a new person document
If doc Is Nothing Then
Set doc = New NotesDocument(db)
doc.Form = "Person"
Call doc.Save(True,False)
Call doc.ReplaceItemValue("DocUNID", doc.UniversalID)
End If
ForAll v In url.values()
Call doc.ReplaceItemValue(ListTag(v),v)
End ForAll
Call doc.Save(True,False)
Set json = New JSONData()
json.success = True
json.SetMsg("Saved " + url.GetValue("FirstName") + " " + url.GetValue("LastName"))
Call json.SetValue("DocUNID", doc.UniversalID)
Call json.SendJSONPToBrowser("callbackSaveContact")
End Sub
注意を。最初の1つのClass.URLは、エージェントに入るHTTP POST/GETで渡されたデータを読み取るために使用されます。 2番目のClass.JSONは、JSON/JSONPを作成して戻すのに役立ちます。 あなたは私のプレゼンテーションのためのサンプルデータベース内だけでなく、私のブログ上でそれらを見つけることができます。
http://blog.texasswede.com/free-code-class-to-read-url-name-value-pairs/ http://blog.texasswede.com/calling-a-notes-web-agent-from-another-server-using-jsonp/
プレゼンテーションSlideShare.netにも、次のとおりです。
http://www.slideshare.net/TexasSwede/ibm-connect-2016-break-out-of-the-box
http://www.slideshare.net/TexasSwede/ad102-break-out-of-the-box
- 1. Lotus Notes:プレフィルドフィールドで新しい文書を作成し、保存せずに編集モードで開く
- 2. Lotus Notesフォームのフィールドの値を取得
- 3. Lotus Notesフォームへのログの追加
- 4. Lotus Notesフォームのアクセスを制限する
- 5. Lotus Notes - 圧縮ファイルデータベース
- 6. Lotus Notes ODBC Connection
- 7. Lotus Notes - .Netサイドバーアプリケーション
- 8. .FINDSTRING Lotus Notes VBA
- 9. Lotus Notes - Excel VBA
- 10. Lotus Notes - メール全体を保存するeml c#
- 11. Lotus Notesの移行
- 12. setCanDeleteDocuments()Lotus NotesのACL
- 13. Lotus Notes SMTP 554エラー
- 14. Angularjs編集と保存
- 15. Lotus Notesの条件付きフォームフィールド
- 16. リモートデータベースのLotus Notes Javaレプリケーション
- 17. UIDocumentInteractionControllerでのPDFの編集と保存..?
- 18. 保存とキャンセルのオプションを使用したフォームの編集
- 19. Lotus Notes文書をPDFに
- 20. Lotus Notes添付ファイルのエクスポート
- 21. Lotus Notes - Lotus Notes 9または8.5のログインドロップダウンリストで姓を更新する方法
- 22. Lotus Notes文書の$ fileフィールド
- 23. Lotus Notes - プログラムで破損した添付ファイルを保存する - NotesEmbeddedObject
- 24. Lotus NotesとJavaポータルプラットフォームの統合
- 25. ドラッグ&ドロップテンプレートの編集、テキストイメージと保存
- 26. Lotus Notesからアプリケーションを起動し、後でLotusデータベースに保存する方法は?
- 27. Lotus Notes - プログラムでフォームを追加する - NotesForm
- 28. Lotus NotesデータをSharepointリスト
- 29. Lotus Notes、ExchangeおよびC#
- 30. Lotus Notes Java - メモリ不足
コードを表示してください。現在のボタン「保存して閉じる」はどのように見えますか? –
我々は検証をチェックするcheck()関数を持っています。それからdocument.forms [0] .submit();文書を提出してから文書を閉じます。文書を保存した後に文書を閉じることはできません。 – Harshi
これは、通常、文書を正常に送信し、WebQuerySaveエージェントに編集のために文書を再オープンするリダイレクトURL(角カッコで囲んだもの)を印刷させることによって行われます。もちろん、これは実際にはフォームを閉じて再オープンするため、フォーカスを復元するスクリプトとURL引数を追加しない限り、ユーザーはその位置を失います。 –