with ADOReport do
begin
close;
sql.text:='select * from Ctl04000 where module_name='''+trim(self.Name)+'''';
prepared;
open;
if eof then
begin
close;
sql.text:='insert into Ctl04000 (module_name,Report_name) values ('''
+trim(self.Name)+''','''+trim(self.caption)+''')';
prepared;
try
execsql;
except
errMsg('保存报表失败!');
Abort;
end;
end;
end; with ADOReport do
begin
close;
sql.text:='select module_name,Report_name,Report_Data from Ctl04000 where
module_name='''+trim(self.Name)+'''';
prepared;
open;
end; if not ADOReport.IsEmpty then
begin
if not(ADOReport.State in [dsedit,dsinsert]) then ADOReport.Edit;
frReport1.Filename:=trim(ADOReport.FieldByName('Report_name').AsString);
frReport1.LoadFromBlobField(ADOReport.FieldByName('Report_Data'));
frReport1.DesignReport;
end; 上面是我调用报表设计器的原码,执行完frReport1.DesignReport 语句后出现"variant array index out of bounds"的提示。分不够在加。
begin
close;
sql.text:='select * from Ctl04000 where module_name='''+trim(self.Name)+'''';
prepared;
open;
if eof then
begin
close;
sql.text:='insert into Ctl04000 (module_name,Report_name) values ('''
+trim(self.Name)+''','''+trim(self.caption)+''')';
prepared;
try
execsql;
except
errMsg('保存报表失败!');
Abort;
end;
end;
end; with ADOReport do
begin
close;
sql.text:='select module_name,Report_name,Report_Data from Ctl04000 where
module_name='''+trim(self.Name)+'''';
prepared;
open;
end; if not ADOReport.IsEmpty then
begin
if not(ADOReport.State in [dsedit,dsinsert]) then ADOReport.Edit;
frReport1.Filename:=trim(ADOReport.FieldByName('Report_name').AsString);
frReport1.LoadFromBlobField(ADOReport.FieldByName('Report_Data'));
frReport1.DesignReport;
end; 上面是我调用报表设计器的原码,执行完frReport1.DesignReport 语句后出现"variant array index out of bounds"的提示。分不够在加。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货