Back to Devexpress

TdxDashboard.Name Property

vcl-dxdashboard-dot-tdxdashboard-cc570cb6.md

latest5.8 KB
Original Source

TdxDashboard.Name Property

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

Declaration

delphi
property Name: string read; write;

Property Value

TypeDescription
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 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:

delphi
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;
cpp
#include "dxBackend.ConnectionString.JSON.hpp" // Declares the TdxBackendInMemoryJSONConnection component
#include "dxDashboard.hpp" // Declares the TdxDashboard class

// Add the following linker directives to the corresponding CPP source file:
#pragma link "dxDashboard" // Required to use dxDashboard.hpp declarations
#if defined(_WIN64) // Required to use dxBackend.ConnectionString.JSON.hpp declarations
  #pragma link "dxBackend.ConnectionString.JSON.o"
#else
  #pragma link "dxBackend.ConnectionString.JSON.obj"
#endif
// ...

void __fastcall TMyForm::cxExportButtonClick(TObject *Sender)
{
  TdxDashboard *ADashboard;
  TdxBackendInMemoryJSONConnection *AJSONDataConnection;
  TMemoryStream *AMemoryStream;
  UnicodeString AFileName;

  // Define a table that consists of three columns ("id", "Region", and "Sales") and five data rows:
  UnicodeString AJSONData =

  "[{\"id\": 1, \"Region\": \"Asia\", \"Sales\": 1.9576}," // 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 = new TdxBackendInMemoryJSONConnection(this); // 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 = new TdxDashboard(this); // Creates a TdxDashboard container
    try
    {
      ADashboard->Layout->LoadFromFile("MyDashboardLayout.xml"); // Loads an XML dashboard layout
      ADashboard->Name = "MyDashboard"; // Defines a dashboard name
      AMemoryStream = new TMemoryStream(); // 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
      {
        delete AMemoryStream; // Releases the memory stream
      }
    }
    __finally
    {
      delete ADashboard; // Releases the TdxDashboard container
    }
  }
  __finally
  {
    delete AJSONDataConnection; // Releases the data connection
  }
}

See Also

TdxCustomDashboardControl.DashboardName Property

TdxDashboard Class

TdxDashboard Members

dxDashboard Unit