Filtrar um relatório usando parâmetros de cadeia de consulta no URLFilter a report using query string parameters in the URL

Quando abrir um relatório no serviço Power BI, cada página do relatório tem um URL exclusivo.When you open a report in Power BI service, each page of the report has its own unique URL. Para filtrar essa página de relatório, pode utilizar o painel Filtros na tela de relatório.To filter that report page, you could use the Filters pane on the report canvas. Também pode adicionar parâmetros de cadeia de consulta ao URL para pré-filtrar o relatório.Or you could add query string parameters to the URL to pre-filter the report. Pode ter um relatório que pretenda mostrar aos colegas e pré-preenchê-lo para os mesmos.Perhaps you have a report you'd like to show colleagues and you want to pre-filter it for them. Uma forma de filtrar é começar pelo URL predefinido do relatório, adicionar os parâmetros do filtro ao URL e, em seguida, enviar-lhes todo o novo URL por e-mail.One way to filter it is to start with the default URL for the report, add the filter parameters to the URL, and then email them the entire new URL.

relatório do Power BI no serviço

Utilizações dos parâmetros de cadeia de consultaUses for query string parameters

Imagine que está a trabalhar no Power BI Desktop.Say you're working in Power BI Desktop. Pretende criar um relatório com ligações para outros relatórios do Power BI, mas apenas quer mostrar algumas das informações nos outros relatórios.You want to create a report that has links to other Power BI reports, but you want to show only some of the information in the other reports. Em primeiro lugar, filtre os relatórios através de parâmetros de cadeia de consulta e guarde os URLs.First, filter the reports using query string parameters and save the URLs. A seguir, crie uma tabela no Power BI Desktop com os novos URLs do relatório.Next, create a table in Desktop with these new report URLs. Em seguida, publique e partilhe o relatório.Then publish and share the report.

Outra utilização dos parâmetros de cadeia de consulta é a criação de uma solução avançada do Power BI.Another use for query string parameters is for someone creating an advanced Power BI solution. Ao utilizar o DAX, é criado um relatório que gera um URL de relatório filtrado que muda de forma dinâmica com base na seleção que o respetivo cliente fizer no relatório atual.Using DAX, they create a report that generates a filtered report URL dynamically based on the selection their customer makes in the current report. Quando os clientes selecionam o URL, eles veem apenas as informações pretendidas.When customers select the URL, they see only the intended information.

Sintaxe de parâmetros de cadeia de consulta para filtragemQuery string parameter syntax for filtering

Com os parâmetros, pode filtrar o relatório para um ou mais valores, mesmo que estes contenham espaços ou carateres especiais.With parameters, you can filter the report for one or more values, even if those values contain spaces or special characters. A sintaxe básica é relativamente simples. Comece pelo URL do relatório, adicione um ponto de interrogação e, em seguida, adicione a sua sintaxe de filtro.The basic syntax is fairly straightforward; start with the report URL, add a question mark, and then add your filter syntax.

URL?filter=Tabela/Campo eq 'valor'URL?filter=Table/Field eq 'value'

URL com um filtro

  • Os nomes de Tabela e Campo são sensíveis a maiúsculas e minúsculas, ao contrário de valor.Table and Field names are case-sensitive, value isn't.
  • Os campos que são ocultados da vista de relatórios também podem ser filtrados.Fields that are hidden from report view can still be filtered.

Relatórios nas aplicaçõesReports in apps

Se pretender adicionar um filtro de URL a um relatório numa aplicação, a formatação é um pouco diferente.If you want to add a URL filter to a report in an app, the formatting is a little different. As ligações para relatórios numa aplicação têm um parâmetro de consulta (ctid) que é adicionado ao URL.Links to reports in an app have a query parameter (ctid) that gets added to the URL. Separe os parâmetros de consulta com um "e" comercial (&).Separate the query parameters with an ampersand (&). Mantenha "?filter =" e mova o parâmetro ctid para o final do URL, precedido por um "e" comercial (&).Keep “?filter=” and move the ctid parameter to the end of the URL, preceded by an ampersand (&).

Tal como este exemplo:Like this example:

app.powerbi.com/groups/me/apps/app-id/reports/report-id/ReportSection?filter=Table/Field eq 'value&'ctid=ctidapp.powerbi.com/groups/me/apps/app-id/reports/report-id/ReportSection?filter=Table/Field eq 'value&'ctid=ctid

Tipos de campoField types

