Questions & Answers

SOLVED
aVogt
Returning Creator

Alle Variablenamen von Eingabefeldern in einem Absatz (Section) ermitteln

Jump to solution

Hallo,

um Seiten mit speziellen Werten fรผr die Suche zu indexieren (รผber die PushApi) hole ich mir von jeder Seite einen bestimmten "Body"

     Body pageBody = pg.getBodyByName("content");

und davon alle Absรคtze

     listBodyChilds = pageBody.getChildren()

Beim iterieren รผber die Absรคtze erhalte ich eine Section, wie erwartet und gewรผnscht.

Bisher habe ich wie folgt weitergearbeitet

     Data dataSect = sectionChild.getData();
     List listVarNam = dataSect.getVariableNames()

Somit habe ich alle Variablenamen des Absatzes und darรผber die Felder mit den "values" erhalten. Somit habe ich denn den Eintrag fรผr die Suche aufgebaut. (z.B. alle Textfelder als ein Feld fรผr die Suche zusammengeschrieben)

Nun habe ich auf FS4.2.452 umgestellt und getData() ist deprecated.
Mit
     sectionChild.getFormData()
bekomme ich die FormData, wo es kein getVariableNames() mehr gibt.

Ich habe nun folgende MMรถglichkeit gefunden, aber "GomText" steht nicht in der API (somit wahrscheinlich nicht รถffentlich und soll sicher nicht unbedingt verwendet werden; die Ermittlung des Namen in der whileschleife ist nur exempalrisch und nicht vollstรคngigumgesetzt)

Iterable listVarNam1 = dataSect1.getForm().forms();
Iterator itListVarNam = listVarNam1.iterator();
while(itListVarNam.hasNext()) {
  try{
   GomText gt = (GomText) itListVarNam.next();
   String feldName = gt.getName();
  } catch (Exception E) {}
}


Muss ich nun immer die Variablenamen wissen oder gibt es eine andere Mรถglichkeit (ausser der o.g. falls sie verwendet werden sollte) an alle Variablenamen zu kommen?

GrรผรŸe aus Dresden

0 Kudos
1 Solution

Accepted Solutions
andre
I'm new here

so in etwa sollte es funktionieren.

final FormData formData = ....getFormData();

final List<String> strings = formData.getForm().appendEditorNames(null);

for (final String name: strings) {

    final FormField<?> formField = formData.get(language, name);

    final Object value = formField.get(); // dieses ist dann der Feldwert

}

View solution in original post

0 Kudos
2 Replies
andre
I'm new here

so in etwa sollte es funktionieren.

final FormData formData = ....getFormData();

final List<String> strings = formData.getForm().appendEditorNames(null);

for (final String name: strings) {

    final FormField<?> formField = formData.get(language, name);

    final Object value = formField.get(); // dieses ist dann der Feldwert

}

0 Kudos

Wenn ich aber vorher mittels:

for (String key : data.getVariableNames()) {                              {

   DataValue dataValue = data.get(key);

   EditorValue<?> editor = dataValue.getEditor();

   for(Language lang : allLanguages) {

        Object value = editor .get(language);

        ...

   }

}

die Daten bearbeitet habe, dann muss ich jetzt die Sprach-Iteration eine Ebene hรถher setzen!? richtig?:

for (Language lang : allLanguages) {

   for (String key : formData.getForm().appendEditorNames(null)) {     

      FormField<?> formField = formData.get(language, key);

      Object value = formField.get();

      ...

   }

}

0 Kudos

Type a product name