我有一个我没有制作的现有报告。这很复杂。它不使用命令函数,所以我不能直接更改SQL代码中的过滤器。我已经审查了几个基本上说没有办法解决这个问题的链接,我需要创建一个新的命令并重做报表。我想找到一个解决方案,不需要我重做报告。修改现有Crystal Reports以包含其他过滤器
我的逻辑,我需要的是只选择分包(如获批准与否不论),只有有一个实例,如果他们有关联的唯一选择已批准
这是当前的后端一两个实例水晶SQL
SELECT columns
from several tables joins etc
WHERE subcontract = '12345'--parameter entry
AND company=1 --parameter entry
我想补充这个逻辑,其在一个正常的SQL语句工作,但因为我不能修改Crystal的SQL我坚持......
AND ((subcontract in (select subcontract from table
group by subcontract having count(*) = 1))
OR (subcontract in (select subcontract from table group by subcontract having count(*) > 1)
AND "approved = 'Y'))
我已经看着你选择和组专家,但我只是没有达到那里。有没有人找到一些简单的解决方法? 谢谢!
编辑:我已经有一个选择的专家涉及转包,但我不知道如何添加什么,我想它,因为它是基于验证和我想的过滤器组件添加到它..
(
if (IsNull({?BeginSub}) or Trim({?BeginSub})="") then
true
else
{subcontract} >= Trim({?BeginSub})
) and
(
if (IsNull({?BeginSub}) or Left(Trim({?BeginSub}),3) in ["","zzz"]) then
true
else
{subcontract} <= Trim({?EndSub})
)
编辑更新:我找到了一种方法来获得我想要的水晶报告,但是当我从我的应用程序运行报告时,它会引发错误。我用我想要的条件创建一个命令,然后链接到command.subcontract = othertables.subcontract的其他表。
你如何检查合同是否被批准?你的数据库结构是什么?数据的外观如何 – Siva
项目是否被批准有YN列。问题在于他们可以批准合同的各个部分,因此合同可以有Y批准的记录和N未批准的记录。他们还需要访问尚未被批准的项目,以推动他们通过系统。所以我需要让我的数据集包括那些只有一个实例的分包合同,如果他们有多个实例只包含那些具有批准状态的实例。 – Kdunc2015
我的问题是Y和N记录在同一列或另一列 – Siva