Forbedre rapportydeevnen ved hjælp af filtre
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Rapporter, der returnerer store datasæt, kan være svære at bruge og kan medføre ydeevneproblemer. Hvis du vil begrænse de data, der vises i en rapport, skal du bruge datafiltre.
Udover at datafiltrering understøttes af Reporting Services, understøtter Microsoft Dynamics 365 forudfiltrering af data. Du kan bruge forudfiltrering af data til at:
Gøre rapporter kontekstfølsomme ved at indsnævre omfanget af en rapport, så de data, der returneres, er mere relevante.
Hente og få vist et resultatsæt hurtigere, fordi det kun er relevante data, der returneres.
Gøre det muligt at filtrere rapporten ved hjælp af funktionen Avanceret søgning.
Vigtigt
Rapportforespørgsler med hierarkiske operatorer, f.eks. operatoren Under, kan i øjeblikket ikke bruges med rapportfiltrering. Når du forsøger at køre en rapport, der bruger en hierarkisk operator, gengives rapporten ikke.
Dette emne indeholder
Aktivere forudfiltrering af data i Fetch-baserede rapporter
Aktivering af data før filtrering i SQL-baserede rapporter (kun Dynamics 365 til det lokale miljø)
Videresende filtre i filteroversigten
Standardfiltre
Aktivere forudfiltrering af data i Fetch-baserede rapporter
Fetch-baserede rapporter understøtter kun automatisk forudfiltrering af data. En rapport kan have flere datasæt og flere FetchXML-forespørgsler. Ét datasæt understøtter én FetchXML-forespørgsel. Hvis du vil aktivere forudfiltrering for det primære eller tilknyttede objekt i en Fetch-baseret rapport, skal du angive værdien af parameteren enableprefiltering til "1" og angive et parameternavn i egenskaben prefilterparametername. Parameternavnet skal starte med "CRM_" for at angive den som en skjult parameter. Som med den Microsoft SQL Server-baserede rapport, fungerer denne parameter, som angives i FetchXML-forespørgslen, som en underforespørgsel i FetchXML-forespørgslen, og underforespørgslen er konstrueret med den værdi, som brugeren har angivet i området Avanceret søgning, mens rapporten blev kørt.
I følgende eksempel vises, hvordan du aktiverer forudfiltrering for det primære objekt i FetchXML-forespørgslen.
<CommandText
<fetch distinct="false" mapping="logical">
<entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
<attribute name="name" />
<attribute name="accountid" />
</entity>
</fetch>
</CommandText>
<DataSourceName>CRM</DataSourceName>
På samme måde kan du aktivere forudfiltrering for det tilknyttede objekt. Du kan også angive en anden forudfiltreringsbetingelse for det tilknyttede objekt i FetchXML-forespørgslen ved at angive et andet, entydigt navn for parameteren i egenskaben prefilterparametername.
Hvis du redigerer en Fetch-baseret rapportdefinition manuelt uden at bruge Guiden Rapport i Microsoft Dynamics 365-webprogrammet eller SQL Server-dataværktøjer for at aktivere forudfiltrering for primære og tilknyttede objekter, skal du sørge for at:
På samme måde kan du aktivere forudfiltrering for det tilknyttede objekt. Du kan også angive en anden forudfiltreringsbetingelse for det tilknyttede objekt i FetchXML-forespørgslen ved at angive et andet, entydigt navn for parameteren i egenskaben prefilterparametername.
Hvis du redigerer en Fetch-baseret rapportdefinition manuelt uden at bruge Guiden Rapport i Microsoft Dynamics 365-webprogrammet eller SQL Server-dataværktøjer for at aktivere forudfiltrering for primære og tilknyttede objekter, skal du sørge for at:
<fetch distinct="false" mapping="logical"> <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
Oprette en tilsvarende forespørgselsparameter med samme navn, som er angivet for egenskaben prefilterparametername. Sørge for, at parameternavnet starter med CRM_ for at angive den som en skjult parameter.
<QueryParameters> <QueryParameter Name="CRM_FilteredAccount"> <Value>=Parameters!CRM_FilteredAccount.Value</Value> </QueryParameter>
Oprette en tilsvarende rapportparameter med det samme navn.
<ReportParameters> <ReportParameter Name="CRM_FilteredAccount"> <DataType>String</DataType> <Prompt>CRM Filtered Account</Prompt> </ReportParameter> </ReportParameters>
Aktivering af data før filtrering i SQL-baserede rapporter (kun Dynamics 365 til det lokale miljø)
Der er to måder, hvorpå du kan aktivere forudfiltrering af data på SQL-baserede Microsoft Dynamics 365SQL-baseret rapporter: automatisk og eksplicit.
Automatisk forudfiltrering
Automatisk forudfiltrering af data er velegnet for enkle forespørgsler. Hvis du vil aktivere automatisk data før filtrering i en rapport, kan du bruge aliaser for tabeller i forespørgsler. Du kan gøre dette ved hjælp af et aliasnavn, der begynder med CRMAF_.
Følgende tabel viser f.eks. en enkel forespørgsel, der er ændret, så forudfiltrering er aktiveret på objektet Account.
Forespørgsel uden forudfiltrering |
Ændret forespørgsel med automatisk forudfiltrering aktiveret |
|||||
---|---|---|---|---|---|---|
```sql
SELECT
Når du aktiverer funktionen til automatisk forudfiltrering af data ved hjælp af præfikset CRMAF_, ændrer Microsoft Dynamics 365 forespørgslen, så den omfatter en parameter (f.eks P1), når den overføres til Microsoft Dynamics 365, som vist i følgende tabel.
|