Udostępnij za pośrednictwem


Lekcja 3: Dodawanie parametrów, aby wybrać wiele wartości na liście (SSRS)

W tej lekcji będzie zmienić BusinessPersonID i DayoftheWeek Parametry z parametrów pojedynczej wartości parametrów wielowartościowym.Parametry wielowartościowym pozwalają wybrać więcej niż jedną wartość dla parametru raportu.Aby zmodyfikować parametr raport BusinessPersonID, zmieni kwerendę dla AdventureWorks2008R22008 zestaw danych do testowania @BusinessPersonID w zestawie wybranych wartości zamiast równą pojedynczą wartość i wyboru raport parametr wielowartościowym właściwość.Aby zmodyfikować DayoftheWeek parametru, raport będzie wielowartościowym właściwość, ustaw dostępne wartości z nowego zestaw danych oraz zapewnienia wyrażenie dla wartości domyślnej.Spowoduje utworzenie nowego zestawu danych zapewniające dostępnych wartości DayoftheWeek parametru.Wreszcie, doda pole tekstowe do raportu w celu wyświetlania wartości parametru DayoftheWeek dokonane wybory.

Aby zamienić istniejący zestaw danych

  1. W okienku danych raportu, kliknij prawym przyciskiem myszy element dataset AdventureWorksDataset, a następnie kliknij Właściwości Dataset.

  2. W źródło danych, sprawdź, czy zaznaczone jest AdventureWorks_Ref.

  3. W Typ kwerendy, sprawdź, czy tekstu jest zaznaczone.

  4. Kliknij projektant zapytań przycisk, aby otworzyć projektant zapytań.

  5. Zamień tekst w polu tekstowym na następujące zapytanie:

    SELECT 
       soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday,
       soh.SalesOrderNumber AS [Order], 
       pps.Name AS Subcat, pp.Name as Product,  
       SUM(sd.OrderQty) AS Qty,
       SUM(sd.LineTotal) AS LineTotal
    FROM Sales.SalesPerson sp 
       INNER JOIN Sales.SalesOrderHeader AS soh 
          ON sp.BusinessEntityID = soh.SalesPersonID
       INNER JOIN Sales.SalesOrderDetail AS sd 
          ON sd.SalesOrderID = soh.SalesOrderID
       INNER JOIN Production.Product AS pp 
          ON sd.ProductID = pp.ProductID
       INNER JOIN Production.ProductSubcategory AS pps 
          ON pp.ProductSubcategoryID = pps.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS ppc 
          ON ppc.ProductCategoryID = pps.ProductCategoryID
    GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, 
       pps.Name, pp.Name,    soh.SalesPersonID
    HAVING 
    ppc.Name = 'Clothing' 
    AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    AND  soh.SalesPersonID IN (@BusinessPersonID)
    

    Jest to tej samej kwerendy jako przed, chyba, że warunek został zmieniony z równości do włączenia.

    AND soh.SalesPersonID IN (@BusinessPersonID)
    
  6. Click the Run (!) przycisk.Gdy zostanie wyświetlony monit o podanie parametrów zapytania, użyj następującej tabeli, aby wprowadzić wartości.Projektant zapytań nie obsługuje testowania parametrów wielowartościowych.

    @StartDate

    1/1/2001

    @EndDate

    1/1/2003

    @BusinessPersonID

    290

  7. Kliknij przycisk OK. 

    Zestaw wyników jest wyświetlana dla sprzedawcy Chudukatil Varkey Ranjit z BusinessPersonID = 290.

Aby edytować parametr raportu BusinessPersonID w celu ustawienia go jako parametru wielowartościowego

  1. W okienku danych raportu rozwiń Parametry, kliknij dwukrotnie BusinessPersonID parametru.

  2. Wybierz Zezwalaj na wiele wartości opcji.

  3. Kliknij przycisk OK. 

  4. Kliknij Podgląd.Raport zostanie uruchomiony automatycznie.Drop -niedziałający listy dla BusinessPersonID zawiera wszystkie nazwy sprzedawcy.

Ostrzeżenie

A (Zaznacz wszystko) wartość stanowi pierwszą wartość drop dostępne wartości -niedziałający listy dla parametru wielowartościowym.To pole wyboru umożliwia zaznaczenie lub wyczyszczenie wszystkich wartości.Domyślnie zaznaczone są wszystkie wartości.