O tipo de campo pode ser um número, um valor datetime ou uma cadeia e o tipo utilizado tem de corresponder ao que foi definido no conjunto de dados.Field type can be a number, datetime, or string and the type used must match the type set in the dataset. Por exemplo, especificar a coluna de tabela do tipo "cadeia" não irá funcionar se estiver à procura de um valor datetime ou numérico numa coluna do conjunto de dados definida como uma data, como Tabela/ColunaDeCadeia eq 1.For example, specifying a table column of type "string" won't work if you're looking for a datetime or numeric value in a dataset column set as a date, such as Table/StringColumn eq 1.

  • As Cadeias têm de estar entre plicas, tal como em 'nome do gestor'.Strings must be enclosed with single quotes, as in 'manager name'.
  • Os números não requerem qualquer formatação especial.Numbers require no special formatting. Veja Tipos de dados numéricos neste artigo para obter mais detalhes.See Numeric data types in this article for details.
  • Datas e horas Veja Tipos de dados de data neste artigo.Dates and times See Date data types in this article.

Se estas informações forem confusas, continue a ler para obter uma explicação mais detalhada.If it's still confusing, continue reading and we'll break it down.

Filtrar num campoFilter on a field

Vamos assumir que o URL do nosso relatório é o seguinte.Let’s assume that the URL to our report is the following.

URL inicial

Na nossa visualização de mapa (acima), reparamos que temos lojas na Carolina do Norte.And we see in our map visualization (above) that we have stores in North Carolina.

Nota

Este exemplo baseia-se no exemplo de Análise de Revenda.This example is based on the Retail Analysis sample.

Para filtrar o relatório de forma a mostrar dados apenas para lojas na Carolina do Norte ("NC"), anexe o seguinte ao URL:To filter the report to show data only for stores in "NC" (North Carolina), append the URL with the following;

?filter=Store/Territory eq 'NC'?filter=Store/Territory eq 'NC'

URL com um filtro

Nota

NC é um valor armazenado no campo Territory (Território) da tabela Store (Loja).NC is a value stored in the Territory field of the Store table.

O nosso relatório está filtrado para a Carolina do Norte. Todas as visualizações na página de relatório mostram dados apenas para a Carolina do Norte.Our report is filtered for North Carolina; all the visualizations on the report page show data for only North Carolina.

Relatório filtrado para a Carolina do Norte

Filtrar em múltiplos camposFilter on multiple fields

Pode também filtrar em múltiplos campos ao adicionar mais parâmetros ao seu URL.You can also filter on multiple fields by adding additional parameters to your URL. Voltemos ao nosso parâmetro de filtro original.Let's go back to our original filter parameter.

?filter=Store/Territory eq 'NC'

Para filtrar em campos adicionais, adicione um "and" e outro campo no mesmo formato que o anterior.To filter on additional fields, add an 'and' and another field in the same format as above. Eis um exemplo.Here is an example.

?filter=Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

OperadoresOperators

O Power BI suporta vários operadores para além do operador "and".Power BI supports many operators in addition to 'and'. A tabela abaixo apresenta uma lista desses operadores, juntamente com o tipo de conteúdos que os mesmos suportam.The table below lists those operators along with the content type they support.

operadoroperator definiçãodefinition cadeiastring númeronumber DataDate ExemploExample
andand andand simyes simyes simyes produto/preço le 200 and preço gt 3,5product/price le 200 and price gt 3.5
eqeq é igual aequals simyes simyes simyes Endereço/Localidade eq 'Redmond'Address/City eq 'Redmond'
nene não é igual anot equal simyes simyes simyes Endereço/Localidade ne 'Londres'Address/City ne 'London'
gege maior ou igual agreater than or equal nãono simyes simyes produto/preço ge 10product/price ge 10
gtgt maior quegreater than nãono simyes simyes produto/preço gt 20product/price gt 20
lele menor ou igual aless than or equal nãono simyes simyes produto/preço le 100product/price le 100
ltlt menor queless than nãono simyes simyes produto/preço lt 20product/price lt 20
in**in** incluindoincluding simyes simyes simyes Estudante/Idade in (27, 29)Student/Age in (27, 29)

** Ao utilizar o operador in, os valores à direita de in podem ser uma lista separada por vírgulas entre parênteses ou uma expressão única que devolve uma coleção.** When using in, the values to the right of in can be a comma-separated list enclosed in parentheses, or a single expression that returns a collection.

Tipos de dados numéricosNumeric data types

Um filtro de URL do Power BI pode incluir números nos seguintes formatos.A Power BI URL filter can include numbers in the following formats.

Tipo de númeroNumber type ExemploExample
inteirointeger 55
longolong 5 L ou 5 l5 L or 5 l
duplodouble 5,5 ou 55e-1 ou 0,55e+1 ou 5D ou 5d ou 0,5e1D ou 0,5e1d ou 5,5D ou 5,5d ou 55e-1D ou 55e-1d5.5 or 55e-1 or 0.55e+1 or 5D or 5d or 0.5e1D or 0.5e1d or 5.5D or 5.5d or 55e-1D or 55e-1d
decimaldecimal 5 M ou 5 m ou 5,5 M ou 5,5 m5 M or 5 m or 5.5 M or 5.5 m
flutuantefloat 5 F ou 5 f ou 0,5e1 F ou 0,5e-1 d5 F or 5 f or 0.5e1 F or 0.5e-1 d

