回 帖 发 新 帖 刷新版面

主题:Qreport 问题

在报表页面,quickrep有一个属性dataset,我想调用数据模块dm中的Adoquery组件,
于是在报表窗体中加了uses dm(如下)
implementation
   uses dm;
{$R *.dfm}
按道理,dataset下拉框会显示出ADOquery,但却没有
我不想在报表窗体上放一个adoquery组件(因为那样设置起来很麻烦),
我试过在窗体初始化的时候加如下代码:
procedure Tfrm_baobiao.FormCreate(Sender: TObject);
begin
  with frm_dm.xueji_query do
  begin
     sql.Clear;
     sql.Add('select basic_info.xh,xm,bj,idm,xn,xq,bdyy,qx,bz1 from basic_info,xueji_info where  basic_info.xh=xueji_info.xh ');
     open;
quickrep1.DataSet:=frm_dm.xueji_query;
qrdbtext1.DataSet:=frm_dm.xueji_query;
qrdbtext2.DataSet:=frm_dm.xueji_query;
qrdbtext3.DataSet:=frm_dm.xueji_query;
qrdbtext4.DataSet:=frm_dm.xueji_query;
qrdbtext5.DataSet:=frm_dm.xueji_query;
qrdbtext6.DataSet:=frm_dm.xueji_query;
qrdbtext7.DataSet:=frm_dm.xueji_query;
qrdbtext8.DataSet:=frm_dm.xueji_query;
那样是可以,但很麻烦,请问还有别的方法吗?

回复列表 (共5个回复)

沙发

当然没有,因为它被封装了,只是一个私有变量,当然你无法访问,你就只能单独在放一个ADOquery,这样并不影响

板凳

放一个adoquery不是问题,但还要设置connection属性,这就又要放ADOconnection组件,这不是很麻烦?

3 楼

不是很麻烦的,你只要设置它的connectionstrin,不需要加ADOconnection组件,你试试!而且设置一个后你可以复制到报表窗体上,根本一点都不麻烦的

4 楼

呵呵,是可以的,
但在这里我还有一个疑问:
当服务器的名称改变了,是不是还要再重新设置啊?

5 楼

不需要呀,你可以动态改变它的connectionstring呀,就是在代码里写:
adoquery.connectionstring;='连接字符串',当你改变时,你就先
adoquery.close;
adoquery.connectionstring:='另一个连接字符串';
adoquery.sql.clear
adoquery.sql.add('查询语句');
adoquery.open;

我来回复

您尚未登录,请登录后再回复。点此登录或注册