Wyświetl parametr (wiele wartości) w raporcie


Odpowiedzi:


155

Możesz użyć funkcji „Join”, aby utworzyć pojedynczy ciąg z tablicy etykiet, na przykład:

=Join(Parameters!Product.Label, ",")

Jeśli dodaje wyrażenie złączenia do nagłówka, spowodowałoby to powiększenie się wyników w treści raportu.
mirezus

Dziękuję za udzielenie świetnej odpowiedzi, zanim będę musiał wyrywać włosy podczas wyszukiwania w Google!
Pulsehead

3
lub=Join(Parameters!Product.Value, ",")
Doug_Ivison

Co się stanie, jeśli w każdym produkcie są podziały stron? Czy można wyświetlić jeden produkt na stronie?
Pepys

12

= Dołącz (Parametry! Product.Label, vbcrfl) dla nowej linii


1
@nadiObi: Zamiast tego powinno być vbCrLf .
stomia

6

Nie wiedziałem o funkcji łączenia - Świetnie! Napisałem funkcję, którą umieściłem w sekcji kodu (właściwości raportu-> zakładka kod:

Public Function ShowParmValues(ByVal parm as Parameter) as string
   Dim s as String 

      For i as integer = 0 to parm.Count-1
         s &= CStr(parm.value(i)) & IIF( i < parm.Count-1, ", ","")
      Next
  Return s
End Function  

+1 Działa to w nagłówku raportu, gdzie rozwiązanie „Dołącz” wymaga tabeli (której nie można przejść do nagłówka raportu).
Jeff,

0

Mam nadzieję, że ktoś inny uzna to za przydatne:

Korzystanie z Join to najlepszy sposób na użycie parametru o wielu wartościach. Ale co, jeśli chcesz mieć wydajną opcję „Wybierz wszystko”? Jeśli jest ponad 100, zapytanie będzie bardzo nieefektywne.

Aby rozwiązać ten problem, zamiast używać zapytania SQL w obecnej postaci, zmień je na użycie wyrażenia (kliknij przycisk Fx w prawym górnym rogu), a następnie utwórz zapytanie mniej więcej w ten sposób (znaki mowy są konieczne):

= "Select * from tProducts Where 1 = 1 " 
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")

W parametrze wykonaj następujące czynności:

    SELECT -1 As ProductID, 'All' as ProductName Union All
    Select  
    tProducts.ProductID,tProducts.ProductName
    FROM
    tProducts

Budowanie zapytania jako wyrażenia oznacza, że ​​możesz zwiększyć wydajność instrukcji SQL, ale także poradzić sobie z trudnościami, jakie SQL Server ma z obsługą wartości w instrukcji „In”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.