Java 我应该使用报告框架吗?

Java 我应该使用报告框架吗?,java,collections,reporting,criteria,rules,Java,Collections,Reporting,Criteria,Rules,为了解释我想做什么,以经典银行业为例 我从一个银行账户到另一个账户有一系列付款。我希望我的web应用程序的用户能够创建自己的谓词来过滤付款,这些付款将构成某些报告的输入数据。我计划手动编写报告,而不是使用现有的报告框架 按照优先级顺序,我希望用户能够使用web前端创建的谓词类型有: payment.amount>100.0 payment.amount>100.0 | | payment.dayOfWeek=周二 (payment.amount>100.0&&payment.descriptio

为了解释我想做什么,以经典银行业为例

我从一个银行账户到另一个账户有一系列付款。我希望我的web应用程序的用户能够创建自己的谓词来过滤付款,这些付款将构成某些报告的输入数据。我计划手动编写报告,而不是使用现有的报告框架

按照优先级顺序,我希望用户能够使用web前端创建的谓词类型有:

  • payment.amount>100.0
  • payment.amount>100.0 | | payment.dayOfWeek=周二
  • (payment.amount>100.0&&payment.description.contains(“foo”))| | payment.dayOfWeek=周二
  • 我还希望能够持久化这些谓词,以便以后重用


    我觉得这一定是一个非常普遍的要求,至少其中一些已经被开发出来了,但我发现很难确定我在谷歌搜索的是什么。是否有人遇到过基于web的框架来生成谓词和/或用于持久化此数据的东西?

    我认为您可以使用它来创建和重新使用业务规则。

    业务规则引擎可能是一个很好的解决方案,但也可能过大

    市场上有很多规则引擎,它们有很大的不同。例如,excel很重,而as drools更像是开发人员类型的规则引擎(请参阅,以获取引擎的一个大列表)

    即使嵌入groovy这样的脚本语言也可能是一个很好的解决方案


    位如果您真的只需要您描述的这三条规则,我想存储这三个参数(金额、搜索术语和工作日)并使用它们构建DB查询是有意义的。

    我将看看drools。我不久前使用了jrules,它有决策树/表/规则;我觉得从开发、规则集部署、创建新规则/数据集的用户学习曲线等几个角度来看,这可能有些过头了。我一直在寻找的是一个表单,它有一个组合框,其中包含,比如,“金额”,“星期几”,另一个组合“包含”,“相等”,“在列表中”,它驱动最终值字段的生成,例如文本框,组合,列表等。添加按钮然后保存当前的“规则”并启动另一个。这听起来像是一个规则引擎把它这样!