Aby dodać nowy zestaw danych w celu wypełnienia prawidłowych wartości dla parametru raportu

  1. Przełącz do widoku projektu.

  2. W okienku danych raportu, kliknij prawym przyciskiem myszy AdventureWorks_Ref i kliknij przycisk Dodać Dataset.Właściwości Dataset zostanie otwarte okno dialogowe.

  3. W nazwę pole, wpisz WeekDaysfromQuery.

  4. W Typ kwerendy, sprawdź zaznaczony tekst.

  5. W kwerendy, wpisz lub wklej następujący ciąg kwerendy:

    SET DATEFIRST 1;
    SELECT DISTINCT 
       DATEPART(weekday, S.OrderDate) as WeekDayNumber,
       DATENAME(weekday, S.OrderDate) as Weekday
       FROM Sales.SalesOrderHeader S
    Order by WeekDayNumber
    
  6. Click the Run (!) przycisk na pasku narzędzi projektant zapytań.W zestawie wyników zostaną wyświetlone liczby porządkowe i dni tygodnia.

  7. Kliknij OK dwa razy, aby zakończyć Właściwości Dataset okno dialogowe.

    Element dataset WeekDaysfromQuery pojawi się w okienku danych raportu.

Aby edytować parametr, który będzie akceptował wiele wartości, wartości domyślne i prawidłowe wartości

  1. W okienku danych raportu rozwiń Parametry, a następnie kliknij dwukrotnie DayoftheWeek.Właściwości raportu parametr zostanie otwarte okno dialogowe.

  2. Wybierz Zezwalaj na wiele wartości.

  3. Kliknij Dostępne wartości.

  4. Wybierz uzyskać wartości z kwerendy.

  5. W Dataset, z drop -niedziałający zaznacz WeekDaysfromQuery.

  6. W wartość pole, z drop -niedziałający listy wybierz dzień tygodnia.

  7. W pole Etykieta, z drop -niedziałający listy wybierz dzień tygodnia.

  8. Kliknij wartości domyślne.

  9. Wybierz Określ wartości.

  10. (Opcjonalnie) Zaznacz istniejącą wartość piątek i kliknij przycisk usunąć.

  11. Click Add.

  12. W wartość, typ sobota.

  13. Click Add.

  14. W wartość, typ niedziela.

  15. Kliknij przycisk OK. 

Zanim można wyświetlić podgląd raportu, należy zmienić wyrażenie filtru zdefiniowanego dla danych tabeli region , aby zastosować operator, ponieważ DayoftheWeek parametr akceptuje wiele wartości.

Aby zmienić filtr w celu użycia parametru wielowartościowego

  1. W Projekt wyświetlić, kliknij prawym przyciskiem myszy tabela, a następnie kliknij Właściwości element tablix.element tablix właściwości zostanie otwarte okno dialogowe.

  2. Kliknij Filtry.Filtr, który został dodany do DaysoftheWeek z lekcji 1 już istnieje.

  3. W wyrażenie, z drop -niedziałający list, sprawdź wartość jest [Weekday].

  4. Sprawdź, czy tekstu jest zaznaczone.

  5. Zmień operator od znaku równości (=) do w operator.

  6. W wartość pole tekstowe, z drop -niedziałający list, sprawdź, czy wartość jest [@DayoftheWeek].

  7. Kliknij przycisk OK. 

    W tabela filtru jest teraz zestaw do porównywania wartości pole Weekday z wartością parametru DayoftheWeek za pomocą In operator.Po wybraniu wielu wartości dla parametru raportu filtru spowoduje przetestowanie każdego wiersza tabela, aby sprawdzić, czy Weekday pole istnieje w DayoftheWeek kolekcja.

  8. Kliknij Podgląd.Raport zawiera parametr raport DaysoftheWeek z wartościami domyślnymi sobota i niedziela.Użyj drop -niedziałający aby zaznaczyć wiele wartości dla DayoftheWeek parametru.

Następne kroki

Pomyślnie zmieniono właściwości jednowartościowego parametru raportu, dzięki czemu jest on teraz parametrem wielowartościowym.Koniecznych zmian dokonanych w kwerendzie, filtr i wyrażenie, aby pomieścić przy użyciu parametru wielowartościowym kolekcja.Użytkownik wie już, jak używać parametrów wielowartościowych w wyrażeniu.W trakcie następnej lekcji użytkownik nauczy się tworzyć parametry, których wartości są wypełniane warunkowo na podstawie wybranej wartości poprzedniego parametru.See Lekcja 4: Dodanie kaskadowego parametrów (SSRS).