Using a Custom Data Adapter
Our sample projects and report templates can help you learn the basics of working with our products.For a data source the engine does not support natively, you can register a custom database that answers its data commands yourself.
In Angular.
How it works. The engine talks to your adapter through the same command protocol as built-in databases, so any JavaScript-queryable source becomes a dashboard data source.
In Angular.
import { Component } from "@angular/core";
import { Designer, Stimulsoft } from "stimulsoft-dashboards-js-angular/designer";
@Component({
imports: [Designer],
template: `<sti-designer [(report)]="report" [options]="options"></sti-designer>`
})
export class Example {
report: Stimulsoft.Report.StiReport;
options: Stimulsoft.Designer.StiDesignerOptions;
constructor() {
Stimulsoft.Report.Dictionary.StiCustomDatabase.registerCustomDatabase({
serviceName: "MyDatabase",
process: function (command, callback) {
if (command.command === "TestConnection") callback({ success: true });
if (command.command === "RetrieveSchema") callback({ success: true, data: demoData, types: demoDataTypes });
if (command.command === "RetrieveData") callback({ success: true, data: demoData[command.queryString] });
}
});
this.report = new Stimulsoft.Report.StiReport();
this.report.loadFile("Dashboards/CustomAdapter.mrt");
this.options = new Stimulsoft.Designer.StiDesignerOptions();
this.options.appearance.fullScreenMode = true;
}
}registerCustomDatabase({ serviceName, process })— plugs a bespoke source into the dictionary.- The
processcallback answersTestConnection,RetrieveSchemaandRetrieveDatawith your own data.
How it works. The engine talks to your adapter through the same command protocol as built-in databases, so any JavaScript-queryable source becomes a dashboard data source.