Skip to content
Create Report

Create Report

CreateReport (Report, Location, ReportSettings, [ShowProgress])
    Report - {rcReportType} | The Radius report to create.
    Location - {Range|ListObject} | Worksheet range or existing Excel table at which to create the report.
    ReportSettings - {String} | Xml string containing report settings, as generated by GenerateReportSettings.
    ShowProgress - {Boolean} | Optional. Set to False to hide RadiusCore’s progress bar.

Create any RadiusCore report from command line.

Warning

'ReportSettings' string required format was changed from Json to Xml in RadiusCore v1.11.0. See GenerateReportSettings.

VB
 Public Sub radius_Sample()  
    ' Error handling.  
    On Error GoTo radius_ErrorHandling  
    
    Dim radius_Settings As String
    Dim radius_TargetReportDate as Date
    
   ' Get target date (this can be read this from a sheet cell, for example).
    radius_TargetReportDate = VBA.DateSerial(2024, 03, 31)
    
   ' Populate settings string inserting custom date.
    radius_Settings = "<ReportSettings><Date><At>" & VBA.Format$(radius_TargetReportDate, "yyyy-mm-dd") & "</At></Date><ComparisonPeriods number='1' length='1' size='year' sort='descending'/><Columns><Column id='Code' name='Account Code' format='text'/><Column id='Name' name='Account' format='text'/><Column id='Type' name='Account Type' format='text'/></Columns><Options><ReportPeriod>year</ReportPeriod><ZeroBalanceAccounts>false</ZeroBalanceAccounts><SaveSettings>true</SaveSettings><Decimals>true</Decimals><paymentsOnly>false</paymentsOnly><CombineDrCr>true</CombineDrCr></Options><Layout>Table</Layout></ReportSettings>"
    
    ' Create report on Sheet1, cell A1.
    RadiusCore.CreateReport xroRepTrialBalanceMulti, Sheet1.Range("A1"), radius_Settings, True    
    ' Create report on an existing table on Sheet2. Don't show the progress bar.  
    RadiusCore.CreateReport xroRepTrialBalanceMulti, Sheet2.ListObjects("TableName"), radius_Settings, False
    
    Exit Sub  
    
radius_ErrorHandling:  
    ' Implement per RadiusCore error handling example.  
End Sub  
VB
' To create an account transactions report for multiple accounts at once via API.
' Note: Before running this, create an Account List report on a sheet named 'XeroAccounts' with Columns `Name`, `Code`, and `Account ID` included.
Public Sub radius_Sample()
    ' Error handling.
    On Error GoTo radius_ErrorHandling
    
    Dim radius_ReportSettings As String
    Dim radius_ListRow As ListRow
    Dim radius_TargetAccountNames As Variant
    Dim radius_DateFrom As Date
    Dim radius_DateTo As Date
    Dim radius_HasValidAccount As Boolean
    
    ' Add all of the accounts you want to get here (this array could be read from a range of sheet cells to allow the user to easily edit)
    radius_TargetAccountNames = Array("AccountName1", "AccountName2", "AccountName3")
    
    ' Set report date range (this can be read this from a sheet cell, for example).
    radius_DateFrom = VBA.DateSerial(2024, 3, 1)
    radius_DateTo = VBA.DateSerial(2024, 3, 31)
    
    ' Compile report settings
    radius_ReportSettings = "<ReportSettings><Accounts>"
    For Each radius_ListRow In Sheets.Item("XeroAccounts").ListObjects.Item(1).ListRows
        If VBA.InStr(VBA.Join(radius_TargetAccountNames, ","), radius_ListRow.Parent.ListColumns.Item("Name").DataBodyRange.Item(radius_ListRow.Index).Value) Then
            radius_ReportSettings = radius_ReportSettings & "<Account id='" & radius_ListRow.Parent.ListColumns.Item("Account ID").DataBodyRange.Item(radius_ListRow.Index).Value & "' name='" & radius_ListRow.Parent.ListColumns.Item("Name").DataBodyRange.Item(radius_ListRow.Index).Value & "' code='" & radius_ListRow.Parent.ListColumns.Item("Code").DataBodyRange.Item(radius_ListRow.Index).Value & "'/>"
            radius_HasValidAccount = True
        End If
    Next radius_ListRow
    radius_ReportSettings = radius_ReportSettings & "</Accounts><Date><From>" & VBA.Format$(radius_DateFrom, "yyyy-mm-dd") & "</From><To>" & VBA.Format$(radius_DateTo, "yyyy-mm-dd") & "</To></Date>"
    radius_ReportSettings = radius_ReportSettings & "<Columns><Column id='AccountCode' name='Account Code' format='text'/><Column id='AccountName' name='Account Name' format='text'/><Column id='JournalDate' name='Date' format='date'/><Column id='SourceType' name='Source' format='text'/><Column id='Description' name='Description' format='text'/><Column id='Reference' name='Reference' format='text'/><Column id='Debit' name='Debit' format='number'/><Column id='Credit' name='Credit' format='number'/><Column id='RelatedAccount' name='Related Account' format='text'/></Columns>"
    radius_ReportSettings = radius_ReportSettings & "<Options><SaveSettings>false</SaveSettings><Decimals>true</Decimals></Options><Layout>Table</Layout></ReportSettings>"
      
    If Not radius_HasValidAccount Then
        VBA.MsgBox "No valid accounts found, report cannot be created", vbExclamation + vbOKOnly, "MyApplicationName"
        Exit Sub
    End If
    
    ' Create report on activesheet, cell A1.
    RadiusCore.CreateReport xroRepAccountTransactions, ActiveSheet.Range("A1"), radius_ReportSettings, True
    Exit Sub
    
radius_ErrorHandling:
    ' Implement per RadiusCore error handling example.
End Sub

© 2026 RadiusCore Documentation. All rights reserved.