Skip to main content
All docs
V25.2
  • TdxDashboard.Layout Property

    Provides access to the dashboard layout definition (in the XML format).

    Declaration

    property Layout: TStringList read; write;

    Property Value

    Type Description
    TStringList

    Stores the current dashboard layout (as individual strings in the XML format).

    Remarks

    A dashboard layout definition contains data visualization items, properties, data bindings, and general layout information. You can use the Layout property to load, save, and access the dashboard layout.

    Available Options

    Call Layout.LoadFromFile/Layout.LoadFromStream and Layout.SaveToFile/Layout.SaveToStream procedures to import and export configured dashboard layouts in the XML format.

    In addition, you can use Layout.Strings and Layout.Text properties to access and modify dashboard layout content directly (if required).

    Refer to the TStringList class description for detailed information on all available options.

    Dashboard User Interaction States

    The State property allows you to load and apply a previously saved dashboard user interaction state that includes filter criteria, drill-down values, the active tab page, dashboard parameter values, individual data visualization item states, and other configuration options set by users.

    Code Example: Export Dashboard Content to PDF Without User Interaction

    The following code example configures a memory-based data source (TdxBackendInMemoryJSONConnection), loads an XML dashboard layout, and exports dashboard content to a PDF file without user interaction:

    uses
      dxBackend.ConnectionString.JSON,  // Declares the TdxBackendInMemoryJSONConnection component
      dxDashboard;                      // Declares the TdxDashboard class
    // ...
    
    procedure TMyForm.cxExportButtonClick(Sender: TObject);
    var
      ADashboard: TdxDashboard;
      AJSONDataConnection: TdxBackendInMemoryJSONConnection;
      AMemoryStream: TMemoryStream;
      AFileName, AJSONData: string;
    begin
      // Define a table that consists of three columns ("id", "Region", and "Sales") and five data rows
      AJSONData :=
    
      '[{"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
    
      AJSONDataConnection := TdxBackendInMemoryJSONConnection.Create(Self);  // Creates a data connection
      try
        AJSONDataConnection.Name := 'JSONData';        // Assigns a name to the created data connection
        AJSONDataConnection.SetJSONValue(AJSONData);   // Assigns the defined JSON data string
        ADashboard := TdxDashboard.Create(Self);       // Creates a TdxDashboard container
        try
          ADashboard.Layout.LoadFromFile('MyDashboardLayout.xml');  // Loads an XML dashboard layout
          ADashboard.Name := 'MyDashboard';                         // Defines a dashboard name
          AMemoryStream := TMemoryStream.Create;                    // Creates a memory stream
          try
            // Export dashboard content to the created memory stream in the PDF format
            ADashboard.ExportTo(TdxDashboardExportFormat.PDF, AMemoryStream, AFileName);
            AMemoryStream.SaveToFile(AFileName);                    // Saves the resulting PDF file
          finally
            AMemoryStream.Free;                                     // Releases the memory stream
          end;
        finally
          ADashboard.Free;                                          // Releases the TdxDashboard container
        end;
      finally
        AJSONDataConnection.Free;                                   // Releases the data connection
      end;
    end;
    
    See Also