It is possible to prepare custom reports in HTML, Text, Excel, Zip or CSV formats with GEODI.

(info) You will need a GEODI Pro license for reporting.

Reports have Macro and Localization support.

A Notification E-mail Body definitions are also a report. You may utilize reporting feature in many places.

Reports need a jSettings and other file depending on the type. The settings must reside in Settings/Reports or %appdata%App/Geodi/Settings/Reports.



Report jSettings

Report display name, icon, visibility condition and many other settings reside in JSettings.

Conditionally Displaying

ConditionMacro defines the report’s visibility. If the report is specific to a WorkSpace use ActionTarget. The MAcro page may have more samples.

{
    ID:"MyReport",
	DisplayName:"[$.en:My Report;tr:Benim Raporum]",
    __type: "Factory.ActionFactory:HTMLReporter",
	ActionTargets:"*",
	ConditionMacro:'c.HasPermission("DECE.SYSTEMMANAGER")',
}

Pre Query

If your report should only contain PDF files then "AndQuery in GenericSettings" will limit the report rows. The following sample limits report to erroneous files only.

{
    ID:"MyReport",
	DisplayName:"[$.en:My Report;tr:Benim Raporum]",
	 IconName:"Layer/newspaper",
    __type: "Factory.ActionFactory:HTMLReporter",
	ActionTargets:"*",
	ConditionMacro:'c.HasPermission("DECE.SYSTEMMANAGER")',
	GenericSettings: {
			"AndQuery": " status:HasCanError"
		}
}


Each Row is a Content

By default, each row in a GEODI report is a GeodEntry, which is a word discovered. Every date or IBAN discovered will be a row in the report. With the following settings, each row will be content.

{
   ..
  GenericSettings: {
		"OneSummaryPerRecord":true
  }
}

Init

Runs before the report. The following samples how to change data objects so that each row will be a layer. You may try different distinct criteria and look at other methods of the context object.

{
  ..
  "Init":['=c.Data=c.Distinct(c.Data,"=string.Concat(context.Data.OutputGeodiContent.SystemContentID,context.Data.RecognizerBackRef.Recognizer.DisplayName )")']
}