Crystal reports crystal报表中的命令级参数

Crystal reports crystal报表中的命令级参数,crystal-reports,Crystal Reports,我有一份有两个参数和位置的报告 假设我没有给出其中的任何值,那么它应该给出所有值 所以创建了两个命令级参数。只要我没有在参数中给出任何值,它就会显示所有值 但即使我给了一些价值,无论是在纸箱或位置,但它仍然显示所有的价值 请提出问题所在 SELECT crt.carton_no, crtd.part_no, SUM(crtd.quantity) AS quantity, crtd.barcode, crtd.item_description , crt.put

我有一份有两个参数和位置的报告

假设我没有给出其中的任何值,那么它应该给出所有值

所以创建了两个命令级参数。只要我没有在参数中给出任何值,它就会显示所有值

但即使我给了一些价值,无论是在纸箱或位置,但它仍然显示所有的价值

请提出问题所在

SELECT
      crt.carton_no, crtd.part_no, SUM(crtd.quantity) AS quantity,
      crtd.barcode, crtd.item_description
      , crt.put_away_location AS putAway
FROM
      carton crt, carton_details crtd
WHERE
      crt.carton_id = crtd.carton_id
      AND crt.status = 'N' AND
     ( crt.carton_no like  '{?cartonno}' or '{?cartonno}'  like '%' ) and (crt.put_away_location LIKE '{?location}' or '{?location}'  like '%')
GROUP BY
      crt.carton_no, crtd.carton_id, crtd.part_no
ORDER BY
      crt.put_away_location, crt.carton_no

我猜您的查询总是为真,忽略
条件。。。尝试使用
Case

where
    CASE WHEN {?cartonno} Like ""
            THEN
                '{?cartonno}'  like '%'
            ELSE
                crt.carton_no like  '{?cartonno}'
            END

注意:我不知道上面使用的数据库只是SQL的一个例子。。。您可以根据需要对其进行更改,并对where子句中的其他参数使用类似的方法

不提供任何值意味着什么?如何操作?任何字符串
如“%”
都将始终返回true,因此WHERE子句的最后一行实际上没有做任何事情。您好,Siva,如果我将这两个参数都留空,那么它应该根据查询显示所有值。假设我给出了一些值,那么它应该基于该值显示。这里发生的情况是,即使我给出了carton no或location参数值,但我仍然会获得所有值的数据(参数不是根据位置和carton no进行过滤)@用户3725135已尝试在crystal reports中使用
记录选择公式,而不是在查询中使用该公式。。在那里,你可以给出这些类型需求的
if
条件。Shi Siva根据我的要求,我只需要在命令级别执行此操作。你能建议吗