Crystal reports 确定要使用的标识符的优先级

Crystal reports 确定要使用的标识符的优先级,crystal-reports,Crystal Reports,我的crystal report收集有关书籍的数据,包括标识符(isbn、issn订单号等)、作者和出版商 ID字段存储识别书籍的多种方法。报告显示该记录的任何标识符。如果一本书有两个标识符;issn和订单号,报告当前显示一个显然是随机的 如何根据预设顺序确定使用哪种类型的优先级?我想现场的某种过滤器可以工作,但我还没有弄清楚如何工作。我无法编辑该表,但我可以在报告中使用SQL。基于您提供的很少信息,如果我要猜测的话。我建议您使用报告中的公式字段,然后使用类似的方法来实现您的目标 IF ISNU

我的crystal report收集有关书籍的数据,包括标识符(isbn、issn订单号等)、作者和出版商

ID字段存储识别书籍的多种方法。报告显示该记录的任何标识符。如果一本书有两个标识符;issn和订单号,报告当前显示一个显然是随机的


如何根据预设顺序确定使用哪种类型的优先级?我想现场的某种过滤器可以工作,但我还没有弄清楚如何工作。我无法编辑该表,但我可以在报告中使用SQL。

基于您提供的很少信息,如果我要猜测的话。我建议您使用报告中的公式字段,然后使用类似的方法来实现您的目标

IF ISNULL{first_priority_field_name} OR {first_priority_field_name} = '' THEN 
{second_priority_field_name}
ELSE
{first_priority_field_name}

如果有两个以上的标识符字段,请使用嵌套的IF语句。

如果所有不同类型的ID都存储在一个字段中,则最好在报表中使用SQL命令将它们分隔为多个虚拟字段

转到“数据库字段”/“数据库专家”,展开要使用的连接,然后选择“添加”命令。从这里,您可以编写自定义SQL语句来获取当前使用的信息,同时将ID字段分隔为多个不同的字段(无论如何,就报表而言,该表将保持不变)


诀窍是找出如何编写命令来进行分离。我们不知道您的数据是什么样子的,所以您可以自己从这里开始。

谢谢,但字段从来都不是空的或空的-我只是想让它在同一字段中存储的另一个值上选择某个值,除非该值不存在,然后选择下一个值。谢谢。我可以在SQL中实现这一点,但希望可以在字段中实现,即通过向字段中添加公式。我会继续尝试:)理论上,你可以对公式做同样的事情,但你会自食其果:在SQL中执行过滤器,然后在加载报表之前处理它。您不必添加额外的抑制、分组、空校验等功能。只需重写SQL,工作量就会大大减少。谢谢!这是实现我所需要的最简单的方法。