Renders a paginated, printable record view of a webhook payload for a specific data record, resolving nested array/set structures and supporting multi-page output with header and footer sections.
HOOKRECORD — set as ReportType in def_report.
def Render(self, Param1="", Param2="", Param3="") -> str:
The query must return rows with columns: WebhookCode (col 0), record GUID (col 1). For each row, the webhook's parameter structure is decoded recursively and rendered as a hierarchical table. Page breaks are inserted automatically after 40 rows; each page gets a heading with company avatar and QR code and a footer with title and page number.
SplitOnCase(Val)Converts camelCase/mixed strings into title-case display names.
ParamTrans(ParamType, Name)Extracts and casts a parameter value from self.ParamValue to the specified type.
GetType(Paramname, ParamBlock)Looks up the ValueType for a parameter from def_webhook_parameters.
GetDisplayName(Parameter, BlockName)Resolves the human-readable display name for a parameter, falling back to SplitOnCase.
GetValue(ParamName, Guid, ParamBlock, ParamType)Reads a field value from the configured data table; resolves lookup SQL for INTEGER types and applies currency/percent formatting.
RenderFooter(Guid, PageBreak)Renders the page footer with optional page break.
RenderHeading(Guid)Renders the page heading with company avatar and QR code.
EncodeStruct(Level, BlockName, BaseName, Repeat)Recursively builds an ordered dict representing the webhook parameter tree.
CheckRank(Parameter)Tracks the maximum rank seen across parameters for correct display-name resolution.
RenderBlock(Out, Guid, Level, BlockName)Recursively renders a parameter sub-block as table rows.