2012-06-12 14 views
6

W raporcie mam zestaw danych z filtrem (na podstawie parametru MultiValue).Usługi raportowania: Dołącz do wszystkich pól w zestawie danych

Ten zestaw danych zawiera dwa pola: identyfikator i nazwę.

muszę wyświetlać gdzieś połączeniem wszystkich nazw:

Name1/Name2/Name3 

Problem polega na tym, że metoda join działa tylko na tablicy, a potem nie można określić zbiór danych jako wartości.

Zajrzałem również w niestandardowym kodzie, ale nie znalazłem nic działającego.

Jak powinienem to zrobić?

Odpowiedz

2

SSRS-2008 R2 i wyżej ...

1. Korzystanie LookupSet
Jeśli jesteś poza 2008 Wersja OP istnieje dobre rozwiązanie:

=Join(LookupSet(1, 1, Fields!Name.Value, "DatasetName"), "/") 

Kredyt dla tej odpowiedzi przy użyciu numeru the LookupSet solution jest całkowicie zgodny z @urbanhusky's answer.


SSRS-2008 i niższy ...

Trzymam tę odpowiedź, choć ze względu agreguje @ rozwiązania urbanhusky jest z dostępnymi dla biednych dusz wbitych w wersji OP SSR i poniżej rozwiązań.

W systemie SSRS 2008 istnieją tylko trzy "opcje", o ile widzę, każdy z własnym minusem. Pierwszy jest prawdopodobnie najmniej hackowy.

2. Dodatkowy parametr
utworzyć parametr wewnętrznego (na przykład „NameParameter”, patrz this SO answer lub MSDN) z umożliwiają wielu wartości. Ustaw domyślną wartość parametru na polu Name ze swojego zestawu danych. Następnie użyj funkcji =Join(Parameters!NameParameter.Value, "/"), aby wyświetlić połączone nazwy w polu tekstowym.

Może to być Twój najlepszy zakład, ale jeśli istnieje wiele wartości, parametr może nie działać zbyt dobrze.

3. Użyj Lista
Tworzenie listy i przeciągnij/upuść pole Nazwa do niego. Jeśli to konieczne, zgrupuj również nazwę.

Wadą jest to, że (AFAIK) lista nie może być pokazywana poziomo.

4. Zastosowanie matrycy
Oh boy, Ten jest prawdziwy brzydki. Niemniej jednak, tutaj: utwórz macierz, przeciągnij pole Nazwa do nagłówka kolumny i ukryj pierwszą kolumnę, a także drugi wiersz (do wyświetlania danych).

Główną wadą jest to, że jest to hack (i całkiem sporo przesady), a będziesz musiał przyciąć ostatni znak separatora ręcznie za pomocą wyrażenia.

+0

niestety nie mogę: 1. otrzymać tylko ID od nadawcy, 2. Muszę umieścić to w sposób poziomy, 3. Próbowałem już, ale muszę określić szerokość każdej kolumny :( – J4N

+0

Z opcją 1 miałem na myśli * wewnętrzny * parametr, a nie jeden użytkownik musi wypełnić, ale wypełniony przez zestaw danych – Jeroen

+0

Oh? Nie znam tego rodzaju "wewnętrznego parametru", czy masz jakieś informacje na ten temat? – J4N

15

może być trochę za późno na to, ale dla każdego, kto jest zainteresowany w tym, tam jest dość łatwy sposób to zrobić w SSRS:

=Join(LookupSet(1,1,Fields!Name.Value, "DatasetName"),"/") 
+0

'LookupSet' nie jest dostępny w ssrs-2005. Jakieś podobne rozwiązanie? – maxx777

+0

Przepraszam, nie znam żadnej innej metody. – urbanhusky

+0

Legenda, LookupSet jest dość słabo udokumentowana - pierwsze dwa parametry to 1, to jest tutaj sztuczka. – meataxe

Powiązane problemy