Tipos de dados de dataDate data types

O Power BI suporta o OData V3 e V4 para os tipos de dados Data e DateTimeOffset.Power BI supports both OData V3 and V4 for Date and DateTimeOffset data types. No OData V3, as datas têm de estar entre plicas e devem ser precedidas pela palavra datetime.For OData V3, dates must be enclosed in single quotes and be preceded by the word datetime. As plicas e a palavra datetime não são necessárias no OData V4.Single quotes and the word datetime aren't needed in OData V4.

As datas são representadas através do formato EDM (2019-02-12T00:00:00): Quando especifica a data como 'AAAA-MM-DD', o Power BI interpreta-a como 'AAAA-MM-DDT00:00:00'.Dates are represented using the EDM format (2019-02-12T00:00:00): When you specify a date as 'YYYY-MM-DD', Power BI interprets it as 'YYYY-MM-DDT00:00:00'. O mês e o dia devem ter apenas dois dígitos, MM e DD.Make sure month and day are two digits, MM and DD.

Por que motivo esta distinção é importante?Why does this distinction matter? Imaginemos que criou o parâmetro de cadeia de consulta Tabela/Data gt "2018-08-03" .Let's say you create a query string parameter Table/Date gt '2018-08-03'. Será que os resultados vão incluir 3 de agosto de 2018 ou começar por 4 de agosto de 2018?Will the results include August 3, 2018 or start with August 4, 2018? O Power BI converte a consulta em Tabela/Data gt '2018-08-03T00:00:00' .Power BI translates your query to Table/Date gt '2018-08-03T00:00:00'. Desta forma, os resultados incluirão todas as datas com uma parte correspondente à hora diferente de zero, uma vez que essas datas seriam maiores do que '2018-08-03T00:00:00' .So, your results include any dates that have a non-zero time part, because those dates would be greater than '2018-08-03T00:00:00'.

Há outras diferenças entre o V3 e o V4.There are other differences between V3 and V4. O OData V3 não suporta Datas, apenas DateTime.OData V3 does not support Dates, only DateTime. Portanto, se utilizar o formato V3, deverá qualificá-lo com a data/hora completa.So if you use the V3 format, you must qualify it with the full date time. Os literais de datas como “datetime'2019-05-20'” não são suportados na notação V3.Date literals like "datetime'2019-05-20'" aren't supported in V3 notation. Contudo, pode simplesmente escrevê-los como “2019-05-20” na notação V4.But you can just write it as "2019-05-20" in V4 notation. Veja a seguir duas consultas de filtros equivalentes no formato V3 e V4:Here are two equivalent filter queries in V3 and V4:

  • Formato do OData V4: filtro=Tabela/Data gt 2019-05-20OData V4 format: filter=Table/Date gt 2019-05-20
  • Formato do OData V3: filtro=Tabela/Data gt datetime'2019-05-20T00:00:00'OData V3 format: filter=Table/Date gt datetime'2019-05-20T00:00:00'

Carateres especiais em filtros de URLSpecial characters in URL filters

Os carateres especiais e espaços requerem alguma formatação adicional.Special characters and spaces require some additional formatting. Quando a sua consulta contém espaços, travessões ou outros carateres que não forem ASCII, prefixe esses carateres especiais com um código de escape que comece com um caráter de sublinhado e um X ( _x) e, em seguida, o Unicode de quatro dígitos, seguido de outro caráter de sublinhado.When your query contains spaces, dashes, or other non-ASCII characters, prefix those special characters with an escape code starting with an underscore and an X (_x), then the four-digit Unicode, then another underscore. Se o Unicode tiver menos de quatro carateres, tem de acrescentar zeros ao mesmo.If the Unicode is fewer than four characters, you need to pad it with zeroes. Eis alguns exemplos.Here are some examples.

IdentificadorIdentifier UnicodeUnicode Códigos do Power BICoding for Power BI
Nome da TabelaTable Name O espaço é 0x20Space is 0x20 Nome_x0020_TabelaTable_x0020_Name
Número@ColunaColumn@Number @ é 0x40@ is 0x40 Número_x0040_ColunaColumn_x0040_Number
[Coluna][Column] [é 0x0058] é 0x0050[ is 0x0058 ] is 0x0050 x0058_Column_x0050x0058_Column_x0050
Coluna+SinalDeAdiçãoColumn+Plus + é 0x2B+ is 0x2B Coluna_x002B_SinalDeAdiçãoColumn_x002B_Plus

