Skip to main content
All docs
V25.2
  • 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.

    Footnotes
    1. Available in the Object Inspector.

    See Also