我有一些从服务器获得的数据,如下所示:
当前:/Engineer/LineNumber/ RepairDate
23-6-2016------------1---------------1------------23-6-2016
23-6-2016------------1---------------2------------23-6-2016
23-6-2016------------1---------------3------------22-6-2016
23-6-2016------------1---------------2------------20-6-2016
23-6-2016------------2---------------7------------23-6-2016
23-6-2016------------2---------------3------------19-6-2016
23-6-2016------------2---------------2------------17-6-2016
23-6-2016------------5---------------8------------23-6-2016
23-6-2016------------5---------------1------------18-6-2016
现在,我想要实现的是,按工程师分组,然后显示在当前日期修复的行号,这些数字也应该分组,并显示它的修复历史,以及在那天修复它的工程师。
应该是这样的:
日期: 23-6-2016
引擎
1
在当前日期修理的线路:
-1
工程师修复18-6-2016
-2
引擎1于20-6-2016修复
工程师修复18-6-2016
由工程师2于17-6-2016修复
引擎
2
在当前日期修理的线路:
-7
引擎
5
在当前日期修理的线路:
-8
就我所见,我有两个问题,首先,通过分组,我丢失了在打印时我目前没有分组的详细信息部分中的所有工程师数据;另一方面,如果我使用组公式筛选行以只获得当前日期的数据,那么我还会丢失details部分中的所有其他日期。
我尝试的是在标题组中过滤,只过滤具有当前日期的行,但这会过滤其他行,而且我无法读取LineNumbers的历史记录。我在这方面很新,我似乎找不到解决办法.
发布于 2016-07-05 22:20:08
有几种方法,但最干净的方法是在linenumber上将LinesRepaired表连接到自己。为此,我附加了原始SQL。您还可以跳过SQL并在Crystal中执行以下步骤:
发布于 2016-07-05 17:57:42
我已经找到了解决这一问题的方法,不是用水晶报告困难,而是通过使用应用程序和标识来编程.如下所示:
头
当前:/Engineer/LineNumber/ RepairDate / DateAPL //EngineerAPL/
23-6-2016------------1---------------2------------23-6-2016----23-6-2016---------1----- >>The identity<<
及其各自的应用:
23-6-2016------------1---------------2------------23-6-2016----20-6-2016---------1
23-6-2016------------1---------------2------------23-6-2016----18-6-2016---------5
23-6-2016------------1---------------2------------23-6-2016----17-6-2016---------2
所以,当我开始对水晶报告进行分组时,我不会丢失关键信息。然后我只需要按日期->Engineer->LineNumber进行分组,在细节部分,它将显示对这条线路进行的所有修理。
在代码部分,我使用从数据库获得的数据(目前正在使用vbnet)。
-Filter数据仓库中的所有工程师:
每个工程师
使用当前日期的-Filter所有工程师行
当前日期的每一排
对于所有未被筛选的数据中的每一行
如果currentEngineerLineNumber = alldata.LineNumber和alldata.date <> currentDate
将带有应用程序数据(Engineer和date)的行添加到全新的表中
否则
标识,将带有标识的行添加到该全新表中。
https://stackoverflow.com/questions/38002689
复制相似问题