想要在级联输入控件中显示重复值

时间:2012-08-29 13:44:31

标签: jasperserver

我在药店工作。对药物进行分类的一种方法是称为GPI的标识符。 GPI中的数字具有含义和父子关系。

enter image description here

在我的数据库中,我有一个组表,一个类表(包括组)和一个子类表(包括组和类)。类的数值在组上重复。例如,组01可能具有类01,02,03和04.组02也可能具有01,02,03和04.每个组中的类不同,它们使用具有相同的标识符。

在JasperReports Server 4.7中,我有一个显示GPI组的多选查询输入控件。我还有一个多选查询级联输入控件,它接受gpi_group值来显示类列表。这是填充级联输入控件的查询:

 SELECT DRUG_GROUP, DRUG_CLASS, CLASS_NAME
 FROM Schema.DRUG_CLASSES
 WHERE $X{IN, DRUG_GROUP, gpi_group}
 ORDER BY DRUG_GROUP, DRUG_CLASS

可见列:DRUG_GROUP,DRUG_CLASS,CLASS_NAME

值列:DRUG_CLASS

当我选择一个药物组时它很有效。这是01组:

enter image description here

这是02组:

enter image description here

但是当我一起选择它们时:

enter image description here

输入控件似乎不喜欢选择多个GPI组时发生的GPI类的重复值。如果我将值列更改为GPI类名称(没有重复项),则显示符是所需的:

enter image description here

但是,我不希望我的值列为GPI类名,我希望它是GPI类。我想限制我的GPI子类输入控件来自GPI组和GPI类输入控件的值,我想将GPI组,GPI类和GPI子类提供给我的查询。

有关如何让级联输入控件显示“重复”GPI类值的任何想法?

1 个答案:

答案 0 :(得分:0)

这是我决定做的事情 -

输入控件需要值列中的唯一值。我认为没有任何方法可以解决这个问题,所以我只想推出它。我将在查询中处理连接的字符串。

查询GPI类级联输入控件:

 SELECT 
   DRUG_GROUP, 
   DRUG_CLASS, 
   CLASS_NAME, 
   DRUG_GROUP||DRUG_CLASS AS GROUP_CLASS
 FROM Schema.DRUG_CLASSES
 WHERE $X{IN, DRUG_GROUP, gpi_group}

值列:GROUP_CLASS(GPI组和GPI类的连接)

查询GPI子类级联输入控件:

 SELECT 
   DRUG_GROUP, 
   DRUG_CLASS, 
   GROUP_CLASS, 
   DRUG_SUBCLASS, 
   GROUP_CLASS_SUBCLASS,      
   DRUG_SUBCLASSNAME 
 FROM (
     SELECT 
       DRUG_GROUP, 
       DRUG_CLASS, 
       DRUG_GROUP||DRUG_CLASS AS GROUP_CLASS, 
       DRUG_SUBCLASS, 
       DRUG_GROUP||DRUG_CLASS||DRUG_SUBCLASS AS GROUP_CLASS_SUBCLASS, 
       DRUG_SUBCLASSNAME
     FROM Schema.DRUG_SUBCLASSES
 )
 WHERE $X{IN, GROUP_CLASS, gpi_class_cas}

值列:GROUP_CLASS_SUBCLASS(GPI组,GPI类和GPI子类的串联)