导入的实至就是让CXCRID所关联的DATASET能打得开EXCEL报表,并在CXCRID中显示出来吗?如果是主样的话,可这样试试的 |
|
您好,你的写法是没有问题的.
可以查下以下几个问题:
1:cxgridDBTableView的Datacontroller.datasource有没有指到datasource,datasource有没有连到ADOQuery1
2:cxgridDBTableView的columns有没有加对,每个columns对应的列名有没有指正确.
希望能解决您的问题.
追问
我这个是动态加载的,columns在运行前没有一一对应,是不是columns要在运行时指定,代码如何实现,恳请指教,不胜感激!
回答
哦,那就是没有建columns了.
那你得写生成columns的代码了哦.
ADOQuery.open后.
var
AItem: TCxGridDBBandedColumn;
.....
CxgridDBTableView.BeginUpdate;
for i := 0 to ADOQuery.Fields.count -1 do
begin
AItem := CxgridDBTableView.CreateColumn;
AItem.Caption := ADOQuery.Fields[i].FieldName;
AItem.DataBinding.FieldName := ADOQuery.Fields[i].FieldName;
AItem.Width := 80;
end;
CxgridDBTableView.EndUpdate;
大概是这样写的吧.可能有错,你整理下就是了.
哦,那就是没有建columns了.
那你得写生成columns的代码了哦.
ADOQuery.open后.
var
AItem: TCxGridDBBandedColumn;
.....
CxgridDBTableView.BeginUpdate;
for i := 0 to ADOQuery.Fields.count -1 do
begin
AItem := CxgridDBTableView.CreateColumn;
AItem.Caption := ADOQuery.Fields[i].FieldName;
AItem.DataBinding.FieldName := ADOQuery.Fields[i].FieldName;
AItem.Width := 80;
end;
CxgridDBTableView.EndUpdate;
大概是这样写的吧.可能有错,你整理下就是了.