Tabela_x0020_Nome/Coluna_x002B_SinalDeAdição eq 3 carateres especiais de composição de elementos visuais da tabelaTable_x0020_Name/Column_x002B_Plus eq 3 table visual rendering special characters

Tabela_x0020_Especial/x005B_Coluna_x0020_ParêntesesRetos_x005D eq '[C]' carateres especiais de composição de elementos visuais da tabelaTable_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' table visual rendering special characters

Utilizar o DAX para filtrar em múltiplos valoresUse DAX to filter on multiple values

Outra forma de filtrar em múltiplos campos é criar uma coluna calculada que concatena dois campos para um valor único.Another way to filter on multiple fields is by creating a calculated column that concatenates two fields to a single value. Depois, pode filtrar nesse valor.Then you can filter on that value.

Por exemplo, temos dois campos: Territory (Território) e Chain (Cadeia).For example, we have two fields: Territory and Chain. No Power BI Desktop, crie uma nova coluna Calculada (Campo) intitulada TerritoryChain (CadeiaTerritório).In Power BI Desktop, create a new Calculated column (Field) called TerritoryChain. Lembre-se de que o nome de Campo não pode ter espaços.Remember that the Field name can't have any spaces. Eis a fórmula DAX dessa coluna.Here is the DAX formula for that column.

TerritoryChain = [Território] & " - " & [Cadeia]TerritoryChain = [Territory] & " - " & [Chain]

Publique o relatório no serviço Power BI e, em seguida, utilize a cadeia de consulta de URL para filtrar de forma a mostrar dados apenas de lojas Lindseys no estado NC.Publish the report to Power BI service and then use the URL query string to filter to display data for only Lindseys stores in NC.

https://app.powerbi.com/groups/me/reports/8d6e300b-696f-498e-b611-41ae03366851/ReportSection3?filter=Store/TerritoryChain eq 'NC – Lindseys'

Afixar um mosaico de um relatório filtradoPin a tile from a filtered report

Após filtrar o relatório através de parâmetros de cadeia de consulta, pode afixar visualizações desse relatório ao seu dashboard.Once you've filtered the report using query string parameters, you can pin visualizations from that report to your dashboard. O mosaico no dashboard mostra os dados filtrados e selecionar esse mosaico de dashboard abre o relatório que foi utilizado para criá-lo.The tile on the dashboard displays the filtered data and selecting that dashboard tile opens the report that was used to create it. No entanto, a filtragem que fez com o URL não é guardada com o relatório.However, the filtering you did using the URL isn't saved with the report. Ao selecionar o mosaico de dashboard, o relatório é aberto no estado não filtrado.When you select the dashboard tile, the report opens in its unfiltered state. Assim, os dados apresentados no mosaico de dashboard não correspondem aos dados apresentados na visualização de relatório.Thus, the data displayed in the dashboard tile doesn't match the data displayed in the report visualization.

Esta discrepância é útil quando pretende ver resultados diferentes: filtrados no dashboard e não filtrados no relatório.This discrepancy is helpful when you want to see different results; filtered on the dashboard and unfiltered in the report.

Considerações e resolução de problemasConsiderations and troubleshooting

Existem alguns elementos a ter em conta ao utilizar os parâmetros da cadeia de consulta.There are a couple of things to be aware of when using the query string parameters.

  • Ao utilizar o operador in, os valores à direita de in têm de ser uma lista separada por vírgulas entre parênteses.When using the in operator, the values to the right of in must be a comma-separated list enclosed in parentheses.
  • No Servidor de Relatórios do Power BI, pode transmitir parâmetros de relatório ao incluí-los num URL de relatório.In Power BI Report Server, you can pass report parameters by including them in a report URL. Estes parâmetros de URL não têm prefixos porque são transmitidos diretamente ao motor de processamento de relatórios.These URL parameters aren't prefixed because they're passed directly to the report processing engine.
  • A filtragem de cadeia de consulta não funciona com Publicar na Web nem Exportar para PDF.Query string filtering doesn't work with Publish to web or Export to PDF.
  • Incorporar com peças Web de relatórios no SharePoint Online não suporta filtros de URL.Embed with report web part in SharePoint Online doesn't support URL filters.
  • O tipo de dados longo é (2^53-1) devido a limitações do Javascript.The long data type is (2^53-1) due to Javascript limitations.
  • Os filtros de URL de relatório têm um limite de 10 expressões (10 filtros ligados por AND).Report URL filters have a 10-expression limit (10 filters connected by AND).

Próximos passosNext steps

Afixar uma visualização a um dashboardPin a visualization to a dashboard
Inscrever-se numa avaliação gratuitaSign up for a free trial

Mais perguntas?More questions? Experimente perguntar à Comunidade do Power BITry asking the Power BI Community