<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wikitest.augmensys.com/index.php?action=history&amp;feed=atom&amp;title=Reporting_%28Plugin%29</id>
		<title>Reporting (Plugin) - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wikitest.augmensys.com/index.php?action=history&amp;feed=atom&amp;title=Reporting_%28Plugin%29"/>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;action=history"/>
		<updated>2026-04-30T18:15:45Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26981&amp;oldid=prev</id>
		<title>NWE: /* See also */</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26981&amp;oldid=prev"/>
				<updated>2024-07-05T13:15:01Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;See also&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:15, 5 July 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 95:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 95:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/scriban/scriban Scriban templating &amp;amp; scripting engine]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/scriban/scriban Scriban templating &amp;amp; scripting engine]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Reporting]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Coding|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Coding|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Installing|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Installing|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Plugin|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Plugin|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>NWE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26977&amp;oldid=prev</id>
		<title>NWE: /* Template */</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26977&amp;oldid=prev"/>
				<updated>2024-07-05T12:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Template&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 12:32, 5 July 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The resulting HTML code is returned by the method.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The resulting HTML code is returned by the method.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Template ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Template ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/scriban/scriban Scriban] is a scripting engine that can be used to parse text templates. In our case, this means we can create an HTML file and put placeholders into parts of the file where we want report data to show up. We also can use the scripting features to create many rows of a table in a loop, for example. In the Scriban code, the default object is called &amp;quot;report_object&amp;quot;. If this report_object has properties, you can access them by writing report_object.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;propertyName &lt;/del&gt;(fill in the actual name &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;stargin &lt;/del&gt;with a lower case). For more detailed information about Scriban, please refer to the &amp;quot;see also&amp;quot; section.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://github.com/scriban/scriban Scriban] is a scripting engine that can be used to parse text templates. In our case, this means we can create an HTML file and put placeholders into parts of the file where we want report data to show up. We also can use the scripting features to create many rows of a table in a loop, for example. In the Scriban code, the default object is called &amp;quot;report_object&amp;quot;. If this report_object has properties, you can access them by writing report_object.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;property_name &lt;/ins&gt;(fill in the actual name &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;starting &lt;/ins&gt;with a lower case &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and with underscores separating the words&lt;/ins&gt;). For more detailed information about Scriban, please refer to the &amp;quot;see also&amp;quot; section.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Coding|Reporting (Plugin)]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Installing|Reporting (Plugin)]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Plugin|Reporting (Plugin)]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Report object ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Report object ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It makes sense to create a new class (or multiple) just for the report content, as data container. This way, you can assemble your report data in a way that you can access it comfortably from within the template. In the template, it will always be called &amp;quot;report_object&amp;quot; and you can access its properties, as well as the properties of objects it provides in turn. A complex data hierarchy can be processed into a report like this.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It makes sense to create a new class (or multiple) just for the report content, as data container. This way, you can assemble your report data in a way that you can access it comfortably from within the template. In the template, it will always be called &amp;quot;report_object&amp;quot; and you can access its properties, as well as the properties of objects it provides in turn. A complex data hierarchy can be processed into a report like this.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>NWE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26976&amp;oldid=prev</id>
		<title>NWE: /* See also */</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26976&amp;oldid=prev"/>
				<updated>2024-07-05T12:30:27Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;See also&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 12:30, 5 July 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 89:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 89:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/scriban/scriban]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/scriban/scriban &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Scriban templating &amp;amp; scripting engine&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Plugin|Reporting (Plugin)]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Coding|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Coding|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Installing|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Installing|Reporting (Plugin)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Plugin|Reporting (Plugin)]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>NWE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26975&amp;oldid=prev</id>
		<title>NWE: Created page with &quot;The UBIK reporting module can be used to generate HTML and PDF reports from a template and a data object from within custom code.{{Version/ServerSince|4.8.0}} == Setup == ===...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Reporting_(Plugin)&amp;diff=26975&amp;oldid=prev"/>
				<updated>2024-07-05T12:29:28Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;The UBIK reporting module can be used to generate HTML and PDF reports from a template and a data object from within custom code.{{Version/ServerSince|4.8.0}} == Setup == ===...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The UBIK reporting module can be used to generate HTML and PDF reports from a template and a data object from within custom code.{{Version/ServerSince|4.8.0}}&lt;br /&gt;
