Wiki-Quellcode von Export (Persistence)


Verstecke letzte Bearbeiter
gru 15.1 1 {{figure image="export_persistence_de.png" clear="h1"}}
gru 1.3 2 Nutzeroberfläche für Aktionen des Typs //Export (Persistence)//
3 {{/figure}}
gru 1.1 4
gru 8.4 5 Aktionen des Typs //Export (Persistence)// ermöglichen es, die Daten eines Vorgangs als persistierte Struktur bereitzustellen. Diese kann später erneut geladen werden, um das Formular wiederherzustellen. Mit der Aktion vom Typ //Export (Persistence)// und etwas Javascript-Code für das Laden der gespeicherten Werte kann damit das lokale Speichern von Formulardaten umgesetzt werden. Das Befüllen von Formularfeldern mit in einer XML gespeicherten Daten ist auch über die Aktion [[//XML Einlesen und Formularfelder setzen//>>Formcycle.UserInterface.MyForms.WorkflowProcessing.Actions.ImportXML]] möglich.
gru 1.1 6
7 == Parameter ==
8
gru 15.1 9 ; Name der Ausgabedatei
10 : Dateiname, unter dem der exportierte Vorgang gespeichert werden soll.
gru 1.1 11
gru 15.1 12 ; An den Vorgang anhängen
13 : Legt fest, ob die erzeugte Ausgabedatei an den Vorgang angehangen werden soll.
gru 1.1 14
gru 10.2 15 == Formulardaten aus Exportdatei importieren ==
gru 1.1 16
gru 10.3 17 Wird ein Formular aufgerufen und befindet sich ein nicht-leeres Uploadfeld mit dem Namen {{code language="none"}}fcp_persistence{{/code}} im Formular bzw. gibt es eine Datei mit dem Namen {{code language="none"}}fcp-persistence{{/code}} in einem anderen Uploadfeld, so werden beim Ausliefern des Formulars die Werte aus der Persistence-Datei in Formular geschrieben und so Felder vorbefüllt.
gru 8.4 18
19 Der folgende Beispielcode ermöglicht es, diesen Vorgang mit einem Button zu realisieren. Dabei wird das Ziel des Formulars beim Absenden auf seine eigene URL gesetzt und alle Eingabefelder außer der Uploadfeld deaktiviert. Anschließend wird ein Submit der Form ausgeführt, durch welchen die Inhalte der Datei geladen werden.
20
21 {{code language="javascript"}}
gru 8.5 22 $('BUTTON[name="btnLoad"]').on('click', function(){
23 $('.xm-form').attr('action', window.location);
24 $('.xm-form input').not('[name=fcp_persistence]').attr('disabled', "disabled");
25 $('.xm-form textarea').attr('disabled', "disabled");
26 $('.xm-form select').attr('disabled', "disabled");
27 $('.xm-form').submit();
gru 8.4 28 });
29 $('[xn="fcp_persistence"] .img-uploaded-preview').visible(false);
30 {{/code}}
31
gru 13.3 32 Alternativ kann folgender Code verwendet werden:
gru 13.6 33
gru 13.3 34 {{code language="javascript"}}
35 $('document').ready(function(){
36 var nameOfTriggerButton= "btnLoad";
gru 13.7 37
gru 13.3 38 var form = $("<form>", {
39 action:"?",
40 method:"post",
41 enctype:"multipart/form-data"
42 }).appendTo('body');
gru 13.7 43
gru 13.3 44 var upload = $("<input>", {
45 type:"file",
46 name:"fcp_persistence"
47 }).appendTo(form);
gru 13.7 48
gru 13.3 49 upload.change(function(){form.submit()});
50 $('BUTTON[name="'+nameOfTriggerButton+'"]').click(function(){upload.trigger('click')});
51 })
52 {{/code}}
53
gru 14.1 54 Hierbei ist zu beachten, dass in diesem Beispiel das Uploadelement einfach an das Ende des HTML-DOM-Baumes gesetzt wird. Die Position muss daher gegebenenfalls noch angepasst werden. Wenn das vom Script erzeugte //form//-Element entgegen der HTML/XHTML-Spezifikation in das das {{formcycle/}}-Formular umschließende form-Element eingefügt wird, muss sichergestellt werden, dass es bei der normalen Formularabsendung nicht zu Problemen führt.
55
sas 13.2 56 {{info}}
57 [[Ein Beispielformular steht zum Download bereit>>attach:Local import and export.zip]], um die Einrichtung der Statusverarbeitung zu verdeutlichen.
58 {{/info}}
Copyright 2000-2024