所以我有一个 TDBGrid,它通过 SQL 显示查询的内容。我需要能够只显示在 TCheckListBox 中选择的字段/列。我该如何解决这个问题?
问问题
57 次
2 回答
1
这些列链接回数据源,因此您可以遍历它们,直到找到所需的列。
for cnt := 0 to DBGrid1.Columns.Count -1 do
if DBGrid1.Columns[cnt].FieldName = 'Lengte'
then DBGrid1.Columns[cnt].Visible := false;
于 2018-10-01T14:05:50.273 回答
0
让它工作!
var
i, j: integer;
arrColsToHide: array[0..11] of string;
begin
// resets all columns to VISIBLE and clears array
for i := 0 to 11 do
begin
arrColsToHide[i]:= '';
dbGridExport.Columns[i+1].Visible:= true;
end;
// if item is not checked, add it to the array
for i := 0 to 11 do
if not(clbFieldsToExport.Checked[i])
then arrColsToHide[i]:= clbFieldsToExport.Items.Strings[i];
// compares value of array to fieldname, and hide if same
for j := 0 to 11 do
begin
for i := 1 to dbGridExport.Columns.Count-1 do
if dbGridExport.Columns[i].FieldName = arrColsToHide[j]
then dbGridExport.Columns[i].Visible := false;
end;
end;
于 2018-10-01T18:17:44.387 回答