首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找OOAD报告的建议

寻找OOAD报告的建议
EN

Stack Overflow用户
提问于 2009-09-22 16:06:28
回答 1查看 332关注 0票数 1

我需要以许多不同的文件格式创建任意数量的报告。我能够使用Smarty来模板输出的大多数格式。然而,输出到Excel和PDF会使事情复杂化,并且需要使用FPDF或TCPDF和PHPExcel。

我试图找出通过一个或多个设计模式(如果可能的话)来组织我的类的最佳方法。

输出格式:

  • 文字-聪明
  • 文本(w/PCL格式)- Smarty
  • HTML -智能
  • Excel - PHPExcel
  • FPDF / TCPDF

这些格式需要能够在内存中进行流处理或写入文件以供以后使用。

所有报告中唯一一致的地方是,它们需要数据,直到添加PDF和Excel支持为止,这是一个模板。目前,我有一个报表类,它有一个名为getData()的抽象方法。每个子类(例如SpecificReport)获取它所需的数据,并将其存储在类属性中,以便绑定到模板等。

每一份报告都必须以各种格式提供。

Report类目前处理输出,但是添加对Excel和PDF的支持使这种情况变得不可能。不仅仅是将数据绑定到像Smarty这样的模板上。每个报告都需要特定的代码。我想我可以在每个报表子类中重载这些方法。

有人遇到过类似的任务吗?

EN

回答 1

Stack Overflow用户

发布于 2009-10-05 03:07:27

听起来你可以用两步视图模式

基本上,您的报告会在两次传递中呈现。第一遍针对您的模型执行报表逻辑,以生成某种原始报表对象。第一遍原始报告包含报告上的所有信息,并根据报表的需要进行组织和分组。

一旦完成,原始报告将被输入一个模板,该模板将其呈现为特定的格式(pdf、xls、csv等)。第二次传递将生成报表的字节,这些字节可以存储到文件中,也可以通过线路发送出去。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1461020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档