怎样根据用户选择的对象给报表中一个文本框赋值并显示(比如用户在编辑框里输入报表名称再在报表中显示出来)?我是这样做的(按照网上提供的资料): “第一步:在窗体上放一 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版本在菜单中怎么没有“数据字典”这一项了?
(老板要求在一个星期内搞出报表,请各位大侠多多指点)!!!
第二步:放一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版本在菜单中怎么没有“数据字典”这一项了?
(老板要求在一个星期内搞出报表,请各位大侠多多指点)!!!
解决方案 »
- 帮忙看下代码有什么问题
- 语法问题 ???!
- cgi传递求助 name.cgi?name=中国 request.QueryFields.Values['name']乱码
- 我又来送¥¥¥¥¥¥¥¥¥¥¥啦---怎样生成一个XML文件,包含版本和编码并加入一点说明?
- 一小程序的困惑~~
- 请问有关数据库三层架构的问题
- 安装程序制作时,如何知道需要哪些dll文件呢?
- __strSQL:=StringReplace(__strSQL, ''Y'', ''√'',rfReplaceAll);这条语句出错在哪?请教!
- 既送控件(附源码),又送分,大家快来拿啊。
- 如何屏蔽掉鼠标移动消息?
- 如何获得本地连接的名称啊
- 200分再开新贴:嵌套框架的HTML代码获取的问题!顶者有分
你用shoemessage检查看,应该是没给它值
frReport1.findOBject('Memo1').Memo.add('测试变量');
frReport1.findOBject('Memo1').Memo.add('测试变量');
第二步:使用fastReport的OnGetValue事件然后添加下面的代码:
if VarName='var1' then Value:='your string';
这样就行了啊!值得说明的是在添加variables时必须是category,也就是如果加了类别之后,再在该类别中再加Variables就会有错误!所加的variables必须是category的类型(总类别)。
我完全按你的方法试了几遍怎么还是不行!我考虑了一下,是不是我用来显示报表预览的时候有问题,感觉就是变量的值没有传过去。我是这样在一个ButtonClick事件中操作的:
procedure TForm1.Button1Click(Sender: TObject);
begin
frxreport1.LoadFromFile('test2.fr3',false);
frxreport1.PrepareReport();
frxreport1.ShowPreparedReport;end;
你再试试在form中加入Tfreport,然后双击它,打开你的test2.fr3。
test2.fr3中的变量就照上面的设置。然后在frxreport中的事件中找到getValue。写上面说的代码,我估计就是这个问题了。
最后在
procedure TForm1.Button1Click(Sender: TObject);中showreport就行了。
‘人说用这种方法给变量赋值在设计报表时是反映不出来的,必须是在程序运行阶段反映’
这句话是对的。
procedure TForm1.Button1Click(Sender: TObject);
begin
frxreport1.ShowReport;
end;
还是一样,“变量的值总是传不过去”我怀疑是控件本身的问题了。实在没有办法了!
我的e-mail:
[email protected]或
[email protected]