1

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

在此处输入图像描述

在我的数据库中,我有一个组表、一个类表(包括组)和一个子类表(包括组和类)。类的数值在组中重复。例如,组 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组:

在此处输入图像描述

这是第02组:

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

但是,我不希望我的值列是 GPI 类名称,我希望它是 GPI 类。我想将我的 GPI 子类输入控件限制在来自 GPI 组和 GPI 类输入控件的值上,并且我想将 GPI 组、GPI 类和 GPI 子类输入到我的查询中。

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

4

1 回答 1

0

这是我决定要做的——

输入控件需要值列中的唯一值。我认为没有办法解决这个问题,所以我只是顺其自然。我将在我的查询中处理连接的字符串。

查询 GPI Class 级联输入控制:

 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 Group 和 GPI Class 的串联)

查询 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 Group、GPI Class 和 GPI Subclass 的串联)

于 2012-08-29T14:44:05.227 回答