一个动态自报表时出错的一段代码,Database1为 Tdatabase 组件,cmbtabename为组合框从中挑选数据表,strlist显示字段
procedure TFrm_Main.cmbTableNameChange(Sender: TObject);
var
  i,j: Integer;
  nCurSel: integer;
  strTableName: string;
  strList: TStringList;
begin
  Clear;
  tblCurrent := TTable.Create(Self);  //产生表
  actrptCool := TActReport.Create(Self);  nCurSel := cmbTableName.ItemIndex;            //为组合框索引 
  strTableName := cmbTableName.Items.Strings[nCurSel];为组合框值
  strList := TStringList.Create;               //生成list  with tblCurrent do begin                     //定义表
    Active := False;
    Name := strTableName;
    DatabaseName := DM_Main.Database1.DatabaseName;//数据库路径出错,DM_Main.Database1为数据集组件 tdatabase     TableName := strTableName;                     //从cmbTableName组合框选表 
    ReadOnly := True;
    Active := True;
    for i := 0 to FieldDefs.Count - 1 do
      strList.Add(FieldDefs[i].Name);
  end;  actrptCool.Initialize(tblCurrent, strTableName, strList);  actrptCool.LoadRep;
  actrptCool.PreviewRep(prvHot);
  strList.Free;
end;此一为是动态制表范例程序一段代码,我想测试一下,学习学习。这段代码意思为从一数据库(DM_Main.Database1)任意选一个表,跟据表的结构,用户自己做表格打印。请各位大侠指点。thank you

解决方案 »

  1.   


    动态制报表范例程序一段代码,测试中出错。原例了是ineterbase数据库,我没有建ineterbase数据库,改用prodxo 数据库。Database1为 Tdatabase 组件,cmbtabename为组合框从中挑选数据表,strlist显示字段,我测试中发现数据源有问题,strlist是显示字段的,测试中动态产生表出错,strlist当然不显示字段。问题就出在这是,不然话就能测试下去了。此范例程序是是对外不可见的。大家和我共同感受一下动态制报表风范吧!