首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在水晶报表中过滤和分组后访问所有数据?

如何在水晶报表中过滤和分组后访问所有数据?
EN

Stack Overflow用户
提问于 2016-06-23 22:06:48
回答 2查看 46关注 0票数 0

我有一些从服务器获得的数据,如下所示:

当前:/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的历史记录。我在这方面很新,我似乎找不到解决办法.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-05 22:20:08

有几种方法,但最干净的方法是在linenumber上将LinesRepaired表连接到自己。为此,我附加了原始SQL。您还可以跳过SQL并在Crystal中执行以下步骤:

  1. 在L.linenumber = L_1.linenumber上将表左连接到自己
  2. 筛选器,其中L.repairdate = L.CurrentDate (考虑将当前日期作为晶体参数)
  3. 按L.engineer分组,然后按L.linenumber分组
  4. 将L_1.Engineer和L_1.repairdate添加到详细信息
  5. 如果L.engineer = L_1.engineer和L.repairdate = L_1.repairdate (因为这是当前的修复,因此不应该在历史记录中显示),则禁止详细信息。 创建表LinesRepaired (CurrentDate varchar(10),Engineer int,LineNumber int,RepairDate varchar(10))插入LinesRepaired值(‘23-6-2016’,1,1,23-6-2016‘)插入LinesRepaired值(’23-6-2016‘,1,2,23-6-2016’)插入LinesRepaired值(‘23-6-2016’,1,3,22-6-2016‘)插入LinesRepaired值(’23-6-2016‘,1,2,“20-6-2016”插入LinesRepaired值(“23-6-2016”,2,7,23-6-2016‘)插入LinesRepaired值(’23-6-2016‘,2,3,'19-6-2016')插入LinesRepaired值(’23-6-2016‘,2,2,17-6-2016’)插入LinesRepaired值(‘23-6-2016’,5.8,'23-6-2016')插入LinesRepaired值(‘23-6-2016’,5,8,‘23-2016’,'18-6-2016')从LinesRepaired l左加入LinesRepaired l2 on l.linenumber =l2.l.linenumber并转换(varchar,l.engineer)+‘’+1.RepairDate <> (varchar,l2.engineer)+'-'+l2.RepairDate,其中l.RepairDate = '23-6-2016‘顺序为2,3。
票数 1
EN

Stack Overflow用户

发布于 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)的行添加到全新的表中

否则

标识,将带有标识的行添加到该全新表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38002689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档