FastReport,打印动态字段的问题(应该不难)(50分)

  • 主题发起人 主题发起人 xmTops
  • 开始时间 开始时间
X

xmTops

Unregistered / Unconfirmed
GUEST, unregistred user!
在FastReport中,如果要打印某个Dataset的某个字段,一般是如此写的(假设DataSet为ADOTable1)
新建 TfrMemoView
,然后在memo中填写:[ADOTable1."AFieldName"]即可
现在有个小问题,当AFieldName不是固定的,怎么办?,它是由一个变量传入的
我做了一个试验,写在begin
/end之间,还是不行
begin
fld := 'BriefName';
memo := [ADOTable1."[fld]"];
end;

代码一定要写在FastReport里,因为主程序是没有办法改的,只能更改报表
 
在frxReport1里定义变量,比如:User_Name,Var_Year,Var_month
通过下面的过程给变量赋值。
procedure TZB_SPCBHZ.frxReport1GetValue(const VarName: String;
var Value: Variant);
begin
try
frxReport1.Variables['User_Name']:=''''+midstr(caozuoyuan_name,5,6)+'''';
frxReport1.Variables['Var_Year']:=''''+niandu+'''';
frxReport1.Variables['Var_month']:=''''+(combobox2.Text)+'''';
except
on x:exceptiondo
showmessage(x.message);
end;
end;
希望对你有帮助。
 
大哥,看最后一行
[代码一定要写在FastReport里,因为主程序是没有办法改的,只能更改报表 ]
 
试试Grid++Report,专门开发动态报表的报表构件。主页:http://www.rubylong.cn
用Grid++Report实现楼主的要求太方便了,有多个类似的例子可供参考。
 
可惜啊,程序是别人的,我们只能更报表,不能换
 
测试了许久,还是没有找到方法。
和你一起等待。
 
Grid++Report是很不错啊,我正在用!
 
楼上的这位灌水也要看清题目!
to:zywcd
谢谢您,我详细阅读了源码,可能真是没有办法,看看能不能更改一下源码,到时再来分享,也期待高高手出现
 
memo := [ADOTable1."[fld]"];
--
在Band的OnBeforePrint中寫: AAA.Memo:='[BriefName]'
MEMO中用字符串, 3.0以上版本沒有試過
 
楼上的?什么意思?看得不是很懂?
 
使用代码访问数据库的格式是<字段名称>,里面没法加入变量。
晕死了。
 
MEMO中的變量是字符串
fld := 'BriefName';
memo := [ADOTable1.&quot;[fld]&quot;];
改為:
memo:='[ADOTable1.['+fld+'] ]';
 
楼上的,试了,不行
 
寫在Band的onbeforeprint中試試.
 
搞定,用了一个卑鄙的办法[:D],更改了FastReport的源码就可以
在InternalGetValue过程的最前端加入自已的处理代码,马上给分
 
多人接受答案了。
 
后退
顶部