== Setup ==&lt;br /&gt;
=== Binaries ===&lt;br /&gt;
The plugin binaries can be downloaded from the [https://release.augmensys.com/download/modules/Plugins/ release portal]. In the plugins package, there is a folder &amp;quot;UBIK.Module.Reporting&amp;quot; containing required DLLs. &lt;br /&gt;
Additionally, the &amp;quot;BlinkBinariesWindows&amp;quot; package must be downloaded also from the release portal, from the {{UBIK}} Tools section in the Plugins page.&lt;br /&gt;
All binaries must be placed in UBIK.Studio's, UBIK.EnterpriseService's or the UBIKContent web service's Injection folder to install the plugin. &lt;br /&gt;
=== Binding redirect for SyncFusion.Licensing ===&lt;br /&gt;
It appears to be necessary to define an assembly binding redirect for one of the DLLs to fix a version mismatch problem in the SyncFusion library.&lt;br /&gt;
For this, the following XML code has to be added to the app config of the executing program (UBIK.Studio.exe.config, UBIK.EnterpriseService.exe.config, or a web service's web.config):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Syncfusion.Licensing&amp;quot; publicKeyToken=&amp;quot;632609b4d040f6b4&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-22.2460.7.0&amp;quot; newVersion=&amp;quot;20.3460.0.47&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/dependentAssembly&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
To use the plugin, you need the following parts in place:&lt;br /&gt;
* Custom code to render the report&lt;br /&gt;
* A [https://github.com/scriban/scriban Scriban] template to define what the report should look like&lt;br /&gt;
* An object containing the data that should be displayed in the report&lt;br /&gt;
=== Custom Code ===&lt;br /&gt;
The reporting plugin can be used with the following lines of code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
	UBIK.Module.Reporting.ReportEngine reportEngine = new UBIK.Module.Reporting.ReportEngine();&lt;br /&gt;
	string htmlContent = reportEngine.RenderReport(templateFolder, templateName, reportObject, fullPdfFileName);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Make an instance of the &amp;quot;ReportEngine&amp;quot; class and call its method &amp;quot;RenderReport&amp;quot; to create an HTML report and optionally also create a PDF file out of it.&lt;br /&gt;
The method has the following parameters:&lt;br /&gt;
* templateFolder: The path to the folder containing the report templates without trailing folder separator character&lt;br /&gt;
* templateName: The name of the template file without extension&lt;br /&gt;
* reportObject: The object to extract data for the report from&lt;br /&gt;
* fullPdfFileName: The full path to where a PDF version of the report should be created at. This parameter is optional and can be null.&lt;br /&gt;
The resulting HTML code is returned by the method.&lt;br /&gt;
=== Template ===&lt;br /&gt;
[https://github.com/scriban/scriban Scriban] is a scripting engine that can be used to parse text templates. In our case, this means we can create an HTML file and put placeholders into parts of the file where we want report data to show up. We also can use the scripting features to create many rows of a table in a loop, for example. In the Scriban code, the default object is called &amp;quot;report_object&amp;quot;. If this report_object has properties, you can access them by writing report_object.propertyName (fill in the actual name stargin with a lower case). For more detailed information about Scriban, please refer to the &amp;quot;see also&amp;quot; section.&lt;br /&gt;
=== Report object ===&lt;br /&gt;
It makes sense to create a new class (or multiple) just for the report content, as data container. This way, you can assemble your report data in a way that you can access it comfortably from within the template. In the template, it will always be called &amp;quot;report_object&amp;quot; and you can access its properties, as well as the properties of objects it provides in turn. A complex data hierarchy can be processed into a report like this.&lt;br /&gt;
=== Example ===&lt;br /&gt;
To test how it will look and whether it works, you can use the specified template and the specified code. To do this, simply create a folder called &amp;quot; C:\ReportingTest&amp;quot; and save the specified template.html document under it. Then start UBIK.Studio, connect to any {{UBIK}} Environment, insert the code in Who-Bert and start.&lt;br /&gt;
Afterwards, there should be a report PDF file showing the text &amp;quot;BASECLASS&amp;quot; in your ReportingTest folder.&lt;br /&gt;
&lt;br /&gt;
Here's very primitive example for a template HTML file showing just a header containing the object's name:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
	&amp;lt;head&amp;gt;&lt;br /&gt;
	&amp;lt;/head&amp;gt;&lt;br /&gt;
	&amp;lt;body&amp;gt;&lt;br /&gt;
		&amp;lt;h1&amp;gt;{{ report_object.name }}&amp;lt;/h1&amp;gt;&lt;br /&gt;
	&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Use the following Who-Bert code to render a report:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using UBIK.Kernel;&lt;br /&gt;
using UBIK.Compiler;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
&lt;br /&gt;
namespace Studio&lt;br /&gt;
{&lt;br /&gt;
	public class ObjectTest&lt;br /&gt;
	{&lt;br /&gt;
		public void TestObject (params BaseClass[] InVariables)&lt;br /&gt;
		{&lt;br /&gt;
			//Example using static class debugger&lt;br /&gt;
			Debugger.Output(this, &amp;quot;*** Started&amp;quot;);&lt;br /&gt;
			foreach (BaseClass obj in InVariables)&lt;br /&gt;
			{&lt;br /&gt;
				Debugger.Output(this, obj.Name + &amp;quot; &amp;quot; + obj.Description);&lt;br /&gt;
				&lt;br /&gt;
				ReportDTO dto = new ReportDTO(){Name = obj.Name};&lt;br /&gt;
				UBIK.Module.Reporting.ReportEngine reportEngine = new UBIK.Module.Reporting.ReportEngine();&lt;br /&gt;
				string htmlContent = reportEngine.RenderReport(&amp;quot;C:/ReportingTest&amp;quot;, &amp;quot;template&amp;quot;, dto, &amp;quot;C:\\ReportingTest\\report.pdf&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
				Debugger.Output(this, htmlContent);&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
			Debugger.Output(this, &amp;quot;*** Finished&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public class ReportDTO {&lt;br /&gt;
		&lt;br /&gt;
		public string Name { get; set; }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://github.com/scriban/scriban]&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugin|Reporting (Plugin)]]&lt;br /&gt;
[[Category:Coding|Reporting (Plugin)]]&lt;br /&gt;
[[Category:Installing|Reporting (Plugin)]]&lt;/div&gt;</summary>
		<author><name>NWE</name></author>	</entry>

	</feed>