Back to Devexpress

TcxGridDBDataController.CreateAllItems(Boolean) Method

vcl-cxgriddbdatadefinitions-dot-tcxgriddbdatacontroller-dot-createallitems-x28-system-dot-boolean-x29.md

latest6.1 KB
Original Source

TcxGridDBDataController.CreateAllItems(Boolean) Method

Creates grid items for fields in the bound dataset.

Declaration

delphi
procedure CreateAllItems(AMissingItemsOnly: Boolean = False);

Parameters

NameTypeDescription
AMissingItemsOnlyBoolean

Optional. Specifies if the data controller creates grid items for all fields in the bound dataset.

You can pass True as the AMissingItemsOnly parameter to ensure that the procedure does not create grid items for the dataset fields that already have associated grid items in the same grid View.

Note

If you omit this parameter, the procedure always creates grid items for all fields in the bound dataset.

|

Remarks

Call the CreateAllItems procedure to create grid items for all fields in the bound dataset. The CreateAllItems procedure assigns corresponding dataset field names to the DataBinding.FieldName property of all created grid items.

Note

If a source dataset field’s Visible property is set to False, the corresponding created grid item’s Visible property is also set to False.

Code Example: Create Dataset Fields and Populate a Bound Table View

The following code example creates three dataset fields and two records in a TdxMemData component, and displays data in a bound data-aware grid Table View:

delphi
uses
  dxmdaset, cxGrid, cxGridDBTableView;
// ...
procedure TMyForm.CreateField(AMemData: TdxMemData; AFieldName: string; AFieldType: TFieldType);
var
  AFieldDef: TFieldDef;
begin
  if ((AMemData = nil) or (AFieldName = '')) then Exit;
  AFieldDef := AMemData.FieldDefs.AddFieldDef;
  AFieldDef.Name := AFieldName;
  AFieldDef.DataType := AFieldType;
  AFieldDef.CreateField(AMemData);
end;

procedure TMyForm.FormCreate(Sender: TObject);
begin
  dxMemData1.DisableControls;
  try
    if dxMemData1.Active then
      dxMemData1.Close;
    // Create three fields in the memory-based dataset
    CreateField(dxMemData1, 'ID', ftInteger);
    CreateField(dxMemData1, 'FirstName', ftString);
    CreateField(dxMemData1, 'LastName', ftString);
    // Create two records and populate corresponding data cells
    dxMemData1.Open;
    dxMemData1.Append;
    dxMemData1.FieldByName('ID').AsInteger := 0;
    dxMemData1.FieldByName('FirstName').AsString := 'James';
    dxMemData1.FieldByName('LastName').AsString := 'Packard';
    dxMemData1.Append;
    dxMemData1.FieldByName('ID').AsInteger := 1;
    dxMemData1.FieldByName('FirstName').AsString := 'Hannah';
    dxMemData1.FieldByName('LastName').AsString := 'Brooklyn';
    dxMemData1.Post;
  finally
    dxMemData1.EnableControls;
  end;
  cxGrid1DBTableView1.DataController.CreateAllItems();
end;
cpp
#pragma link "dxmdaset"
#pragma link "cxGrid"
#pragma link "cxGridDBTableView"
// ...
void __fastcall TMyForm::CreateField(TdxMemData *AMemData, UnicodeString AFieldName, TFieldType AFieldType)
{
  if((AMemData == nullptr) || (AFieldName == "")) { return; }
  TFieldDef *AFieldDef = AMemData->FieldDefs->AddFieldDef();
  AFieldDef->Name = AFieldName;
  AFieldDef->DataType = AFieldType;
  AFieldDef->CreateField(AMemData);
}

void __fastcall TMyForm::FormCreate(TObject *Sender)
{
  dxMemData1->DisableControls();
  try
  {
     if(dxMemData1->Active)
       dxMemData1->Close();
     // Create three fields in the memory-based dataset
     CreateField(dxMemData1, "ID", ftInteger);
     CreateField(dxMemData1, "FirstName", ftString);
     CreateField(dxMemData1, "LastName", ftString);
     // Create two records and populate corresponding data cells
     dxMemData1->Open();
     dxMemData1->Append();
     dxMemData1->FieldByName("ID")->AsInteger = 0;
     dxMemData1->FieldByName("FirstName")->AsString = "James";
     dxMemData1->FieldByName("LastName")->AsString = "Packard";
     dxMemData1->Append();
     dxMemData1->FieldByName("ID")->AsInteger = 1;
     dxMemData1->FieldByName("FirstName")->AsString = "Hannah";
     dxMemData1->FieldByName("LastName")->AsString = "Brooklyn";
     dxMemData1->Post();
  }
  __finally
  {
    dxMemData1->EnableControls();
  }
  cxGrid1DBTableView1->DataController->CreateAllItems();
}

Grid Column Deletion

To delete a grid column, release it directly in code (call the Free procedure in Delphi or use the delete keyword in C++Builder):

delphi
cxGrid1DBBandedTableView1Column1.Free;
cpp
delete cxGrid1DBBandedTableView1Column1;

See Also

TcxGridDBDataController.CreateItemByField Function

TcxGridDBBandedTableView.CreateColumn Function

TcxGridDBCardView.CreateRow Function

TcxGridDBTableView.CreateColumn Function

TcxGridDBLayoutView.CreateItem Function

TcxGridDBWinExplorerView.CreateItem Function

TcxGridServerModeDataController.CreateAllItems Procedure

TcxGridDBDataController Class

TcxGridDBDataController Members

cxGridDBDataDefinitions Unit