Aller au contenu principal

Formular nach Aufruf FS_Button anzeigen

Commentaires

5 commentaires

  • Zendesk API User
    Author: hoebbel - 7/2/2021 13:36

    Hallo Andreas,

    vielleicht hilft Dir dieses Beispiel weiter (oder kurz gesagt - nimm die ShowFormDialogOperation :smileywink:)

    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

    0
  • Zendesk API User
    Author: felix_reinhold - 7/2/2021 21:34

    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 :-)

    0
  • Zendesk API User
    Author: aVogt - 7/5/2021 7:24

    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

    0
  • Zendesk API User
    Author: felix_reinhold - 7/5/2021 7:44

    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)); 

    0
  • Zendesk API User
    Author: aVogt - 7/5/2021 8:06

    Besten Dank. ich probiere mal.

    Trotzdem noch mehr Scriptzeilen, als einfach aufrufen ;-)

    Grüße

    Andreas

    0

Vous devez vous connecter pour laisser un commentaire.