Crystal reports 我们有一份报告,其中打印了待处理的作业变更单的详细信息。

Crystal reports 我们有一份报告,其中打印了待处理的作业变更单的详细信息。,crystal-reports,report,Crystal Reports,Report,如果PCO状态为“拒绝”,我们需要将总额减去金额。我们如何做到这一点 报告本身打印每个挂起的变更单的详细信息,然后在最后汇总这些挂起的变更单。但是,有时会拒绝挂起的变更单,使其处于“R”状态,我们不希望将其包含在总数中。我们想制定一个公式,但不完全确定如何成功地做到这一点 提前谢谢 假设每个变更单都是报告中的一行,您可以通过创建一个简单地为这些行返回0的公式,对那些不具有拒绝状态的变更单求和: 如果isnull({PCO.Status})或not({PCO.Status}=“拒绝”),则{PCO

如果PCO状态为“拒绝”,我们需要将总额减去金额。我们如何做到这一点

报告本身打印每个挂起的变更单的详细信息,然后在最后汇总这些挂起的变更单。但是,有时会拒绝挂起的变更单,使其处于“R”状态,我们不希望将其包含在总数中。我们想制定一个公式,但不完全确定如何成功地做到这一点


提前谢谢

假设每个变更单都是报告中的一行,您可以通过创建一个简单地为这些行返回0的公式,对那些不具有拒绝状态的变更单求和:

如果isnull({PCO.Status})或not({PCO.Status}=“拒绝”),则{PCO.NumberToSum}否则0


然后,您只需在这个新公式字段的报告中插入一个
sum()
摘要。

一种方法是将一个变量中的总和和另一个变量中被拒绝的总和相减,然后打印最终结果

//For Rejected        
Local Numbervar a;
If (Status='R') Then a:=sum(Total);

//Total with rejected
Sum(Total);

//For total without rejected
Sum(Total)-a;

当我创建公式时,它说它不能被总结。这是我根据您以前的信息创建的公式,如果为空({PMOI.Status})或不为空({PMOI.Status}=“3”),则{@PrintPendAmtPCO}否则0什么是
{@PrintPendAmtPCO}
公式?里面可能有什么东西妨碍了汇总。@PrintPendAmtACO正在打印记录;编号为PCOPendAmt;PCOPendAmt我没有创建这个公式。软件公司做到了。所以我不知道为什么会这样做,报告是通过一个变量手动跟踪运行总数,不管是什么原因,这通常意味着有更复杂的事情发生。在报告中的某个地方,您将有一个公式更新
PCOPendAmt
变量。。。如果你能找到它,并公布其中的代码以及报告的哪一部分,我们也许能够解决它。-1为过于复杂和未经测试的答案(您将在
Local Nubervar a
行中得到一个错误。我不认为这是一个过于复杂的问题…有没有任何规则要求答案应该简单?…这是我解决问题的想法,我相信这会起作用…可能是我忘了;最后。我没有回应,因为您贬低了..我在评论您的方式对某人的攻击response@Siva在我的书中,语法错误/拼写错误不足以保证投反对票。如果答案很接近或有助于正确的方法,那么一切都很好。我编辑了你的答案并修正了语法,但你的少量代码没有太多意义,也不会起作用。事实上nswer将始终为0。您正在检查一个记录级别字段,然后用报告级别的总和一次又一次地覆盖“a”变量。@Ryan……没问题,不需要任何解释……事实上,看到单词
过于复杂,我感到很难过。我可以有自己的解决方案。如果有任何错误,我接受它,没有任何不快的感觉……ev每个人都在试图解决问题,不要再详细说明了