cxgrid列过滤的问题?

caoni2008 2009-06-07 02:09:11
请教一下:我现在在cxgrid里面有很多个列(字段),现在需要根据不同的情况来显示和隐藏某些列,有没有简单的办法来搞定这个问题,我不想一个列一个列的设置VISIBLE属性,那样的话代码很长,因为大概有五六种情况之多,而列也很多
...全文
233 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mycool2006 2009-06-28
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090625/23/fffe897c-5f40-402b-be55-e82b0b500e98.html

看看我发的 应该会有帮助
mycool2006 2009-06-28
  • 打赏
  • 举报
回复
CXGRID 有一个自带右键,就在CXGRID组件旁边 楼主自己找找
22222bbb 2009-06-11
  • 打赏
  • 举报
回复
改SQL,让Cxgrid去动态的显示不就OK了。
luntanwujianhua 2009-06-11
  • 打赏
  • 举报
回复
學習了
t8543 2009-06-10
  • 打赏
  • 举报
回复
關注!
  • 打赏
  • 举报
回复
把cxgrid用一个form重载一下。
type
TfrmGridStore = class(TForm)
lbl1: TLabel;
lbl2: TLabel;
chklstColum: TCheckListBox;
btnOK: TBitBtn;
btnCancel: TBitBtn;
se1: TSpinEdit;
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FAGrid: TcxCustomGridTableView;
FSecName : String;
{ Private declarations }
public
constructor Create(AOwner : TComponent; AGrid : TcxCustomGridTableView; secName : String);
procedure GridSaveToIni;
procedure GridLoadFromIni;
procedure ShowGridColumns;
class procedure LoadGridStyle(Grids : array of TcxCustomGridTableView; secNames : array of String);
end;

var
frmGridStore: TfrmGridStore;

implementation

{$R *.dfm}

constructor TFrmGridStore.Create(AOwner: TComponent;
AGrid: TcxCustomGridTableView; secName: String);
begin
inherited Create(AOwner);

self.FAGrid := AGrid;
self.FSecName := secName;
end;

procedure TfrmGridStore.GridLoadFromIni;
begin
FAGrid.RestoreFromIniFile(IniFile,True,false,[gsoUseFilter],FSecName);
end;

procedure TfrmGridStore.GridSaveToIni;
begin
FAGrid.StoreToIniFile(IniFile,false,[gsoUseFilter], FSecName);
end;

class procedure TfrmGridStore.LoadGridStyle(
Grids: array of TcxCustomGridTableView; secNames: array of String);
var i : integer;
begin
for i := 0 to high(grids) do
begin
with TFrmGridStore.Create(nil, Grids[i], secNames[i]) do
begin
GridLoadFromIni;
Free;
end;
end;
end;

procedure TfrmGridStore.ShowGridColumns;
var
i : integer;
begin
for i := 0 to FAGrid.ItemCount - 1 do
begin
chklstColum.Items.Add(FAGrid.Items[i].Caption);
chklstColum.Checked[i] := FAGrid.Items[i].Visible;
end;
end;

procedure TfrmGridStore.btnOKClick(Sender: TObject);
var
i ,j: integer;
begin
for i := 0 to FAGrid.ItemCount - 1 do
begin
for j := 0 to chklstColum.Items.Count - 1 do
begin
if FAGrid.Items[i].Caption = chklstColum.Items.Strings[j] then
FAGrid.Items[i].Visible := chklstColum.Checked[j];
end;
end;

GridSaveToIni;
GridLoadFromIni;
Close;
end;

procedure TfrmGridStore.btnCancelClick(Sender: TObject);
begin
close;
end;
lgx0914 2009-06-07
  • 打赏
  • 举报
回复
五个pagecontrol页面,用同一个数据集,不同的字段

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