想实际下面的报表,请问用什么控件简单一点,谢谢报表的结果如上
其中各列的显示都是通过脚本来实际的,即我的脚本是
select 会员号,办卡日期,修改日期,姓名,性别 from 会员档案
现在想问的是:如何才能点每列的头可以自动排序
网上说到一些方法列都是固定的,但我的列数是不固定的,比如下次我可能更新之后,把脚本改成了
select 会员号,办卡日期,姓名,性别 from 会员档案
这个时候查询的结果应该就没有修改日期这列,但我程序不用改,也能实现点列头自动排序,请大家指点
其中各列的显示都是通过脚本来实际的,即我的脚本是
select 会员号,办卡日期,修改日期,姓名,性别 from 会员档案
现在想问的是:如何才能点每列的头可以自动排序
网上说到一些方法列都是固定的,但我的列数是不固定的,比如下次我可能更新之后,把脚本改成了
select 会员号,办卡日期,姓名,性别 from 会员档案
这个时候查询的结果应该就没有修改日期这列,但我程序不用改,也能实现点列头自动排序,请大家指点
方法
cxGrid1DBTableView1.DataController.DataSource:=DataSource1
2.去掉"Drag a column header here to group by that column"
方法
cxGrid1DBTableView1.OptionsView.GroupByBox置为False
3.去掉表头下三角数据
方法
cxGrid1DBTableView1.Optionscustomize.columnfiltering置为False
4.增加序号
方法
在dataset 里边增加 Mycount 字段 类型为 string
在 CXgrid 增加显示字段 序号 mycount
为该字段写事件
procedure Tfrm_form.ReDataSet2mycountGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
text:=inttostr(redataset2.RecNo);
end;将 序号 绑定 字段 Mycount5.CXgrid 增加一栏显示checkBox
方法
在dataset 里边增加 MySelect字段 类型为 BOOLEAN 在 CXgrid 增加显示字段 选择 select 设定select 字段的Properties为 CheckBox . ReadOnly = False;
NullStyle = nssUnchecked procedure Tfrm_form.cxGrid1DBTableView1CellClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
var
Row: Integer;
begin
inherited; if ACellViewInfo.Item.Name = 'mycheck' then
begin
Row := cxGrid1DBTableView1.DataController.FocusedRecordIndex;
if cxGrid1DBTableView1.ViewData.Records[Row].Values[0] = True then
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := False
else
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := True;
end;end; procedure Tfrm_form.cxGrid1DBTableView1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Row: Integer;
begin
inherited;
//单选
// for Row:=0 to cxGrid1DBTableView1.DataController.RecordCount-1 do
// begin
// cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := False;
// end;
//多选
if cxGrid1DBTableView1.DataController.RecordCount<>0 then
begin
Row := cxGrid1DBTableView1.DataController.FocusedRecordIndex; if cxGrid1DBTableView1.ViewData.Records[Row].Values[0] = True then
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := False
else
cxGrid1DBTableView1.ViewData.Records[Row].Values[0] := True;
end;
end;