Back to Devexpress

TdxChartSeriesDBDataBinding.ValueField Property

vcl-dxchartdbdata-dot-tdxchartseriesdbdatabinding-3a66a9f2.md

latest7.1 KB
Original Source

TdxChartSeriesDBDataBinding.ValueField Property

Provides access to data binding settings for series values in bound mode.

Declaration

delphi
property ValueField: TdxChartSeriesDBField read; write;

Property Value

TypeDescription
TdxChartSeriesDBField

The settings of the dataset field used as a source of series values in bound mode.

|

Remarks

To obtain series values from a dataset, do the following:

  • Use the DataSource property to bind a series to data.
  • Make sure that the underlying dataset is enabled.
  • Assign the name of a field in the underlying dataset to the ValueField.FieldName property.

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

Code Example: Create Three Bound Line Series

The following code example creates three line series with identical appearance settings in bound mode:

delphi
var
  AXYDiagram: TdxChartXYDiagram;
  AXYSeriesAmericas, AXYSeriesEurope, AXYSeriesAfrica: TdxChartXYSeries;
  ALineView: TdxChartXYSeriesLineView;
  ADataBinding: TdxChartXYSeriesDBDataBinding;
begin
  dxChartControl1.BeginUpdate; // Initiates the following batch change
  try
    dxChartControl1.Titles.Add.Text := 'Historic, Current, and Future Population Projection';
    AXYDiagram := dxChartControl1.AddDiagram<TdxChartXYDiagram>;
    AXYDiagram.Axes.AxisY.Title.Text := 'Population mid-year, millions';
    AXYDiagram.Axes.AxisX.Interlaced := True;
    AXYSeriesEurope := AXYDiagram.AddSeries('Europe'); // Creates a new series with the caption "Europe"
    AXYSeriesEurope.ShowInLegend := TdxChartSeriesShowInLegend.Diagram;
    AXYSeriesEurope.DataBindingClass := TdxChartXYSeriesDBDataBinding;
    ADataBinding := AXYSeriesEurope.DataBinding as TdxChartXYSeriesDBDataBinding;
    ADataBinding.DataSource := dsPopulation; // Assigns a data source
    ADataBinding.DataSource.DataSet := mdPopulation; // Assigns a dataset
    ADataBinding.DataSource.DataSet.Active := True; // Enables the assigned dataset
    ADataBinding.ArgumentField.FieldName := 'Year'; // Specifies the source dataset field for arguments
    ADataBinding.ValueField.FieldName := 'Europe'; // Specifies the source dataset field for values
    AXYSeriesEurope.ViewClass := TdxChartXYSeriesLineView; // Selects the Line series View
    ALineView := AXYSeriesEurope.View as TdxChartXYSeriesLineView;
    ALineView.Markers.Visible := True; // Displays value markers
    ALineView.ValueLabels.Visible := True; // Displays value labels
    ALineView.Appearance.StrokeOptions.Width := 2; // Increases line width
    AXYSeriesAmericas := AXYDiagram.AddSeries; // Creates a new series with the default settings
    AXYSeriesAmericas.AssignFrom(AXYSeriesEurope); // Copies all settings from the "Europe" series
    AXYSeriesAmericas.Caption := 'Americas'; // Defines a different series caption
    // Specifies a different source dataset field for values
    ADataBinding := AXYSeriesAmericas.DataBinding as TdxChartXYSeriesDBDataBinding;
    ADataBinding.ValueField.FieldName := 'Americas';
    AXYSeriesAfrica := AXYDiagram.AddSeries; // Creates a new series with the default settings
    AXYSeriesAfrica.AssignFrom(AXYSeriesEurope); // Copies all settings from the "Europe" series
    AXYSeriesAfrica.Caption := 'Africa'; // Defines a different series caption
    // Specifies a different source dataset field for values
    ADataBinding := AXYSeriesAfrica.DataBinding as TdxChartXYSeriesDBDataBinding;
    ADataBinding.ValueField.FieldName := 'Africa';
  finally
    dxChartControl1.EndUpdate; // Calls EndUpdate regardless of the batch operation's success
  end;
end;
cpp
TdxChartXYDiagram *AXYDiagram;
  TdxChartXYSeries *AXYSeriesEurope, *AXSeriesAmericas, *AXYSeriesAfrica;
  TdxChartXYSeriesLineView *ALineView;
  TdxChartXYSeriesDBDataBinding *ADataBinding;
  // ...
  dxChartControl1->BeginUpdate(); // Initiates the following batch change
  try
  {
    dxChartControl1->Titles->Add()->Text = "Historic, Current, and Future Population Projection";
    AXYDiagram = new TdxChartXYDiagram(dxChartControl1->Owner);
    AXYDiagram->SetParentComponent(dxChartControl1);
    AXYDiagram->Axes->AxisY->Title->Text = "Population mid-year, millions";
    AXYDiagram->Axes->AxisX->Interlaced = true;
    AXYSeriesEurope = AXYDiagram->AddSeries("Europe"); // Creates a new series with the caption "Europe"
    AXYSeriesEurope->ShowInLegend = TdxChartSeriesShowInLegend::Diagram;
    AXYSeriesEurope->DataBindingClass = __classid(TdxChartXYSeriesDBDataBinding);
    ADataBinding = dynamic_cast<TdxChartXYSeriesDBDataBinding*>(AXYSeriesEurope->DataBinding);
    ADataBinding->DataSource = dsPopulation; // Assigns a data source
    ADataBinding->DataSource->DataSet = mdPopulation; // Assigns a dataset
    ADataBinding->DataSource->DataSet->Active = true; // Enables the assigned dataset
    ADataBinding->ArgumentField->FieldName = "Year"; // Specifies the source dataset field for arguments
    ADataBinding->ValueField->FieldName = "Europe"; // Specifies the source dataset field for values
    AXYSeriesEurope->ViewClass = __classid(TdxChartXYSeriesLineView); // Selects the Line series View
    ALineView := dynamic_cast<TdxChartXYSeriesLineView*>(AXYSeriesEurope->View);
    ALineView->Markers->Visible := true; // Displays value markers
    ALineView->ValueLabels->Visible = true; // Displays value labels
    ALineView->Appearance->StrokeOptions->Width = 2; // Increases line width
    AXYSeriesAmericas = AXYDiagram->AddSeries(); // Creates a new series with the default settings
    AXYSeriesAmericas->AssignFrom(AXYSeriesEurope); // Copies all settings from the "Europe" series
    ADataBinding = dynamic_cast<TdxChartXYSeriesDBDataBinding*>(AXYSeriesAmericas->DataBinding);
    ADataBinding->ValueField->FieldName = "Americas"; // Specifies a different source dataset field for values
    AXYSeriesAmericas->Caption = "Americas"; // Defines a different series caption
    AXYSeriesAfrica = AXYDiagram->AddSeries(); // Creates a new series with the default settings
    AXYSeriesAfrica->AssignFrom(AXYSeriesEurope); // Copies all settings from the "Europe" series
    ADataBinding = dynamic_cast<TdxChartXYSeriesDBDataBinding*>(AXYSeriesAfrica->DataBinding);
    ADataBinding->ValueField->FieldName = "Africa"; // Specifies a different source dataset field for values
    AXYSeriesAfrica->Caption = "Africa"; // Defines a different series caption
  }
  __finally
  {
    dxChartControl1->EndUpdate(); // Calls EndUpdate regardless of the batch operation's success
  }
  // ...

See Also

TdxChartSeriesDBDataBinding Class

TdxChartSeriesDBDataBinding Members

dxChartDBData Unit