Questions & Answers

SOLVED
daniel_philippi
Occasional Collector

Wert einer Combobox in Datenquellen per Script festlegen

Jump to solution

Hallo Zusammen.

Ich mรถchte per Script Daten in eine Datenquelle schreiben. Das funktioniert auch soweit. Was mit noch fehlt ist die Verknรผpfung zweier Tabellen.

Es soll im Prinzip genau anders herum wie hier beschrieben funktionieren:

https://community.e-spirit.com/message/9184#9181

Ich mรถchte nicht die Liste der Verbundenen Elemente verknรผpfen, sondern einen Wert aus einer anderen Tabelle auswรคhlen und in eine Combobox speichern. In dem verklikten Beispiel mรถchte ich einem Partner eine News zuweisen.

Daher die Frage, wie kann ich einen Wert einer Combobox per Script setzen.

Hier mein bisheriger Ansatz:

dataSet = c2Element.getDataset(entity);

FormData data = dataSet.getFormData();

data.get(context.getProject().getMasterLanguage(), "cs_category").set(fs_id_of_other_table)

dataSet.setFormData(data);

dataSet.save();

Da bekomme ich aber einen Fehler:

Invalid value for 'cs_category' (de.espirit.firstspirit.access.store.templatestore.gom.GomCombobox)

Muss ich hier ein Option Objekt erzeugen und das zuweisen? Wenn ja wรคre die Frage wie?

GruรŸ,

Daniel

0 Kudos
1 Solution

Accepted Solutions
StefanSchulz
I'm new here

Hi Daniel,

รผber die FS_ID funktioniert es nicht.

Der wohl gangbare Weg ist, sich das GomFormElement der cs_category zu holen (data.getForm().findEditor("cs_category")). Bei einer Combobox implementiert dieses das Interface OptionFactoryProvider (evtl. sicherheitshalber im Skript prรผfen). รœber dieses kannst du dir die zugehรถrige OptionFactory holen, die dir eine Methode create(Object) anbietet. Diese nimmt unter anderem einen Datensatz als Parameter und erzeugt ein entsprechendes Options-Objekt. Mit diesem kannst du die Combobox fรผttern.

GrรผรŸe

Stefan

View solution in original post

0 Kudos
4 Replies
StefanSchulz
I'm new here

Hi Daniel,

รผber die FS_ID funktioniert es nicht.

Der wohl gangbare Weg ist, sich das GomFormElement der cs_category zu holen (data.getForm().findEditor("cs_category")). Bei einer Combobox implementiert dieses das Interface OptionFactoryProvider (evtl. sicherheitshalber im Skript prรผfen). รœber dieses kannst du dir die zugehรถrige OptionFactory holen, die dir eine Methode create(Object) anbietet. Diese nimmt unter anderem einen Datensatz als Parameter und erzeugt ein entsprechendes Options-Objekt. Mit diesem kannst du die Combobox fรผttern.

GrรผรŸe

Stefan

0 Kudos

Perfekt, das wars, danke!

Es war noch ein Cast auf GomCombobox nรถtig, aber dann ging es:

GomFormElement gomForm = data.getForm().findEditor("cs_category");

Option option = ((GomCombobox) gomForm).getOptionFactory().create(entity);

0 Kudos

Prima. GomCombobox ist halt nicht wirklich API, deshalb nannte ich OptionFactoryProvider (mรผsste in dem Cast genauso funktionieren).

0 Kudos

Korrekt, das ging auch! VIELEN DANK!

0 Kudos

Type a product name