Skip to main content
All docs
V26.1
  • TdxDashboard.Name Property

    Specifies the dashboard name (for template/layout management and content export).

    Declaration

    property Name: string read; write;

    Property Value

    Type Description
    string

    The dashboard name.

    Remarks

    Use the Name property to define a dashboard layout name for export operations when the Layout property contains a non-empty dashboard layout.

    The ExportTo procedure returns a string (as the AFileName parameter) that consists of the Name property value with the file name extension associated with the target export format.

    Code Examples

    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;
    

    Save Dashboard State to File in Response to User Changes

    The following code example saves the current dashboard user interaction state to a JSON file on every change:

    uses
      dxDashboard;  // Declares the TdxDashboard class
    // ...
    
    procedure TMyForm.dxDashboard1StateChanged(ASender: TdxDashboard);
    begin
      ASender.State.SaveToFile(ASender.Name + 'State.json');
    end;
    
    See Also