Mit WebReports können Sie mehrere Skripts innerhalb derselben Berichtsansicht definieren, wenn jedes Skript in der Berichtsansicht einen eindeutigen Namen hat. Ein Skript kann ein anderes Skript aus derselben Berichtsansicht aufrufen, jedoch keine Skripte, die in einer anderen Berichtsansicht definiert sind. Daher müssen Skriptnamen in Content Server nicht über verschiedene Berichtsansicht hinweg eindeutig sind.
Beachten Sie, dass mehrere Oscript-Funktionen auch innerhalb eines einzelnen Skriptblocks deklariert werden können, beispielsweise zwischen [LL_WEBREPORT_STARTSCRIPT /] und [LL_WEBREPORT_ENDSCRIPT /]. Funktionen innerhalb desselben Skriptblocks können einander aufrufen. Es kann jedoch nur die erste in einem Skriptblock deklarierte Funktion von einem anderen Skriptblock bzw. über die Berichtsansicht mit [LL_WEBREPORT_CALL /] aufgerufen werden. Sie können sich einen Skriptblock als eine diskrete Oscript-Funktion im Content Server Builder vorstellen, die sich in diesem Zusammenhang identisch verhält. Benutzer, die mit JavaScript vertraut sind, sollten bedenken, dass sich die hier beschriebenen Regeln von den JavaScript-Regeln deutlich unterscheiden.
Um ein anderes Skript in der Berichtsansicht aufzurufen, genügt es, vor dem Namen des Skriptblocks einen Punkt („.“) zu setzen.
Beispiel: Dies wird im folgenden Beispiel veranschaulicht: Hier werden zunächst HTML-Escape-Sequenzen auf jedes Datenobjekt in der Spalte Name angewandt. Anschließend werden die Datenobjekte, durch ein Semikolon getrennt, miteinander verknüpft:
[LL_WEBREPORT_STARTSCRIPT NAME:escape /]
function String escape(String input = '')
return Web.EscapeHTML(input)
end
[LL_WEBREPORT_ENDSCRIPT /]
[LL_WEBREPORT_STARTSCRIPT NAME:Main /]
function String anyName(Dynamic context)
String s
Integer i
if isDefined (context.data) // check there is a data source
for i = 1 to length (context.data)
s += .escape(context.data[i].Name) + '; '
end
end
return s
end
[LL_WEBREPORT_ENDSCRIPT /]
[LL_WEBREPORT_CALL NAME:Main /]