- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Formular nach Aufruf FS_Button anzeigen
Hallo,
ich wollte nach Klick auf einen FS_Button ein Script aufrufen. Das Script sollte ein Formular anzeigen, in dem ein paar Schalter gesetzt und eine CVS Datei angegeben (hochladen) werden kann. Dann sollte die Date ausgelesen, verarbeitet und an der Seite wo der Button integriert ist bestimmte Felder (30 Text Felder) befรผllen.
Das funktioniert leider nicht, da kein Formular angezeigt werden kann. (showForm fehlt).
Hat jemand eine Idee, wie es sonst umsetzen kann?
Per Script Aufruf (Extras -> Script ausfรผhren) geht es, ist aber nicht so "schรถn".
Grรผรe
Andreas
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Guten Morgen Andreas,
"Den obigen Weg finde ich zu umstรคndlich."
Deshalb die Alternative, dass du das Formular im Skript lรคsst und statt die Formdefinition in den Code zu schreiben holst du dir lieber das Skript und daraus die Formdefinition.
Habs jetzt einfach mal runtergeschrieben aber nicht getestet. So musst du aber nicht an den Code ran, wenn du etwas am Formular รคnderst.
import de.espirit.firstspirit.access.editor.EditorValue;
import de.espirit.firstspirit.agency.StoreElementAgent;
import de.espirit.firstspirit.agency.OperationAgent;
import de.espirit.firstspirit.forms.FormData;
import de.espirit.firstspirit.ui.operations.ShowFormDialogOperation;
import de.espirit.firstspirit.access.store.templatestore.Script;
import de.espirit.firstspirit.access.store.IDProvider;
import java.util.Collections;
final StoreElementAgent storeElementAgent = context.requireSpecialist(StoreElementAgent.TYPE);
final Script myscript = (Script) storeElementAgent.loadStoreElement("sc_meinscript", IDProvider.UidType.TEMPLATESTORE, false);
// GGf. musst du hier auch die FormDefinition holen und dann รผber den FormAgent wieder eine FormData erzeugen.
final FormData myformdata = myscript.getFormDefaults();
final OperationAgent opAg = context.requireSpecialist(OperationAgent.TYPE);
final ShowFormDialogOperation sfdo = opAg.getOperation(ShowFormDialogOperation.TYPE);
sfdo.setTitle("Eingabetest");
sfdo.setOkText("Jetzt speichern");
sfdo.setModified(false);
sfdo.setDisabled(false);
sfdo.setMultiLanguage(false);
sfdo.setFormData(myformdata);
sfdo.perform(myform, Collections.singletonList(EditorValue.SOLE_LANGUAGE));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Andreas,
vielleicht hilft Dir dieses Beispiel weiter (oder kurz gesagt - nimm die ShowFormDialogOperation )
import de.espirit.firstspirit.access.editor.EditorValue;
import de.espirit.firstspirit.agency.FormsAgent;
import de.espirit.firstspirit.agency.OperationAgent;
import de.espirit.firstspirit.forms.Form;
import de.espirit.firstspirit.forms.FormData;
import de.espirit.firstspirit.ui.operations.ShowFormDialogOperation;
import java.util.Collections;
final StringBuilder formDefinition = new StringBuilder();
formDefinition.append("<CMS_MODULE>");
formDefinition.append("<CMS_INPUT_TEXT name=\"testtext\" editable=\"yes\">");
formDefinition.append("<LANGINFOS>");
formDefinition.append("<LANGINFO lang=\"*\" label=\"Test Text\"/>");
formDefinition.append("</LANGINFOS>");
formDefinition.append("</CMS_INPUT_TEXT>");
formDefinition.append("<CMS_INPUT_DOM name=\"testdom\">");
formDefinition.append("<LANGINFOS>");
formDefinition.append("<LANGINFO lang=\"*\" label=\"Test RTF\"/>");
formDefinition.append("</LANGINFOS>");
formDefinition.append("</CMS_INPUT_DOM>");
formDefinition.append("</CMS_MODULE>");
final FormsAgent formsagent = context.requireSpecialist(FormsAgent.TYPE);
final Form myform = formsagent.getForm(formDefinition.toString());
final FormData myformdata = myform.createFormData();
final OperationAgent opAg = context.requireSpecialist(OperationAgent.TYPE);
final ShowFormDialogOperation sfdo = opAg.getOperation(ShowFormDialogOperation.TYPE);
sfdo.setTitle("Eingabetest");
sfdo.setOkText("Jetzt speichern");
sfdo.setModified(false);
sfdo.setDisabled(false);
sfdo.setMultiLanguage(false);
sfdo.setFormData(myformdata);
sfdo.perform(myform, Collections.singletonList(EditorValue.SOLE_LANGUAGE));
Viele Grรผรe
Holger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vllt. noch als kleine Ergรคnzung: Um solche Strings zu vermeiden fรผge ich das Formular in solchen Fรคllen oft ganz normal zum Script hinzu und hole mir die Formdefinition aus dem Script ๐
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Guten Morgen,
danke fรผr die Infos. Das Formular habe ich im Script als Formular hinterlegt.
Wie geschrieben, kann es ja รผber Extras -> Script ausfรผhren einfach angezeigt werden, Die Funktion fehlt, wenn das Script รผber den FS-Button aufgerufen wird. Schade.
Den obigen Weg finde ich zu umstรคndlich. Werde es wohl den Nutzern zumuten รผber das Menรผ zu gehen.
Grรผรe
Andreas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Guten Morgen Andreas,
"Den obigen Weg finde ich zu umstรคndlich."
Deshalb die Alternative, dass du das Formular im Skript lรคsst und statt die Formdefinition in den Code zu schreiben holst du dir lieber das Skript und daraus die Formdefinition.
Habs jetzt einfach mal runtergeschrieben aber nicht getestet. So musst du aber nicht an den Code ran, wenn du etwas am Formular รคnderst.
import de.espirit.firstspirit.access.editor.EditorValue;
import de.espirit.firstspirit.agency.StoreElementAgent;
import de.espirit.firstspirit.agency.OperationAgent;
import de.espirit.firstspirit.forms.FormData;
import de.espirit.firstspirit.ui.operations.ShowFormDialogOperation;
import de.espirit.firstspirit.access.store.templatestore.Script;
import de.espirit.firstspirit.access.store.IDProvider;
import java.util.Collections;
final StoreElementAgent storeElementAgent = context.requireSpecialist(StoreElementAgent.TYPE);
final Script myscript = (Script) storeElementAgent.loadStoreElement("sc_meinscript", IDProvider.UidType.TEMPLATESTORE, false);
// GGf. musst du hier auch die FormDefinition holen und dann รผber den FormAgent wieder eine FormData erzeugen.
final FormData myformdata = myscript.getFormDefaults();
final OperationAgent opAg = context.requireSpecialist(OperationAgent.TYPE);
final ShowFormDialogOperation sfdo = opAg.getOperation(ShowFormDialogOperation.TYPE);
sfdo.setTitle("Eingabetest");
sfdo.setOkText("Jetzt speichern");
sfdo.setModified(false);
sfdo.setDisabled(false);
sfdo.setMultiLanguage(false);
sfdo.setFormData(myformdata);
sfdo.perform(myform, Collections.singletonList(EditorValue.SOLE_LANGUAGE));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Besten Dank. ich probiere mal.
Trotzdem noch mehr Scriptzeilen, als einfach aufrufen ๐
Grรผรe
Andreas