Toolbar customization

To customize the Bold Reports® React Report Viewer toolbar, use the templates and the Report Viewer toolbar customization properties. You can hide the toolbar to show a customized user interface, or customize the toolbar icons and element appearance.

This tutorial uses the Sales Order Detail.rdl report. Download the Sales Order Detail report. You can add the reports from the Bold Reports® installation location. For more information, refer to Samples and demos.

How do I hide toolbar items?

To hide toolbar items in the React Report Viewer, set the toolbarSettings property. The following code can be used to remove the parameter option from the toolbar and hide the parameter block. Use the following code snippet in App.js file.

Similarly, you can show or hide all other toolbar options with the help of toolbarSettings.items enum.

Use the following code snippet in App.js file.

var toolbarSettings = {
  items: ~ej.ReportViewer.ToolbarItems.Parameters
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}>
            </BoldReportViewerComponent>
    </div>
  );
}

The following code sample, which you can use in the App.js file, hides the print options from the toolbar items.

var toolbarSettings = {
  items: ~ej.ReportViewer.ToolbarItems.Print
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I enable the stop option in the toolbar?

To enable the stop option in the React Report Viewer toolbar, set the toolbarSettings.items property to ej.ReportViewer.ToolbarItems.All. The following code can be used to enable stop option in toolbar in App.js file.

var toolbarSettings = {
  items: ej.ReportViewer.ToolbarItems.All
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I enable the export setup option in the toolbar?

To enable the export setup option in the React Report Viewer toolbar, set the toolbarSettings.items property to ej.ReportViewer.ToolbarItems.All. The following code can be used to enable export setup option in toolbar in App.js file.

var toolbarSettings = {
  items: ej.ReportViewer.ToolbarItems.All
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I enable the search text option in the toolbar?

To enable the search text option in the React Report Viewer toolbar, set the toolbarSettings.items property to ej.ReportViewer.ToolbarItems.All. The following code can be used to enable search text option in toolbar in App.js file.

var toolbarSettings = {
  items: ej.ReportViewer.ToolbarItems.All
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I hide the toolbar?

To hide the React Report Viewer toolbar, set the showToolbar property to false.

var toolbarSettings = {
  showToolbar: false
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I show or hide the export options?

To show or hide the default export types in the React Report Viewer, use the exportOptions property. The following code, which is used in the App.js file, hides the HTML export type from the default export options.

var exportsettings = {
    exportOptions: ej.ReportViewer.ExportOptions.All & ~ej.ReportViewer.ExportOptions.HTML
    };

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            exportSettings = {exportsettings}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I add custom items to the export drop-down?

To add custom items to the export drop-down available in the React Report Viewer toolbar, use the customItems property and provide the JSON array of collection input with the index, cssClass name, and value properties. Register the exportItemClick event to handle the custom item actions, as in the following code snippet for the App.js file.

var exportsettings = {
    customItems: [{
        index: 2,
        cssClass: '',
        value: 'Text File'
        },
        {
        index: 4,
        cssClass: '',
        value: 'DOT'
        }]
    };

//Export click event handler
function onExportItemClick(event) {
    if (event.value === "Text File") {
        //Implement the code to export report as Text
        alert("Text File export option clicked");
    } else if (event.value === "DOT") {
        //Implement the code to export report as DOT
        alert("DOT export option clicked");
        }
    }

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            exportSettings = {exportsettings}
            exportItemClick = {onExportItemClick}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I add a custom toolbar item?

To add custom items to the React Report Viewer toolbar, use the toolbarSettings property. You must register the toolBarItemClick event to handle the newly added custom items action.

How do I add a custom item to an existing toolbar group?

To add a custom item to an existing toolbar group in the React Report Viewer, use the customItems property in toolbarSettings. Provide the JSON array of collection input with the groupIndex, index, itemType, cssClass name, and tooltip properties, as in the following code snippet for the App.js file.

var toolbarSettings = {
  showToolbar: true,
  items: ~ej.ReportViewer.ToolbarItems.Print,
  customItems: [{
    groupIndex: 1,
    index: 1,
    type: 'Default',
    cssClass: "e-icon e-mail e-reportviewer-icon",
    id: 'E-Mail',
    tooltip: {
        header: 'E-Mail',
        content: 'Send rendered report as mail attachment'
        }
    }]
}

 //Toolbar click event handler
 function onToolBarItemClick(event) {
  if (event.value === "CustomItem") {
      //Implement the code to CustomItem toolbar option
      alert("Email item toolbar option Clicked");
  }
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}
            toolBarItemClick = {onToolBarItemClick}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I add a new toolbar group?

To add a new toolbar group and custom items to the React Report Viewer toolbar, use the customGroups property in the toolbarSettings and provide the JSON array of collection input with the groupIndex and items properties. The items should have the itemType, cssClass, and tooltip properties as in the following code snippet for the App.js file.

var toolbarSettings = {
  showToolbar: true,
    items: ~ej.ReportViewer.ToolbarItems.Print,
    customGroups: [{
        items: [{
            type: 'Default',
            cssClass: "e-icon e-mail e-reportviewer-icon CustomGroup",
            id: 'CustomGroup',
            tooltip: { header: 'CustomGroup', content: 'toolbargroups' }
            },
            {
            type: 'Default',
            cssClass: "e-icon e-mail e-reportviewer-icon subCustomGroup",
            id: 'subCustomGroup',
            tooltip: { header: 'subCustomGroup', content: 'subtoolbargroups' }
            }],
        groupIndex: 3
    }]
}

  //Toolbar click event handler
function onToolBarItemClick(event) {
    if (event.value === "CustomGroup") {
        //Implement the code to CustomGroup toolbar option
        alert("CustomGroup toolbar option clicked");
    }
    if (event.value === "subCustomGroup") {
        //Implement the code to subCustomGroup toolbar option
        alert("SubCustomGroup toolbar option clicked");
    }
}

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            toolbarSettings = {toolbarSettings}
            toolBarItemClick = {onToolBarItemClick}>
            </BoldReportViewerComponent>
    </div>
  );
}

How do I hide paper sizes in the page settings?

To hide one or more paper sizes in the React Report Viewer page settings, use the hidePagePaperSizes property.

var pageSettings = {
    hidePagePaperSizes: ["A3", "A4", "Letter"]
};

function App() {
  return (
    <div style={viewerStyle} className="App">
            <BoldReportViewerComponent
            id="reportviewer-container"
            serviceUrl={'https://demos.boldreports.com/services/api/ReportViewer'}
            reportPath = {'~/Resources/docs/sales-order-detail.rdl'}
            pageSettings = {pageSettings}>
            </BoldReportViewerComponent>
    </div>
  );
}