回 帖 发 新 帖 刷新版面

主题:用代码控制rave reports做报表

各位高手:
    我花了一个月业余时间去摸索Delphi自带的Rave reports报表,结果最后一个问题解决不了,不知道你能否帮我看下,希望我们能成为好朋友!
    我在rave  report做动态报表,添加了25个dataText控件和25个dataMemo,每个控件指定了相同dataView,而dataFiled则依次为1,2,3...25,假如字段20-25不存在时(查询出的数据集有些字段没有),报表预览会显示为(invalid),我现在想让没有的字段显示为空,而不是显示为(invalid),请指点迷津!是不是应该在delphi里面写代码来控制呢?我看到这样一段代码:
 
运行时动态向RAVE报表增加一个TEXT对象
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, RpBase, RpSystem, RpDefine, RpRave,RvCsRpt,RVProj,RVClass,RVCsStd;
 
type
  TForm1 = class(TForm)
    RvProject1: TRvProject;
    RvSystem1: TRvSystem;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
    MyBand: TRaveBand;
    MyRegion: TRaveRegion;
    MyPage: TRavePage;
    MyText: TRaveText;
begin
    RvProject1.Open;
    With RvProject1.ProjMan do 
    begin
        MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage;
        MyRegion:= FindRaveComponent('Region1',MyPage) as TRaveRegion;
        MyBand := FindRaveComponent('Band1',MyRegion) as TRaveBand;
        MyText:=TRaveText.Create(Myband);
        MyText.Parent:=Mypage;
        MyText.Name:=GetUniqueName('Text1',MyPage,false);
        MyText.Top:=0.2;
        MyText.Left:=0.7;
        MyText.Width:=200;
        MyText.Height:=200;
        MyText.Text:='SCYANGYU@163.COM';
        MyText.Font.Size :=20;   //设置字体的属性
        MyText.Font.Color :=ClRed;
        MyText.Font.Name :='隶书';
        AddComponent(MyText);
    end; { with }
    RvProject1.ExecuteReport('Report1');
    RvProject1.Close; 
end;
 
end.
上面用的是Rave控件是Text,现在我的rave控件是DataText和DataMemo该如何声明,代码怎么写!(我的思路是先只设定DataText和DataMemo的DataView参数,而DataField在代码中写入应该就可以实现我要的功能,当然如果有直接探测到错误(invalid)就不显示这个功能那就更好了),先谢谢了!

回复列表 (共1个回复)

沙发

有人可以帮帮我吗?在线等,谢谢!

我来回复

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