我有一个报告,它使用SP来获取编号从1到~1700的字段列表,但也包括一些字符值(H44,HH4等).db将这些字段存储为char(5)类型。报告字段类是java.lang.String。输出几乎是随机的,我想从数字开始对字段进行排序。我使用的是JasperSoft Studio 6.2.1。
在Outline视图中,我选择了Sort Fields。我使用我想要排序的字段的名称创建了一个新的sortField。它将Type显示为'field',Order则排序'asc'。这些是sortField属性中的唯一选项。
在资料中显示:
public static void RenameFiles(File subDir) {
File[] files = subDir.listFiles();
Path source = FileSystems.getDefault().getPath(subDir.toString());
String sourceType = null;
if (source.toString().endsWith("Flavonoid")) {
sourceType = "/FL_";
} else {
sourceType = "/SR_";
}
for (File file : files) {
Path oldFilePath = FileSystems.getDefault().getPath(file.toString());
Path newFilePath = FileSystems.getDefault().getPath(subDir.toString() + sourceType + file.getName());
File newFile = newFilePath.toFile();
if(file.getName().startsWith("SR_") || file.getName().startsWith("FL_")) {
continue;
} else {
System.out.println("Creating outfile: " + newFile.toString());
try {
Files.move(oldFilePath, newFilePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
当我运行报告时,我按顺序列出了字段,但只有第一个数字。它显示1,10,100,1002,1003,1004 ... 103,1030(没有101,102,1001)。它将2,3,4,5等放在列表的其他地方。
我尝试创建变量并转换字符串,但我发现我无法使用:
<sortField name = "myfield"/>
因为它一碰到非int就会窒息。实际上,当我尝试运行它时,我得到一个JRExpressionEvalException。在这种情况下,字符串似乎是“1511” - 最后有一个空格?
我无法控制SP所以有没有办法对这个混乱进行排序?
答案 0 :(得分:0)
我今天在Jasper Server上创建临时视图时遇到了同样的问题。我已经解决了如下问题: 1)创建一个包含完整字符串的计算字段(例如,“-”的结果为“ 1-2-3”,“ 2-2-3”,“ 10-2-3”,...) 2)将此字段作为列添加到报告中 3)按以下顺序对报表的结果集进行排序:value1,value2,value3 这对您的问题有帮助吗?
斯文