Lekcja 3: Dodawanie parametry, aby wybrać wiele wartości listy (Konstruktora raportów 2.0)
Podczas tej lekcji użytkownik nauczy się zmieniać parametr tak, aby akceptował wiele wartości.Takie parametry są nazywane parametrami wielowartościowymi.Domyślnie parametr akceptuje jedną wartość.Parametry, które utworzono w poprzedniej lekcji BusinessPersonID i DayoftheWeek, akceptowane pojedynczymi wartościami. Aby zmodyfikować parametr do podjęcia wielu wartości, trzeba znać, czy parametr został utworzony automatycznie na podstawie parametru kwerendy, takie jak BusinessPersonID, i czy został utworzony ręcznie za pomocą okienka dane raportu, tak jak DayoftheWeek.
Aby zmodyfikować parametr raportu tak, aby akceptował wiele wartości, wystarczy tylko ustawić właściwość parametru raportu.Jeśli parametr raportu był oparty na parametrze zapytania, należy także zmienić zapytanie.W przypadku używania parametru w filtrze należy zmienić operator filtru, aby określał zestaw wartości, a nie pojedynczą wartość.
Aby zamienić istniejący zestaw danych
W okienku danych raportu kliknij prawym przyciskiem myszy zestaw danych DataSet1, a następnie kliknij przycisk Kwerendy.
Zostanie otwarty projektant kwerend opartych na tekście.
Zamień tekst w polu tekstowym na następujące zapytanie:
SELECT SH.OrderDate ,DATENAME(weekday, SH.OrderDate) as Weekday ,SH.SalesOrderNumber ,SD.OrderQty ,SD.LineTotal ,P.Name AS [Product] ,PS.Name AS [Subcategory] FROM Sales.SalesPerson SP INNER JOIN Sales.SalesOrderHeader AS SH ON SP.BusinessEntityID = SH.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS SD ON SH.SalesOrderID = SD.SalesOrderID INNER JOIN Production.Product AS P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory AS PS ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PS.ProductCategoryID WHERE PC.Name = 'Clothing' AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND SH.SalesPersonID IN (@BusinessPersonID)To jest w tej samej kwerendy, z tą różnicą, że stan został zmieniony z równości = do włączenia W:
AND SH.SalesPersonID IN (@BusinessPersonID)Kliknij przycisk Uruchamianie (!) 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
20010101
@EndDate
20030101
@BusinessPersonID
290
Click 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
W okienku danych raportu rozwiń węzeł Parametry, dwukrotnie kliknij BusinessPersonID parametr.
Wybierz Zezwalaj na wiele wartości opcji.
Click OK.
Kliknij przycisk Podgląd.Raport zostanie uruchomiony automatycznie.Kropla-niedziałający listy dla BusinessPersonID zawiera wszystkie nazwy sprzedawcy.
Uwaga
A)Zaznacz wszystkie) wartość jest dostępna jako pierwsza wartość w rozwijanej dostępnych wartości-niedziałający listy wielowartościowe parametru.To pole wyboru umożliwia zaznaczenie lub wyczyszczenie wszystkich wartości.
Aby dodać nowy zestaw danych w celu wypełnienia prawidłowych wartości dla parametru raportu
Przełącz do widoku projektu.
Na pasku narzędzi okienka dane wykresu kliknij Nowy, a następnie kliknij przycisk Zestaw danych.The Dataset Properties dialog box opens.
W Nazwa, wpisz WeekDaysfromQuery.
W Typ kwerendy, verify Tekst jest zaznaczone.
Kliknij przycisk projektant kwerend, a następnie kliknij przycisk Edytowanie jako tekst.
W okienku Zapytanie wklej następujące zapytanie:
SET DATEFIRST 1; SELECT DISTINCT DATEPART(weekday, S.OrderDate) as WeekdayNumber, DATENAME(weekday, S.OrderDate) as Weekday FROM Sales.SalesOrderHeader S Order by WeekdayNumberKliknij przycisk Uruchamianie (!) przycisk na pasku narzędzi projektant kwerend.W zestawie wyników zostaną wyświetlone liczby porządkowe i dni tygodnia.
Kliknij przycisk OK dwa razy, aby zakończyć Właściwości zestawów danych -okno dialogowe.
Zestaw danych WeekDaysfromQuery pojawia 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
W okienku danych raportu rozwiń węzeł Parametry, a następnie kliknij dwukrotnie DayoftheWeek.The Report Parameter Properties dialog box opens.
Wybierz opcję Zezwalaj na wiele wartości.
Kliknij przycisk Dostępne wartości.
Wybierz opcję Pobieranie wartości z kwerendy.
W Zestaw danych, z rozwijanej-niedziałający zaznacz WeekDaysfromQuery.
W Pole wartości, z rozwijanej-niedziałający zaznacz WeekdayNumber.
W Etykieta pole, z listy rozwijanej wybierz dzień roboczy.
Gdy użytkownik wybiera wartości parametru, wybiera spośród etykiet, ale w raporcie są używane wartości.Jest to ważne podczas ustawiania wartości domyślnych lub filtru.Wartości pola WeekdayNumber muszą być liczbami całkowitymi.
Kliknij przycisk Wartości domyślne.
Wybierz opcję Określanie wartości.
Kliknij przycisk Dodawanie.
W Wartość, Zastąp piątek 6.Ponieważ wartości pochodzą z zestawu danych, który dostarcza zarówno numer dnia tygodnia, jak i nazwę dnia tygodnia, wartość domyślna musi określać numer dnia tygodnia.Wartość 6 reprezentuje sobotę.
Kliknij przycisk Dodawanie.
W Wartość, type 7.Wartość ta oznacza niedzielę.
Click OK.
Zanim można wyświetlić podgląd raportu, należy zmienić wyrażenie filtru dla tabela, aby zastosować operator, ponieważ DayoftheWeek parametr akceptuje wiele wartości.
Aby zmienić filtr w celu użycia parametru wielowartościowego
W okienku danych raportu kliknij prawym przyciskiem myszy DataSet1, a następnie kliknij przycisk Właściwości zestawów danych.
Kliknij przycisk Filtry.Filtr, który został dodany do już istnieje DayoftheWeek z Lekcja 1.
W Wyrażenie, z rozwijanej-niedziałający listy, sprawdź wartość [Weekday].
Zmiana Operator od znaku równości (=) W.
W Wartość, type [@DayoftheWeek.Label].
Określ etykietę parametru, aby nazwa dnia tygodnia była porównywana z polem etykiety, a nie liczbowym polem dnia tygodnia.
Click OK.
Do porównywania wartości pole dzień roboczy z etykietą parametru teraz ustawiono filtr w tabela DayoftheWeek za pomocą In operator. Po wybraniu wielu wartości dla parametru raportu filtru spowoduje przetestowanie każdego wiersza tabela, aby sprawdzić, czy pole dzień roboczy znajduje się w DayoftheWeek Kolekcja.
Kliknij przycisk Uruchamianie , aby wyświetlić podgląd raportu.Raport zawiera parametr raportu DaysoftheWeek z wartościami domyślnymi Sobota and Niedziela, czyli etykiet dla wartości domyślnych, określonych przez użytkownika.Użyj listy rozwijanej, aby wybrać wiele wartości dla DayoftheWeek parametr.
Next Steps
Pomyślnie zmieniono właściwości jednowartościowego parametru raportu, dzięki czemu jest on teraz parametrem wielowartościowym.Wprowadzono wymagane zmiany w zapytaniu, filtrze i wyrażeniu, aby używały kolekcji parametrów wielowartościowych.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.Zobacz Lekcja 4: Dodawanie kaskadowy parametry (Konstruktora raportów 2.0).