Syntax & Functions Cookbook
End-to-end report template examples combining multiple syntax functions for real-world Daxium-Air use cases.
This page complements the Syntax & Functions reference with complete, ready-to-adapt report templates for common field operations scenarios.
Recipe 1 — Per-submission inspection report (Word)
Use case: Generate one formatted Word document per intervention submission, including the inspector's details, GPS location, photos with GPS watermarks, and a conditional defect section.
Template structure
<%Inspector.FullName%> — <%F('dd/MM/yyyy', InspectionDate)%>
Site: <%List(', ', SiteAddress, PostalCode, City)%>
Status: <%If(InspectionResult == 'Compliant', 'COMPLIANT ✓', 'NON-COMPLIANT ✗')%>
<%Map(SubmissionLatitude, SubmissionLongitude, 15, 400, 250, 0)%>Photos (with GPS coordinates as watermark):
<%Images(Photos)%><%ImageWatermark(200, 0,
List(' | ',
ImageExif(Photos, 'GpsLatitudeDM'),
ImageExif(Photos, 'GpsLongitudeDM'),
ImageExif(Photos, 'DateTime')
), 'Left', 'Bottom', 'White', '#000000', 0.5, 11)%>Conditional defect section (hidden when no defects):
Signature:
Key functions used
List()— combines address fields, omitting empty onesIf()— renders a human-readable statusMap()— shows the intervention GPS positionImages()+ImageWatermark()+ImageExif()— photos stamped with GPS and dateDisplay()/End— hides the defect section when there are noneRelation()— lists related defect records
Recipe 2 — Monthly summary listing report (Excel)
Use case: An Excel listing report sent by email every month, covering all submissions from the previous month, with a count, total, and bar chart.
PPActions sheet
Type:table ; TableName:Interventions ; Value:Id
Type:table ; TableName:Interventions ; Value:TechnicianName
Type:table ; TableName:Interventions ; Value:InterventionDate
Type:table ; TableName:Interventions ; Value:Duration
Data sheet (Interventions table — one row template)
<%Value:Id%>
<%Value:TechnicianName%>
<%Value:F('dd/MM/yyyy', InterventionDate)%>
<%Value:N(Duration)%>
Summary section (below the table)
Chart (bar chart of interventions by technician):
Listing mode filter (Repeat in PPActions)
Key functions used
N()/Sum()/Avg()/Count()— aggregation over the full datasetChart()— bar chart by technicianRepeat()with date filter — limits to the previous monthF()— date formatting in the table
Recipe 3 — Delivery note with related line items (Word)
Use case: A delivery note per submission, listing the ordered products from a relationship field, with a line count and totals.
Main submission section
Relation table (one row per product)
Place Relation() in the first cell of a table row:
Row template:
<%ProductName%>
<%ProductReference%>
<%Quantity%>
<%F('0.00', UnitPrice)%>
<%F('0.00', Quantity * UnitPrice)%>
Footer row (below the relation table):
Key functions used
Relation()— one row per linked product submission[Relation.Count]— total number of product linesList()— formatted delivery addressArithmetic in tags —
Quantity * UnitPriceSum()— grand total across all product lines
Recipe 4 — Conditional multi-section report (Word)
Use case: A single template that adapts its content based on the value of a list field (e.g. InterventionType). Each section is only rendered for the relevant intervention type.
Pattern
Key functions used
Display()/End— shows each section only for the matching typeIf()— renders pass/fail and result labelsF()— date formatting
Tips for all recipes
Test with real data. Generate a report from a submission that has edge cases (empty optional fields, maximum photo count) before finalising.
Use
Exists()to guard image fields. If a photo may be absent, wrap the tag:<%If(Exists('Photos#1'), Image([Photos#1], 200), '')%>to avoid a blank space in the output.Listing mode limit. Excel and scheduled Word reports are capped at 30,000 submissions. Add a
Repeat()date filter to keep generation times reasonable.Apostrophes. When building templates in PowerPoint, replace smart quotes (
') with straight ones (') before saving — see the PowerPoint page for details.
Last updated
Was this helpful?

