2012-08-29 92 views
1

我在药店工作。一种分类药物的方法是称为GPI的标识符。 GPI中的数字具有含义以及父子关系。想要在级联输入控件中显示重复值

enter image description here

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

在JasperReports服务器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 Subclass输入控件来自GPI Group和GPI Class输入控件的值,我想将GPI Group,GPI Class和GPI Subclass提供给我的查询。

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

回答

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类的concatentation):

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子类的级联)