Wir haben ein Webformular, das auf Lotus Notes basiert. In diesem Formular möchten wir eine Schaltfläche speichern, die bei Klick speichert das Formular und nicht das Formular zu schließen. Damit die Benutzer bearbeiten und speichern können, ohne das Formular zu schließen. Wie kann das gemacht werden?Bearbeiten und Speichern im Lotus Notes-Webformular
Antwort
Sie könnten eine Speicherfunktion mit Javascript (oder noch einfacher mit jQuery) schreiben. Sie können einen einfachen Lotusscript-Agenten aufrufen, um die Formularwerte im Dokument zu speichern.
Ich werde im August einen Vortrag über dieses bei MWLUG in Austin tun, aber Sie können Beispielcode in meinen früheren Präsentationen finden Sie hier:
http://blog.texasswede.com/mwlug-2015/ - enthält auch die Grundlagen von Ajax, JSON, jQuery und Bootstrap
http://blog.texasswede.com/my-connect-2016-presentation-demo-database/ - meine Präsentation von IBM Connect 2016, kürzer und weniger auf die Grundlagen konzentriert, zeigt, wie Sie mit JSONP Agenten auf anderen Servern aufrufen.
Hier ist, wie Sie es tun können:
1) Geben Sie alle Eingabefelder ein eigenes Attribut Notizen-Feld genannt, setzen sie auf den Namen des Feldes in der Domino-Datenbank. Es sollte wie folgt aussehen:
<input type="text" id="firstName" notes-field="FirstName">
Auch stellen Sie sicher, Sie speichern die Schuldverschreibungen doucument UNID (Unique ID) des Dokuments, das Sie in einem HTML-Element bearbeiten. Ich speichere es als Datenattribut in einem DIV mit der ID docUNID, wie folgt aus:
<div id="docUNID" data-UNID="CD8808D24664739A86257FB7005B38CE">
2) Binden Sie die folgenden jQuery-Code in Ihre speichern Taste:
// 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) Erstellen Sie einen Rückruf Funktion, die die vom SaveData-Agenten zurückgegebenen Daten verarbeitet. Dieser Funktionsname muss mit dem in Ihrem Agenten übereinstimmen, den Sie im nächsten Schritt erstellen.
// 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) Legen Sie Ihr Agent die Daten, um sie in das angegebene Dokument übergeben zu speichern:
%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
Beachten Sie, dass Sie benötigen zwei Script-Bibliotheken zu verwenden, die jeweils eine eigene Klasse enthält. Die erste Class.URL wird verwendet, um die Daten zu lesen, die im HTTP POST/GET übergeben wurden, der an den Agenten gesendet wird. Die zweite Class.JSON hilft Ihnen beim Erstellen des JSON/JSONP, das zurückgegeben werden soll. Sie können sie in den Beispieldatenbanken für meine Präsentationen sowie auf meinem Blog finden:
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/
Die Präsentationen sind auch auf 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. Bearbeiten und speichern Json mit PHP
- 2. Richeditor Onlyoffice Dokument bearbeiten und speichern
- 3. Bearbeiten und speichern php.ini über Terminal
- 4. Tabelle bearbeiten und speichern Änderung Datenbank
- 5. Speichern und Bearbeiten in DataBase (Entity Framework)
- 6. .NET und Lotus Notes Interop
- 7. Lotus Script-Funktion von Lotus-Formel aufrufen
- 8. Wie in Ckeditor speichern/bearbeiten?
- 9. bearbeiten changeset Kommentare - speichern deaktiviert
- 10. Speichern und Bearbeiten von Eltern- und Kindinformationen auf derselben Webseite
- 11. Bearbeiten von Text im Editor
- 12. öffnen, bearbeiten und speichern PDF-Datei in C# .Net
- 13. Eingebettete Lotus Notes-Ansicht
- 14. Speichern und Bearbeiten von Schlüssel/Wert-Paaren in Grails?
- 15. Bild im Web bearbeiten und als Bild exportieren
- 16. So bearbeiten Sie ein PDF im Browser und speichern es auf dem Server
- 17. Bearbeiten eines Bildes im Browser mit Javascript und Speichern des Bildes in Google App Engine
- 18. setCanDeleteDocuments() Lotus Notes ACL
- 19. Wie kann ich Listitem-Text dynamisch bearbeiten und speichern?
- 20. FMP - Erzwingen Speichern des Felds Bearbeiten
- 21. django Modellattribut bearbeiten & speichern ohne zusätzliche Seite
- 22. AngularJS Bearbeiten und Speichern von Werten in ng-repeat
- 23. Bearbeiten und speichern Sie mehrere Datensätze in CakePHP
- 24. Resize UIImage zum Bearbeiten und Speichern in hoher Auflösung?
- 25. Wie bearbeiten und speichern Sie vorhandenes HTML mit Python?
- 26. Wie zum Speichern und Bearbeiten von Daten aus Index.cshtml
- 27. PHP mysql Datentabelle speichern und bearbeiten auf der gleichen Seite
- 28. Dateien remote im Netzwerkspeicher bearbeiten
- 29. Lotus Notes Synchronisation
- 30. Gesamtzeile im Oracle-Bericht bearbeiten
Bitte zeigen Sie Ihren Code. Wie sieht Ihre aktuelle Schaltfläche "Speichern und Schließen" aus? –
Wir haben eine check() -Funktion, die die Validierungen prüft und dann document.forms [0] .submit(); aber es reicht das Dokument ein und schließt dann das Dokument. Ist es möglich, das Dokument nach dem Speichern nicht zu schließen? – Harshi
Dies geschieht normalerweise, indem das Dokument normal gesendet wird und der WebQuerySave-Agent eine Umleitungs-URL (umgeben von eckigen Klammern) druckt, die das Dokument zur Bearbeitung öffnet. Natürlich wird dadurch das Formular geschlossen und wieder geöffnet, und der Benutzer verliert seine Position, es sei denn, Sie fügen ein Skript und ein URL-Argument hinzu, um den Fokus wiederherzustellen. –