问一个ReportBuilder中用子报表问题 ( 积分: 200 )

  • 主题发起人 主题发起人 louqing_2
  • 开始时间 开始时间
L

louqing_2

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个报表中使用三个表,他别为A,B,C,都是多条记录,我在A表的AfterScroll事件中打开B表,在B表的AfterScroll事件中打开C表,但是如果B表的在第一次打开时记录为空,则以后的打开的B表中的值都不会显示,全部显示一个空值,这个问题要如何解决?
 
没有回我,怎么办啊?我用的是存取过程
 
真惨啊,一天了,还没有人回我,怎么办啊?
 
还是没人回我,怎么办啊?
 
这个你单步执行看看嘛,可能你的代码写的有问题了。
 
不用单步看,如果第一条记录有就不会出错,
 
能否告知QQ,我帮你看看
 
没有QQ,不能用QQ啊,
 
星期一,我将部分代码发到这里吧
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ppProd, ppClass, ppReport, ppComm, ppRelatv, ppDB, ppDBPipe,
ADODB, StdCtrls;
type
TForm1 = class(TForm)
A1: TADOStoredProc;
A3: TADOStoredProc;
A2: TADOStoredProc;
ppDBPipeline1: TppDBPipeline;
ppReport1: TppReport;
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
Button1: TButton;
procedure A1AfterScroll(DataSet: TDataSet);
procedure A2AfterScroll(DataSet: TDataSet);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.A1AfterScroll(DataSet: TDataSet);
begin
IF A1.Active then
begin
IF A2.Active then
A2.Close;
A2.Parameters.ParamValues['A'] := A1.FieldValues['A0'];
A2.Open ;
end;
end;

procedure TForm1.A2AfterScroll(DataSet: TDataSet);
begin
IF A2.Active then
begin
IF A3.Active then
A3.Close;
A3.Parameters.ParamValues['A'] := A2.FieldValues['A0'];
A3.Open ;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ppReport1.Print ;
end;

end.
 
我要怎么做轴呢?
 
A2.Parameters.ParamValues['A'] := A1.FieldValues['A0'];
A3.Parameters.ParamValues['A'] := A2.FieldValues['A0'];
将上面的代码修正试一试:
ADOQuery1.Parameters.ParamByName('参数名称').Value:=变量值;
 
多人接受答案了。
 
后退
顶部