怎样根据用户选择的对象给报表中一个文本框赋值并显示(比如用户在编辑框里输入报表名称再在报表中显示出来)?我是这样做的(按照网上提供的资料):  “第一步:在窗体上放一 frReport1: TfrReport;设置好相关的属性,在fastreport中声明一变量,如Title;
    第二步:放一memo控件(在frReport1)然后指定其值为[title];
    第三步:在frReport1的GetValue中
    procedure TForm1.frReport1GetValue(const ParName: String;
         var ParValue: Variant);
    begin
        if ParName='Title' then Parvalue:='测试变量';
    end;”查了网上好多地方,也都是这么介绍的,有人说用这种方法给变量赋值在设计报表时是反映不出来的,必须是在程序运行阶段反映,可是我经过编译运行后还是不能在memo中显示出来(显示为空)!会不会是我的FastReport控件装的有问题啊?请高手指点!!!
    还有就是FastReport 3.x版本在菜单中怎么没有“数据字典”这一项了?
   (老板要求在一个星期内搞出报表,请各位大侠多多指点)!!!

解决方案 »

  1.   

    你没给title赋值,
    你用shoemessage检查看,应该是没给它值
      

  2.   

    在frReport1的beforceprint之前写上
    frReport1.findOBject('Memo1').Memo.add('测试变量');
      

  3.   

    在frReport1的beforceprint之前写上
    frReport1.findOBject('Memo1').Memo.add('测试变量');
      

  4.   

    第一步:在报表设计器中为报表增加变量,report菜单--variables,点category,为新变量命名为var1,然后在报表中加入text object,点插入表达式(insert expression),点variables页面,双击刚才新建的变量var1,然后退出就行了(也可在文本框的内容中直接输入[var1])。
    第二步:使用fastReport的OnGetValue事件然后添加下面的代码:
    if VarName='var1' then  Value:='your string';
    这样就行了啊!值得说明的是在添加variables时必须是category,也就是如果加了类别之后,再在该类别中再加Variables就会有错误!所加的variables必须是category的类型(总类别)。
      

  5.   

    你用的是fr3.x吧,它的动态赋值方法与fr2.x不一样。你照上面的做法,应该就可以了。
      

  6.   

    to crystalreport20xx(自学者):
        我完全按你的方法试了几遍怎么还是不行!我考虑了一下,是不是我用来显示报表预览的时候有问题,感觉就是变量的值没有传过去。我是这样在一个ButtonClick事件中操作的:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         frxreport1.LoadFromFile('test2.fr3',false);
         frxreport1.PrepareReport();
         frxreport1.ShowPreparedReport;end;
      

  7.   

    loadfromFile这样做会出现错误的。必须如果动态赋值的话,这个frxreport必须也是在程序里动态生成的,不能保存为文件存在。如果你这样做的话,你的frxreport的getvalue事件是没有办法写的。
    你再试试在form中加入Tfreport,然后双击它,打开你的test2.fr3。
    test2.fr3中的变量就照上面的设置。然后在frxreport中的事件中找到getValue。写上面说的代码,我估计就是这个问题了。
    最后在
    procedure TForm1.Button1Click(Sender: TObject);中showreport就行了。
    ‘人说用这种方法给变量赋值在设计报表时是反映不出来的,必须是在程序运行阶段反映’
    这句话是对的。
      

  8.   

    用了
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         frxreport1.ShowReport;
    end;
    还是一样,“变量的值总是传不过去”我怀疑是控件本身的问题了。实在没有办法了!
      

  9.   

    哪位兄弟有可用的FastReport 2.x版本的安装包,有的话给我发一个。非常感谢!(收到马上给分)
    我的e-mail:
    [email protected]
    [email protected]