请大家帮忙!fastreport的动态的分组报表问题!在csdn上无人解答的问题!(200分)

  • 主题发起人 主题发起人 zzz999
  • 开始时间 开始时间
Z

zzz999

Unregistered / Unconfirmed
GUEST, unregistred user!
我创建分组的动态报表的得代码如下。编译和运行无错,但是没有出现分组的情况,显示的结果和不分组差不多(只是不出现组标头)。
frReport1.Pages.Clear;
frReport1.Pages.Add;
// create page
Page := frReport1.Pages[0];
frdbdataset1.DataSet:=dm.dts_salary;
b := TfrBandView.Create;
// create Title band
b.SetBounds(0, 20, 0, 79);
// position and size in pixels
b.BandType := btReportTitle;
// (only Top and Height are significant
Page.Objects.Add(b);
// for the band)
v := TfrMemoView.Create;
// create memo
v.SetBounds(20, 60, 300, 23);
v.BandAlign := baWidth;
v.Prop['Alignment'] := frtaCenter;
// another way to access properties
v.Prop['Font.size'] := 14;
v.Prop['Font.name'] := '隶书';
v.Memo.Add('公司'+inttostr(u_main.pub_year)+'年'+inttostr
(u_main.pub_month)+'月'+'工资表');
Page.Objects.Add(v);
do
cMode := dmDesigning;
b := TfrBandView.Create;
b.SetBounds(0, 100,700, 22);
b.BandType := btgroupheader;//标题表头
b.Prop['formnewpage'] := True;//要不要该行代码,效果一样
b.name:='groupheader1';
b.Prop['condition'] :='[dm.dts_salary."name"]';
//b.GroupCondition:='[]';
page.Objects.Add(b);
v:=TfrMemoView.Create;
// create memo
v.SetBounds(25, 101, 65, 15);
v.Memo.Text:='姓名';
//v.Parent.Name:='groupheader1';
v.Prop['Font.size'] := 10;
v.Prop['Font.name'] := '宋体';
Page.Objects.Add(v);
b := TfrBandView.Create;
b.SetBounds(0, 125, 700, 20);
b.BandType := btMasterData;
//主项数据
b.Dataset := 'frDBDataSet1';
page.Objects.Add(b);
i:=1;
while a_field_no<>''do
begin
v := TfrMemoView.Create;
// create memo
v.SetBounds(25+65*(i-1), 126, 65, 15);
v.Memo.Add('[dm.dts_salary.'+'&quot;'+a_field_no+'&quot;'+']');
v.Prop['Font.size'] := 10;
v.Prop['Font.name'] := '宋体';
Page.Objects.Add(v);
i:=i+1;
end;
frReport1.ShowReport;
 
如果你的动态生成报表代码没有问题,
那么SQL查询语句,也要按分组字段排序,就可以正常了!
 
但是,手工制作分组报表时,也不用对表中记录排序。
我试一试
 
主项数据栏已经建立,能显示,但显示形式不是分组的形式。
我要的效果是:
姓名
张三 男
姓名
李四 女
.............
但是以上代码显示的是:

张三 男
李四 女
.........
 
一定要排序的,不然不行的:)
 
whf大侠,快快帮忙!
 
太花眼啦。。可能将文件和数据打包发到我邮箱。帮你睇下。。
E-mail: wendeyuan@21cn.com
 
---------------------
但是,手工制作分组报表时,也不用对表中记录排序。
---------------------
这句话,一定不对。
 
帮顶!
http://www.source520.com
站长开发推广同盟 站长朋友的终极驿站
同时拥有海量源码电子经典书籍下载
http://www.source520.com/search/search.asp
&quot;编程.站长&quot;论坛搜索引擎-----为中国站长注入动力!
 
把数据按照要求查询出来,再动态设计报表里设计分组即可!
即然已经有的功能,为什么还要写死程序中呢?你不觉得这样非常局限您的程序吗?
 
输出的字段是变化的!所以用程序控制。
 
自己的问题自己解决!
先手动设计一个报表,有组标头、组注脚、主数据项,记住他们的高度和起始位置,然后再程序中添加你动态创建的内容!然后预览该报表,打印也可!分组条件必须建立。
 
多人接受答案了。
 
后退
顶部