如何从具有多个值的单个分隔字段中显示代码的描述?

时间:2014-03-10 13:35:49

标签: sql crystal-reports

我们有一个包含多个选择区域的调查问卷,其构建方式是将值存储在以分号分隔的代码形式中:

(例如:ROADS; RECREAT; PRKSTRLS; FLEET;)

Crystal Reports中是否有一种方法可以在显示此字段时显示描述值而不是代码?

我知道我可以制作如下公式:

如果{GTASSETMGMT.PLAN_SCOPE_CATEGORY} =“ROADS; RECREAT; PRKSTRLS; FLEET;”然后是“道路和桥梁,娱乐(如游泳池,竞技场等),公园和步道,舰队”

但是因为可能是100种可能的代码可以选择和存储的组合我不认为尝试实现这一点的方式。

所以我要找的是一种说法,无论它们存储在哪个顺序,它都会显示描述而不是代码。

先谢谢。

1 个答案:

答案 0 :(得分:1)

如果你坚持使用该数据库设计,你应该能够使用一些简单的字符串操作来获得你想要的东西。归结为将字符串拆分为; -delimiter并将每个代码逐段翻译为其描述。像这样:

local stringvar sample := "ROADS;RECREAT;PRKSTRLS;FLEET;";
local stringvar array a := split(sample, ';');
local stringvar out := "";
local numbervar i;

for i := 1 to count(a)-1 do //assume sample terminates in semicolon
 out := out +
  (select a[i]
   case "ROADS" : "Roads and Bridges"
   case "RECREAT" : "Recreation (e.g. Pools, Arenas, etc.)"
   case "PRKSTRLS" : "Parks and Trails"
   case "FLEET" : "Fleet"
   default : "") + ";";

out