Questions & Answers

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

Type a product name