Lesson 2: Adding Parameters to Create a List of Available Values
Dostępne wartości (prawidłowe wartości) umożliwiają dostarczenie użytkownikom listy wartości, których można użyć dla parametru raportu.Jako Autor raportu można podać prawidłowe wartości z kwerendy zaprojektowane specjalnie do pobrania to zbiór wartości ze urządzenie źródłowe danych lub można podać wstępnie zdefiniowany zestaw wartości.Przez wiązanie zestaw wartości dostępne do kwerendy zestaw danych, w której jest uruchamiany, gdy raport jest przetwarzana, należy upewnić się, że tylko wartości, które istnieją w bazie danych można wybrać z rozwijanej-niedziałający listy.
W tej lekcji użytkownik zmodyfikuje raportu zamówienia sprzedaży do przedstawienia upuszczania-niedziałający listę nazw dostępnych sprzedawcy z AdventureWorks2008 bazy danych.Zostanie ustawiona właściwość tabeli służąca do wyświetlania komunikatu w sytuacji, gdy w zestawie wyników nie będzie wierszy dla wybranej wartości parametru.Po wybraniu imienia i nazwiska w wyświetlonym raporcie będą widoczne tylko transakcje sprzedaży zrealizowane przez danego sprzedawcę.
Aby zamienić istniejący zestaw danych
W okienku danych raportu kliknij prawym przyciskiem myszy zestaw danych AdventureWorksDataset, a następnie kliknij przycisk Właściwości zestawów danych.
Uwaga
Jeśli nie widać okienka danych raportu z Widok menu kliknijData raportu.
W urządzenie źródłowe danych, sprawdź, czy wybrano AdventureWorks_Ref.
W Typ kwerendy, zweryfikuj, że Tekst jest zaznaczone.
Kliknij przycisk projektant kwerend przycisk, aby otworzyć Konstruktora kwerend.
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 = (@BusinessPersonID)
Jest to w tej samej kwerendy, z tą różnicą, że dodano warunek, który ogranicza zestaw wyników do jednej osoby sprzedaży:
AND soh.SalesPersonID = (@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.
@StartDate
20010101
@EndDate
20030101
@BusinessPersonID
290
Click OK.Zestaw wyników jest wyświetlana dla sprzedawcy Chudukatil Varkey Ranjit z SalesPersonID = 290.
Aby wypełnić listę prawidłowych wartości dla parametru raportu
W okienku danych raportu kliknij przycisk Nowy, a następnie kliknij przycisk Zestaw danych.The Dataset Properties dialog box opens.
W Nazwa Typ poleBusinessPersons.Ten zestaw danych zostanie użyta do wypełnienia listy prawidłowych wartości dla SalesPersonID Parametr raportu.
Sprawdź, czy urządzenie źródłowe danych jest AdventureWorks_Ref.
Wklej następujący Transact-SQL kwerendy w okienku kwerendy:
SELECT SP.BusinessEntityID, C.FirstName, C.LastName FROM Sales.SalesPerson AS SP INNER JOIN HumanResources.Employee AS E ON E.BusinessEntityID = SP.BusinessEntityID INNER JOIN Person.Person AS C ON C.BusinessEntityID = E.BusinessEntityID ORDER BY SP.BusinessEntityID
Kliknij przycisk OK dwa razy.Lista pól jest pusta dla danych BusinessPersons.Ten zestaw danych zostanie użyta do podać prawidłowe wartości dla parametru BusinessPersonID.
Można zauważyć, że zestaw danych BusinessPersons ma pola o nazwie imię i nazwisko.Następnie firma Microsoft będzie łączyć tych pól w jedno pole o nazwie Name.
Aby zdefiniować pole obliczeniowe w okienku Dane raportu
Na pasku narzędzi okienka dane wykresu, kliknij prawym przyciskiem myszy BusinessPersons zestawu danych, a następnie kliknij przycisk Dodaj pole obliczeniowe.The Fields strona of the Dataset Properties dialog box opens with a new row added to the grid.
W ciągu ostatnich Nazwa pole polu tekstowym wpisz Nazwa.
W pole źródłowe tekstu należy wkleić następujące wyrażenie:
=Fields!LastName.Value & ", " & Fields!FirstName.Value
Click OK.
W okienku danych raportu w obszarze BusinessPersons zestawu danych, nowe pole Nazwa pojawia się w kolekcja pól dla danych.
Aby wypełnić parametr raportu za pomocą listy dostępnych wartości
W okienku danych raportu rozwiń węzeł parametry, a następnie kliknij prawym przyciskiem myszy BusinessPersonID, następnie kliknij przycisk Właściwości parametru.
W Monituj, type Wybierz osobę biznesowych:.
W Typ danych, select Liczba całkowita.
Kliknij przycisk Dostępne wartości.
Wybierz Pobieranie wartości z kwerendy opcji.
Z Zestaw danych upuszczania-niedziałający zaznacz BusinessPersons.
Z Pole wartości upuszczania-niedziałający, zaznacz BusinessEntityID.
Z Etykieta pole upuszczania-niedziałający, zaznacz Nazwa.
Wybierając nazwę etykiety, listy rozwijanej listy prawidłowych wartości dla BusinessEntityID parametr będzie teraz zawierać nazwy każdego sprzedawcy, zamiast numeru sprzedawcy.
Kliknij przycisk Wartości domyślne.
Wybierz Pobieranie wartości z kwerendy opcji.
Z Zestaw danych upuszczania-niedziałający zaznacz BusinessPersons.
Z Pole wartości listę rozwijaną, wybierz opcję BusinessEntityID.
Click OK.
Kliknij przycisk Podgląd tab.W raporcie zostanie wyświetlona lista rozwijana zawierająca imiona i nazwiska pracowników firmy.
Kliknij przycisk Wyświetl raport.Wybierz inne wartości parametrów, aby przeglądać wyniki.
Next Steps
Lista dostępnych wartości parametru została pomyślnie dodana do istniejącego raportu.Następnie użytkownik zmodyfikuje DayoftheWeek i SalesPersonID Parametry, które mają być wielowartościowe. Zobacz Lesson 3: Adding Parameters to Select Multiple Values in a List.