我已经从窗体上的valuelisteditor生成了临时表(adataset)中,显示在一个dbgrid中很正常,但是qreport中预览和打印都是没有数据,我都琢磨了一天了也没找出来问题,高手帮我吧。!!!
源代码如下:
procedure TFmJGPrint.Button1Click(Sender: TObject);
var
i,j:integer;
ADataSet:TClientDataSet;
begin
ADataSet:=TClientDataSet.Create(Self);
with ADataSet.FieldDefs do
begin
for i:=0 to Mform.ValueListEditor1.ColCount-1 do
begin
Add(Mform.ValueListEditor1.Cells[i,0],ftString,16,False);
end;
end;
ADataSet.CreateDataSet; ADataSet.Open;
for i:=1 to Mform.ValueListEditor1.RowCount-1 do
begin
ADataSet.Append;
for j:=0 to Mform.ValueListEditor1.ColCount-1 do
begin
ADataSet.FieldByName(Mform.ValueListEditor1.Cells[j,0]).AsString:=
Mform.ValueListEditor1.Cells[j,i];
end;
ADataSet.Post; end;
DataSource1.DataSet:=ADAtaSet;
self.QuickRep1.DataSet:=adataset;
adataset.First; self.db1.DataSet:=adataset;//db1,db2:TQRDBText;
self.db2.DataSet:=adataset;
self.db1.DataField:=adataset.Fields[0].AsString;
self.db2.DataField:=adataset.Fields[1].AsString;
//showmessage(inttostr(self.QuickRep1.RecordCount));
self.QuickRep1.Preview; //预览的时候只有两个列的名字(db1,db2)
//ADataSet.Close;
//ADataSet.Free;
end;
源代码如下:
procedure TFmJGPrint.Button1Click(Sender: TObject);
var
i,j:integer;
ADataSet:TClientDataSet;
begin
ADataSet:=TClientDataSet.Create(Self);
with ADataSet.FieldDefs do
begin
for i:=0 to Mform.ValueListEditor1.ColCount-1 do
begin
Add(Mform.ValueListEditor1.Cells[i,0],ftString,16,False);
end;
end;
ADataSet.CreateDataSet; ADataSet.Open;
for i:=1 to Mform.ValueListEditor1.RowCount-1 do
begin
ADataSet.Append;
for j:=0 to Mform.ValueListEditor1.ColCount-1 do
begin
ADataSet.FieldByName(Mform.ValueListEditor1.Cells[j,0]).AsString:=
Mform.ValueListEditor1.Cells[j,i];
end;
ADataSet.Post; end;
DataSource1.DataSet:=ADAtaSet;
self.QuickRep1.DataSet:=adataset;
adataset.First; self.db1.DataSet:=adataset;//db1,db2:TQRDBText;
self.db2.DataSet:=adataset;
self.db1.DataField:=adataset.Fields[0].AsString;
self.db2.DataField:=adataset.Fields[1].AsString;
//showmessage(inttostr(self.QuickRep1.RecordCount));
self.QuickRep1.Preview; //预览的时候只有两个列的名字(db1,db2)
//ADataSet.Close;
//ADataSet.Free;
end;
band要关联数据集DataSet
现在我已经解决了,就是db1,db2不能设置它的datafield,程序就可以显示了另外发现:qreport的预览有时候乱七八糟的。非常不稳定。