TdxBackendCustomInMemoryJSONConnection.ConnectionString Property
Specifies a connection string or stores serialized data (in the JSON format).
Declaration
property ConnectionString: string read; write;
Property Value
| Type | Description |
|---|---|
| string | The connection string or serialized data in the JSON format. |
Remarks
The ConnectionString property serves different purposes for TdxBackendInMemoryJSONConnection and TdxBackendDataSetJSONConnection components (TdxBackendCustomInMemoryJSONConnection descendants).
In-Memory JSON Connection Component
ConnectionString is the main property[1] in the TdxBackendInMemoryJSONConnection class. You can use this property to:
- Specify required data as a JSON string.
- Specify a Web Service Endpoint URL or a path to the required JSON file.
Dataset-Based JSON Connection Component
The ConnectionString property stores serialized JSON data from datasets associated with a TdxBackendDataSetJSONConnection component. Use the DataSets property to bind and configure one or multiple datasets (TdxMemData, TFDTable, TFDQuery, etc.).
Code Examples
Assign JSON Data as a Connection String
The following code example demonstrates an OnClick event handler that configures a TdxBackendInMemoryJSONConnection component, assigns a table defined within a JSON string to the ConnectionString property, and displays the Dashboard Designer dialog:
uses
dxDashboard.Control, // Declares the TdxDashboardControl component
dxBackend.ConnectionString.JSON; // Declares the TdxBackendInMemoryJSONConnection component
// ...
procedure TMyForm.cxButton1Click(Sender: TObject);
begin
// Specify a user-friendly data connection name (for end-user dialogs)
dxBackendInMemoryJSONConnection1.DisplayName := 'Memory-Based JSON Data Source';
// Define a table that consists of three columns ("id", "Region", and "Sales") and five data rows
dxBackendInMemoryJSONConnection1.ConnectionString := 'Json=''' +
'[{"id": 1, "Region": "Asia", "Sales": 4.7685},' + // Row #1
'{"id": 2, "Region": "Australia", "Sales": 1.9576},' + // Row #2
'{"id": 3, "Region": "Europe", "Sales": 3.3579},' + // Row #3
'{"id": 4, "Region": "North America", "Sales": 3.7477},' + // Row #4
'{"id": 5, "Region": "South America", "Sales": 1.8237}]'''; // Row #5
dxDashboardControl1.ShowDesigner; // Displays the Dashboard Designer dialog
end;
Load JSON Data from a Remote Source
The code example in this section demonstrates an OnClick event handler that configures a TdxBackendInMemoryJSONConnection component used to load JSON data from an external source using a connection string and displays the Dashboard Designer dialog.
Note
This code example demonstrates a sample connection string. You must replace specified parameter values with required URI, username, password, access tokens, etc.
uses
dxDashboard.Control, // Declares the TdxDashboardControl component
dxBackend.ConnectionString.JSON; // Declares the TdxBackendInMemoryJSONConnection component
// ...
procedure TMyForm::cxButton1Click(Sender: TObject);
begin
dxBackendInMemoryJSONConnection1.Active := False; // Terminates the current connection (if one exists)
// Specify a user-friendly data connection name (for end-user dialogs)
dxBackendInMemoryJSONConnection1.DisplayName := 'Memory-Based JSON Data Source';
dxBackendInMemoryJSONConnection1.ConnectionString :=
'Uri=https://northwind.netcore.io/customers.json;' + // Specifies the path to a source JSON file
'Username=user;' + // Specifies a valid user name
'Password=pwd;' + // Specifies the corresponding password for the user name
'MyAuthHeader1=secretToken1;MyAuthHeader2=secretToken2;' + // Specifies authentication tokens
'query:id=123456;query:name=MyName;' // Specifies the required query ID and name
dxBackendInMemoryJSONConnection1.Active := True; // Connects to the target Web service endpoint
dxDashboardControl1.ShowDesigner(); // Displays the Dashboard Designer dialog
end;
Generate Reports Based on In-Memory Data
The following code example loads an XML-based report template (TdxReport.Layout) from a REPX file, populates the template with test data defined in a connection string, and exports the resulting report as a PNG image:
uses
dxReport, // Declares the TdxReport component and related types
dxBackend.ConnectionString.JSON; // Declares the TdxBackendInMemoryJSONConnection component
// ...
procedure TMyForm.Button1Click(Sender: TObject);
var
AJSONDataConnection: TdxBackendInMemoryJSONConnection;
AReport: TdxReport;
AFileStream: TFileStream;
begin
AJSONDataConnection := TdxBackendInMemoryJSONConnection.Create(Self);
try
AJSONDataConnection.Name := 'JSONData';
// Specify in-memory report data as a connection string
AJSONDataConnection.ConnectionString :=
'Json=''[{"id":1, "caption":"test1"},{"id":2, "caption":"test2"}]''';
AReport := TdxReport.Create(Self);
try
AReport.ReportName := 'Report';
AReport.Layout.LoadFromFile('Report.repx'); // Loads a report template
AFileStream := TFileStream.Create('Report.png', fmOpenReadWrite);
try
AReport.ExportToImage(AFileStream); // Exports the report in the default image export format (PNG)
finally
AFileStream.Free;
end;
finally
AReport.Free;
end;
finally
AJSONDataConnection.Free;
end;
end;
Default Value
The ConnectionString property’s default value is an empty string.
-
Available in the Object Inspector.