Quick reference
Templates
Of | Template |
---|---|
JNDI, version: 1.0+ | type: "JNDI" jndi: "dataSource" sql: "SELECT question, answer FROM Answers <@where><@clause render=param.dateOfQuestion?has_content>(Date specific query here)</@clause></@where>" paramConfig: - type: DateTime name: "Date of Question" help: "The date the question was asked." placeholder: "Any" columns: - name: Question extraOptions: styleType: text - name: Answer extraOptions: styleType: numbers extraOptions: image: image1.png reportName: "Answers DB" |
JDBC, version: 1.0+ | type: "JDBC" classLoaderPath: "com.mysql.jdbc.Driver" jdbc: "jdbc:mysql://localhost:3306/test" username: "test" password: "test" sql: "SELECT question, answer FROM Answers <@where><@clause render=param.question?has_content>question=${method.value(param.question)}</@clause></@where>" paramConfig: - type: String name: "Question" help: "Enter the exact question used." placeholder: "All" columns: - name: Question extraOptions: styleType: text - name: Answer extraOptions: styleType: numbers extraOptions: image: image1.png reportName: "Answer DB" |
Groovy, version: 1.0+ | type: "Groovy" groovy: > Map<String, Object> row; row = new HashMap<String, Object>(); // Row 1 row.put("test1","Row 1"); row.put("test2","asdfasdf"); rows.add(row); row = new HashMap<String, Object>(); // Row 2 row.put("test1","Row 2"); row.put("test2","asdfasdf"); rows.add(row); paramConfig: - type: String name: "An anonymous string" help: "Just put anything in" placeholder: "asdfsdaef" value: columns: - name: test1 - name: test2 extraOptions: reportName: "Groovy test" |
Parameter
Of | Snippet |
---|---|
Normal string parameter, version: 1.0+ | Long form paramConfig: - type: String id: name name: "Full name" help: "Leave blank for any" placeholder: "Name" Short form paramConfig: - { type: String, id: name, name: "Full name", help: "Leave blank for any", placeholder: "Name" } |
Date parameter, version: 1.0+ | Long form paramConfig: - type: Date id: startDate name: "Start On Date" help: "" placeholder: "" Short form paramConfig: - { type: Date, id: startDate, name: "Start On Date", help: "", placeholder: "" } |
Date time, version: 1.0+ | Long form paramConfig: - type: DateTime id: startDate name: "Start at" help: "" placeholder: "" Short form paramConfig: - { type: DateTime, id: startDate, name: "Start at", help: "", placeholder: "" } |
Boolean parameter, version: 1.0+ | Long form paramConfig: - type: Boolean name: "Select one" help: "Just select something" placeholder: "No Value" value: Short form paramConfig: - { type: Boolean, name: "Select one", help: "Just select something", placeholder: "No Value", value: } |
Number parameter, version: 1.0+ | Long form paramConfig: - type: Number name: "Enter one" help: "Just type a number or something" placeholder: "3.14" value: Short form paramConfig: - { type: Number, name: "Enter one", help: "Just type a number or something", placeholder: "3.14", value: } |
Ordinary combo box parameter, version: 1.1+ | Long form paramConfig: - type: Combo name: "Select one" help: "Just select anything" placeholder: "asdfsdaef" from: list: values: - 2012 - 2013 - 2014 Short form paramConfig: - { type: Combo, name: "Select one", help: "Just select anything", placeholder: "asdfsdaef", from: { list: {values: [ 2012, 2013, 2014 ] } } } |
Multi combo box, version: 1.1+ | Long form paramConfig: - type: ManyCombo name: "Select many" help: "You can select more than 1" placeholder: "" from: list: values: - c1 - v1 - v2 Short form paramConfig: - { type: ManyCombo, name: "Select many", help: "You can select more than 1", placeholder: "", from: { list: {values: [ c1, v1, v2 ] } } } |
Combo or Multicombo box with values from an SQL query, version: 1.1+ | Long form paramConfig: - type: Combo name: "An anonymous string" help: "Just put anything in" placeholder: "asdfsdaef" value: from: sql: selectedColumn: username report: type: "JDBC" jdbc: "jdbc:mysql://localhost:3306/test" sql: "SELECT id, email, enabled, username, version FROM User <#if param.User?has_content>WHERE username=${method.value(param.User)}</#if><@limit />;" username: root password: |
Combo or Multicombo box with values from a groovy script, version: 1.1+ | - type: Combo name: "Month" help: "" placeholder: "" from: groovy: "result.addAll(Arrays.asList(new java.text.DateFormatSymbols().getMonths()))" |
Normal String Parameter, which is required for the report to run: (1.7+) | Long form paramConfig: - type: String id: name name: "Full name" help: "Leave blank for any" placeholder: "Name" required: true Short form paramConfig: - { type: String, id: name, name: "Full name", help: "Leave blank for any", placeholder: "Name", required: true } |
Freemarker Markup
Of | Snippet |
---|---|
Freemarker if | <#if param.appointment>1<#else>0</#if> |
for each | SELECT date AS 'Date' <#list ["uniqueProperty1", "uniqueProperty2", "uniqueProperty3", "uniqueProperty4"] as x> `${x}` AS '${x}' </#list> FROM dynamicTable WHERE category IS NULL <#list param.selectedValues as x> OR category=`${x}` </#list> <@limit /> |
Switch | SELECT invoiceNumber, invoicePrice FROM invoice WHERE <#switch param.mode> <#case "Test"> category="TE" <#case "Customer 1"> category="ON" <#default> category IS NOT NULL </#switch> |
Freemarker values
To | Do |
---|---|
Get a parameter value | param.paramName |
Insert a value into the page - not recommended, see custom functions | ${param.paramName} |
Boolean to string | param.paramName?string( "yes" , "no" ) |
Date to string |
|
String to date | param.paramName?date("MM/dd/yyyy") |
Trim | param.paramName?trim |
Capitalize the first letter | param.paramName?cap_first |
Convert to uppercase | param.paramName?upper_case |
Capitalize the first letter of every word | param.paramName?capitialize |
Freemarker Customer functions
To | Do |
---|---|
Insert a parameter value safely into a page, version: 1.0+ | ${method.value(param.paramName)} |
Convert a value back to a date for a sql safe query | ${method.value(param.paramName?date)} |
Insert an array / freemarker list parameter value safely into a page, version: 1.3+ | ${method.values(param.paramName)} |
Freemarker Custom tags
To | Do |
---|---|
Limit, required for each data query, version: 1.0+ | Generic: <@limit /> Mysql <@limit sql=mysql /> Postgres <@limit sql=postgres /> |
Custom where query, version: 1.0+ | <@where> <@clause render=true>columnB=${method.value(param.test)}</@clause> <@clause render=false>columnC=${method.value(param.test)}</@clause> <@clause render=param.test='ParameterOutput'>columnD=${method.value(param.test)}</@clause> </@where> <@where type='and'> clause... </@where> <@where type='or'> clause... </@where> <@where type='and'> <@where type=OR> clause... </@where> <@where type=OR> clause... </@where> <@where type=OR> clause... </@where> </@where> |