Как да покажете множество несвързани 1:N записи в Crystal

Имам набор от данни, за който докладвам. Някои от данните обаче се дублират, а други не:

ID   Project   Org   Type   Facility   AssessorManager   Assessor 
123   Proj1    Org1  Ty1    Facil1     Smith              Jones    
123   Proj1    Org2  Ty1    Facil2     Smith              Black 
123   Proj1    Org2  Ty1    Facil3     Smith              Black 
234   Proj1    Org3  Ty2    Facil3     Harris             Jones 
234   Proj1    Org1  Ty2    Facil3     Harris             Jones 
393   Proj2    Org2  Ty3    Facil1     Smith              Black 

И така, за ID има връзка 1:1 с Project, Type и AssessorManager; и връзка 1:N с организацията, съоръжението и оценителя.

Искам отчет, който не се повтаря повече от необходимото, и съм докладвал данните 1:1 и след това съхранените процедури за всеки от наборите от данни 1:N. Получавам резултат като по-долу, но той е куче БАВЕН.

ID   Project   Org   Type   Facility   AssessorManager   Assessor 
123  Proj1     Org1  Ty1    Facil1     Smith             Jones 
               Org2         Facil2                       Black 
                            Facil3 

234  Proj1     Org3  Ty2    Facil3     Harris            Jones 
               Org1 

393  Proj2     Org2  Ty3    Facil1     Smith             Black 

Мога ли да направя функция за полетата 1:N, която подрежда данните и показва отделни данни? Мога да използвам опцията за потискане при дублиране за полето, но трябва да сортирам всяко поле в рамките на ID самостоятелно. Не мога да използвам групиране по и задаване на групи, защото има 4 полета 1:N и всички те са независими едно от друго.

(Извършването на групирането в миналото е довело до отчет, който изглежда по следния начин:

ID   Project   Org   Type   Facility   AssessorManager   Assessor 
123  Proj1     Org1  Ty1    Facil1     Smith             Jones 
                                                         Black 
                            Facil2                       Jones
                                                         Black
                            Facil3                       Jones
                                                         Black
               Org2         Facil1                       Jones 
                                                         Black 
                            Facil2                       Jones
                                                         Black
                            Facil3                       Jones
                                                         Black

...и т.н.)

РЕДАКТИРАНЕ... отговор... Приех отговора на PowerUser, използвайки най-вече второто му предложение. Добавих полета към моята заявка. Все още имаше дублиране, защото някои от полетата 1:N бяха полета за заявка и сортиране. Вероятно има повече дублиране от показаното тук, но това е идеята. Освен това, вместо да използвам запетаи за разделяне на стойностите в мемо полетата, използвах знак за връщане.

ID   Project   Org   Orgs       Type    Facility   Facilities         AssessorManager   Assessors 
123  Proj1     Org1  Org1,Org2  Ty1     Facil1   Facil1,Facil2,Facil3   Smith          Jones,Black 
123  Proj1     Org2  Org1,Org2  Ty1     Facil2   Facil1,Facil2,Facil3   Smith          Jones,Black 
123  Proj1     Org2  Org1,Org2  Ty1     Facil3   Facil1,Facil2,Facil3   Smith          Jones,Black 

person thursdaysgeek    schedule 08.12.2010    source източник


Отговори (1)


+1 за твоите примери! Така че нека да го разбера. Работи, но искате да работи по-бързо?

  1. Във вашата трета примерна таблица мисля, че използвате помощна (известна още като индекс) таблица и правилно се присъединявате към вашите данни. Това би обяснило защо имате ред за Proj 1, Org 1, Black, когато няма запис в оригиналния ви набор от данни. Вътрешното свързване ще поправи това, но се уверете, че не създава други проблеми в процеса.
  2. Вместо да групирате по ID, след това по Proj, Org и т.н., можете да направите едно свързано поле за групиране, т.е. GroupBy=[ID]&[Proj]&[Org]. Това ще ускори малко нещата, тъй като имате само 1 ниво на групиране.
  3. Въз основа на вашите тагове, аз вярвам, че вашият източник на данни е SQL Server 2008. Ако изтегляте от заявка, опитайте вместо това да направите временна статична таблица. Това значително ще опрости нещата за Crystal.

(Ако едно от тези предложения е полезно, моля, кажете ми кое.)

person PowerUser    schedule 13.12.2010
comment
Избрах комбинация от 2 и 3. Всъщност добавих memo полета към моята заявка и поставих комбинираните набори от данни във всяко. Има много дублиране, но то се случва само веднъж и елиминира необходимостта от подотчети. Не мисля обаче, че мога да покажа снимка в коментар. - person thursdaysgeek; 15.12.2010