Fastreport报表合并单元格技巧

Fastreport报表合并单元格技巧在做企业的ERP,SCM,CRM等等的软件中,经常要做的就是报表,如财务报表,生产车间报表。很多时候企业可能对报表格式提出特别的要求,但作为软件开发公司,能设计开发出符合客户要求的报表就显得十分迫切。以下我对报表的合并技巧作一个总结,希望对后面要做类似报表的同事有些帮助。合并报表1:江苏美的春花电器股价有限公司-委外加工材料月结表在没有合并之前显示如下:在对供应商编码和材料编码进行合并后显示如下:---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---对于合并功能,其实fastreport是有的,但这个功能做得远远不够,不能按客户的要求进行合并,要完成上述功能,我是通过下面的方法做出来的。这种要求的合并要结合Delphi与Fastreport来协作完成。首先然前台Delphi相应方法中编写有关的算法,然后在Fastreport中根据这种算法作相应的显示。操作方法如下:1.选中Fastreport的主数据项,双击OnBeforePrint方法,在beginend之间编写代码:---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---1.MainData.Height:为每行数据显示的高度,2.[CLTAutoreporthead_AutoreportlineOfAutoreporthead."Flag"]:表示要合并的行数(Delphi算法),3.memo7.visible:是否显示单元格,[CLTAutoreporthead_AutoreportlineOfAutoreporthead."Search_Flag"]=2:(Delphi算法),只要在Delphi中把要合并的行数与列用字段Flag(控制行数),Search_Flag(控制是否可见,2为可见)算出来,再在FastReport中显示出来,那么合并功能就算搞好。以下是在Delphi中的合并算法代码:functionTAutoReportProcessMonthForm.GetFastRptObj:TBizObject;varBizHead,BizLine:TBizObject;i,j,k,n,m,p:Integer;Head:TAutoreporthead;Line:TAutoreportline;slItemVendor,slVendors:TStringList;strItemVendor,strItemVendor2,strVendor:String;VendorsCount:arrayofInteger;beginMyCheck;Head:=TAutoreporthead.Create(false,true);Head.UserName:=LoginUser.UserName;fori:=1todgVieRowCount-1doifdgVieRowProps[i].Checkedand(notdgVieIsRowEmpty(i))thenbeginLine:=TAutoreportline.Create;self.SetDgDataToBizObject(i,dgView,TBizObject(line));head.AutoreportlineOfAutoreporthead.Add(line);end;//合并报表算法开始addedbywbc,2009-04-23slItemVendor:=TStringList.Create;slVendors:=TStringList.Create;fori:=0tohead.AutoreportlineOfAutoreporthead.Count-1dobeginstrItemVendor:=TAutoreportline(head.AutoreportlineOfAutoreporthead.Items[i]).Item_Code+TAutoreportline(head.AutoreportlineOfAutoreporthead.Items[i]).Vendor_Code;ifPos(strItemVendor,slItemVendor.Text)=0thenslItemVendor.Add(strItemVendor);---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---strVendor:=TAutoreportline(head.AutoreportlineOfAutoreporthead.Items[i]).Vendor_Code;ifPos(strVendor,slVendors.Text)=0thenslVendors.Add(strVendor);end;//showMessage(slVendors.Text);setLength(VendorsCount,slVendors.Count);fori:=0toslVendors.Count-1dobeginVendorsCount[i]:=0;forj:=0tohead.AutoreportlineOfAutoreporthead.Count-1doifsameText(slVendors.Strings[i],TAutoreportline(head.AutoreportlineOfAutoreporthead.Items[j]).Vendor_Code)thenbeginVendorsCount[i]:=VendorsCount[i]+1;end;end;setLength(MyVendors,slVendors.Count);fori:=0toslVendors.Count-1dobeginMyVendors[i]:=TMyVendor.Create;MyVendors[i].Vendor_Code:=slVendors.Strings[i];setLength(MyVendors[i].XVendors,VendorsCount[i]);n:=0;forj:=0tohead.AutoreportlineOfAutoreporthead.Count-1doifsameText(slVendors.Strings[i],TAutoreportline(head.AutoreportlineOfAutoreporthead.Items[j]).Vendor_Code)thenbeginMyVendors[i].XVendors[n]:=TXVendor.Create;MyVendors[i].XVendors[n].index:=j;//MyVendor...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?