基于第一个参数带来的晶体选择公式

时间:2012-08-27 18:58:53

标签: crystal-reports report formula

我正在尝试找到一个公式,该公式将根据所选择的前两个参数,根据选择中的前两个参数,然后是公式中的其他参数。所以这就是我到目前为止所遇到的问题。我遇到的问题是,如果不是所有公式都被选中,那么我在报告上没有任何内容可以打印。因此,如果我选择{Sig1}和{Sig4},则报告显示为空白。

{table.client} = {?client#} and
{table.signature1} = {?Sig1}
//to then bring only the below selected parameters based from the {client#} and {?Sig1}
parameters. Not all parameters will be selected as well.
({table.signature2} = {?Sig2} or {?Sig2} = "") or
({table.signature3} = {?Sig3} or {?Sig3} = "") or
({table.signature4} = {?Sig4} or {?Sig4} = "") 

提前非常感谢任何帮助。 希望我很清楚

1 个答案:

答案 0 :(得分:0)

夫妻俩:

  1. 您不会在公式的第一部分和第二部分之间使用任何连接词(在您检查{?Sig1}之后)。我猜这是一个错字,因为CR会给你一个错误。

  2. 括号不执行任何操作,因为OR运算符是可交换的。这是令人困惑的阅读,可能至少部分地负责下一个问题......

  3. 评论后面只有一个语句需要评估为TRUE,以便评论下面的整个部分评估为TRUE。因此,如果您输入{?Sig2}的值但将{?Sig3}留空,则仍会返回所有记录,因为{?Sig3}=""的计算结果为TRUE。要解决此问题,您需要在每一行之间使用AND运算符。

  4. {table.client} = {?client#}
    and {table.signature1} = {?Sig1}
    and ({table.signature2} = {?Sig2} or {?Sig2} = "") //note that the parens are required here
    and ({table.signature3} = {?Sig3} or {?Sig3} = "") // since AND takes precedence
    and ({table.signature4} = {?Sig4} or {?Sig4} = "")