aVogt
Returning Creator

FS5.0.3: eigene Klassen in einem Ausgabekanal verwenden

Hallo,

ich habe mir eigene Klassen geschrieben, die die wichtigsten Info zu einem Datenbankschema ausliest (Schemen, enthaltene Tabellen mit Eigenschaften (Felder) und Beziehungen).

Nun will ich das ganze als PDF-Datei ausgegeben werden (der entsprechende Kanal ist vorhanden).

Nun habe ich nirgends etwas gefunden, wie ich eine Klasse (in einem Ausgabekanal) initialisiere.

Im Script wäre das: SchemenInfo schemenInfo = new SchemenInfo(context);

Wie aber im Ausgabekanal? $CMS_SET(schemenInfo, new SchemenInfo(#global.context))$ funktioniert nicht.

Der Methodenzugriff und das iterieren über Listen sollte ja dann funktionieren.

Wäre es auch eine Alternative den kompletten PDF-Quellcode in einem Script zu erzeugen und im PDF-Ausgabekanal dann per $CMS_RENDER(script:"schemeInfo")$ ausgeben zu lassen?

Grüße Andreas

0 Kudos
3 Replies
mhenke
I'm new here

Du kannst eine Liste als Rückgabeparameter eines Scriptes missbrauchen:

Template:

$CMS_SET(schemeninfo_list, [])$

$CMS_RENDER(script:"new_schemeninfo", param_ret:schemeninfo_list)$

$CMS_SET(schmeninfo, schemeninfo_list.get(0))$

$CMS_VALUE(schemeninfo.foobar())$

Script:

//!Beanshell

import foo.bar.baz.Schemeninfo;

param_ret.add(new Schemeninfo(context));

0 Kudos
aVogt
Returning Creator

Hallo Michael,  ich hatte eigentlich die Hofnung ganz auf ein Script zu verzichten.  Grüße Andreas

0 Kudos

die klasse liegt in einem modul in einer library dann sollte folgendes funktionieren:

$CMS_VALUE(class("SchemaInfo").myMethod())$

folgender beitrag ist auch zu dem thema https://community.e-spirit.com/message/1932#1932