Наши преимущества

Как динамически добавить колонки в cxGrid

RAVen42

Турист
Credits
0
Доброго времени суток!
Товарисчи программисты помогите разобратся с cxGrid. Есть SQL запрос который в завсисимости от условия возвращает разное количество столбцев. Нао чтоб при каждом запуске запроса. грид очищался и в него и в нём создавались поля возвращаемые запросом.
 
Вопрос старый, но может кому-то пригодится
Код:
var XCol  :TcxGridDBColumn;
begin
[B]//Удалить старые столбцы[/B]
for i:=pred(TcxGridDBTableView(ADBGrid.Levels.Items[0].GridView).ColumnCount) downto 0 do begin
  TcxGridDBTableView(ADBGrid.Levels.Items[0].GridView).Columns[i].Destroy;
end;

[B]//Добавление колонок[/B]
for i:=0 to pred(ATable.FieldCount) do begin
  XCol:=TcxGridDBTableView(ADBGrid.Levels.Items[0].GridView).CreateColumn;
  XCol.DataBinding.FieldName:=ATable.FieldName;
  XCol.Caption:=ATable.FieldName;
  //XCol.Styles.Content:=stlGrid_Gray; //стиль форматирования
end;
end;
 
Вообще-то Destroy не стоит вызывать, достаточно и Free. И кажется у коллекции колонок есть метод Clear, чтобы не писать самому очистку.
Да и доступ осуществлять напрямую к View грида, а не идти через Level.
 
Верх