Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Personalize exibições em aplicativos controlados por modelos programaticamente para controlar quais usuários de dados recuperam e como o aplicativo o exibe. Exibições são SavedQuery registros que usam filtros específicos e configurações de exibição. Você pode criá-los no código ou defini-los como XML e importá-los com uma solução não gerenciada.
Um SavedQuery modo de exibição é diferente de um UserQuery. Uma consulta de usuário, chamada de exibição Salva em aplicativos controlados por modelos, pertence a um usuário individual, pode ser atribuída e compartilhada com outros usuários e pode ser exibida por outros usuários, dependendo dos privilégios de acesso da consulta. Esse tipo de exibição é apropriado para consultas usadas com frequência que abrangem tipos de tabela e consultas que executam agregação. Para obter mais informações, consulte consultas salvas.
Você também pode usar a ferramenta de personalização para personalizar exibições. Para obter mais informações, consulte Criar e editar exibições.
Tipos de visões
A tabela a seguir lista os cinco tipos de exibições que você pode personalizar. O código de tipo de uma exibição é armazenado no SavedQuery.QueryType parâmetro.
Quando você define exibições para uma tabela específica, o SavedQuery.ReturnedTypeCode parâmetro retorna o nome lógico da tabela.
| Tipo de exibição | Código de Tipo | Description |
|---|---|---|
| Public | 0 |
-
Ocorrência: Muitas - Ações: Criar, atualizar, excluir - Comentários: defina uma dessas exibições como o modo de exibição público padrão definindo SavedQuery.IsDefault como true. |
| Localização Avançada | 1 |
-
Ocorrência: 1 - Ações: somente atualizar. - Comentários: por padrão, essa exibição aparece quando os resultados são mostrados em Localização avançada. |
| Associada | 2 |
-
Ocorrência: 1 - Ações: somente atualizar, - Comentários: por padrão, esta exibição aparece quando uma grade de registros relacionados é exibida no painel de navegação de um registro. |
| Localização Rápida | 4 |
-
Ocorrência: 1 - Ações: somente atualizar. - Comentários: essa exibição define as colunas pesquisadas quando um usuário pesquisa registros usando a coluna de pesquisa em um modo de exibição de lista. |
| Pesquisar | 64 |
-
Ocorrência: 1 - Ações: somente atualizar. - Comentários: Essa é a exibição padrão usada para pesquisar um registro quando nenhuma outra exibição está configurada para a coluna de pesquisa. |
Gerenciar exibições como componentes da solução
Exibições são componentes da solução. Ao criar, atualizar ou excluir componentes da solução, você aplica a alteração à solução que os contém. Se você não especificar explicitamente uma solução, as alterações serão definidas como a solução preferencial de quem executa seu código. Se essa pessoa não tiver uma solução preferencial, as alterações vão para uma das soluções padrão.
Como desenvolvedor, use o SolutionUniqueName parâmetro opcional para associar explicitamente essas alterações de dados a uma solução não gerenciada específica.
Criar visualizações
Para criar uma exibição pública, especifique as seguintes propriedades SavedQuery :
| Property | Description |
|---|---|
Name |
Um identificador exclusivo para a consulta salva. |
ReturnedTypeCode |
Corresponde ao nome lógico da tabela. |
FetchXml |
Edite os critérios de filtro ou configure a classificação. Consulte os dados de consulta usando FetchXml. |
LayoutXml |
Consulte o layoutxml elemento no esquema de arquivo de soluções de personalização para os elementos válidos. |
QueryType |
Deve ser sempre zero (0). |
O exemplo a seguir cria uma nova exibição pública para a tabela Oportunidade:
Este exemplo usa o método IOrganizationService.Execute com a classe CreateRequest e o SolutionUniqueName parâmetro opcional.
System.String layoutXml =
@"<grid name='resultset' object='3' jump='name' select='1'
preview='1' icon='1'>
<row name='result' id='opportunityid'>
<cell name='name' width='150' />
<cell name='customerid' width='150' />
<cell name='estimatedclosedate' width='150' />
<cell name='estimatedvalue' width='150' />
<cell name='closeprobability' width='150' />
<cell name='opportunityratingcode' width='150' />
<cell name='opportunitycustomeridcontactcontactid.emailaddress1'
width='150' disableSorting='1' />
</row>
</grid>";
System.String fetchXml =
@"<fetch>
<entity name='opportunity'>
<order attribute='estimatedvalue' descending='false' />
<filter type='and'>
<condition attribute='statecode' operator='eq'
value='0' />
</filter>
<attribute name='name' />
<attribute name='estimatedvalue' />
<attribute name='estimatedclosedate' />
<attribute name='customerid' />
<attribute name='opportunityratingcode' />
<attribute name='closeprobability' />
<link-entity alias='opportunitycustomeridcontactcontactid'
name='contact' from='contactid' to='customerid'
link-type='outer' visible='false'>
<attribute name='emailaddress1' />
</link-entity>
<attribute name='opportunityid' />
</entity>
</fetch>";
var sq = new SavedQuery
{
Name = "A New Custom Public View",
Description = "A Saved Query created in code",
ReturnedTypeCode = "opportunity",
FetchXml = fetchXml,
LayoutXml = layoutXml,
QueryType = 0
};
var request = new CreateRequest
{
Target = sq
};
request["SolutionUniqueName"] = "< Your Solution Unique Name >";
var response = (CreateResponse)service.Execute(request);
_customViewId = response.id;
Console.WriteLine("A new view with the name {0} was created.", sq.Name);
Atualizar exibições
Se a IsCustomizable propriedade gerenciada permitir que o modo de exibição seja atualizado, use a mensagem de classe UpdateRequest para atualizar a exibição. Sempre atualize exibições no contexto de uma solução. Use o SolutionUniqueName parâmetro opcional para associar a alteração a uma exibição a uma solução.
Para obter um exemplo de atualização, consulte Desativar exibições
Excluir visualizações
Você só deve excluir as consultas salvas que você criou. Um componente de solução ou parte do aplicativo pode depender de uma consulta salva específica. Se houver consultas que você não deseja que apareçam no aplicativo, desative-as. Sempre exclua exibições no contexto de uma solução. Use o SolutionUniqueName parâmetro opcional para associar a exclusão de uma exibição a uma solução.
Recuperar exibições
Os exemplos a seguir recuperam todas as exibições públicas da tabela Oportunidade:
Este exemplo usa uma classe RetrieveMultipleRequest com o método IOrganizationService.Execute para recuperar registros de consulta salvos.
var mySavedQuery = new QueryExpression
{
ColumnSet = new ColumnSet(
"savedqueryid",
"name",
"querytype",
"isdefault",
"returnedtypecode",
"isquickfindquery"),
EntityName = SavedQuery.EntityLogicalName,
Criteria = new FilterExpression
{
Conditions =
{
new ConditionExpression
{
AttributeName = "querytype",
Operator = ConditionOperator.Equal,
Values = { 0 }
},
new ConditionExpression
{
AttributeName = "returnedtypecode",
Operator = ConditionOperator.Equal,
Values = { Opportunity.EntityTypeCode }
}
}
}
};
RetrieveMultipleRequest retrieveSavedQueriesRequest = new RetrieveMultipleRequest { Query = mySavedQuery };
RetrieveMultipleResponse retrieveSavedQueriesResponse =
(RetrieveMultipleResponse)service.Execute(retrieveSavedQueriesRequest);
DataCollection<Entity> savedQueries = retrieveSavedQueriesResponse.EntityCollection.Entities;
// Display the retrieved views
foreach (Entity ent in savedQueries)
{
SavedQuery rsq = (SavedQuery)ent;
Console.WriteLine(
"{0} : {1} : {2} : {3} : {4} : {5},",
rsq.SavedQueryId,
rsq.Name,
rsq.QueryType,
rsq.IsDefault,
rsq.ReturnedTypeCode,
rsq.IsQuickFindQuery);
}
Desativar exibições
Se você não quiser que uma exibição pública apareça no aplicativo, desative-a. Não é possível desativar uma exibição pública definida como o modo de exibição padrão.
A desativação é uma operação de atualização. Sempre atualize exibições no contexto de uma solução. Use o SolutionUniqueName parâmetro opcional para associar a alteração a uma exibição a uma solução.
O exemplo a seguir desativa as Oportunidades Fechadas no modo de exibição Ano Fiscal Atual para a tabela Oportunidade:
Este exemplo usa o método IOrganizationService.Execute com a classe UpdateRequest e o SolutionUniqueName parâmetro opcional.
System.String SavedQueryName = "Closed Opportunities in Current Fiscal Year";
QueryExpression ClosedOpportunitiesViewQuery = new QueryExpression
{
ColumnSet = new ColumnSet("savedqueryid", "statecode", "statuscode"),
EntityName = SavedQuery.EntityLogicalName,
Criteria = new FilterExpression
{
Conditions =
{
new ConditionExpression
{
AttributeName = "querytype",
Operator = ConditionOperator.Equal,
Values = { 0 }
},
new ConditionExpression
{
AttributeName = "returnedtypecode",
Operator = ConditionOperator.Equal,
Values = { Opportunity.EntityTypeCode }
},
new ConditionExpression
{
AttributeName = "name",
Operator = ConditionOperator.Equal,
Values = { SavedQueryName }
}
}
}
};
RetrieveMultipleRequest retrieveOpportuntiesViewRequest = new RetrieveMultipleRequest
{
Query = ClosedOpportunitiesViewQuery
};
RetrieveMultipleResponse retrieveOpportuntiesViewResponse =
(RetrieveMultipleResponse)service.Execute(retrieveOpportuntiesViewRequest);
SavedQuery OpportunityView =
(SavedQuery)retrieveOpportuntiesViewResponse.EntityCollection.Entities[0];
var updateRequest = new UpdateRequest
{
Target = new SavedQuery
{
Id = OpportunityView.Id,
StateCode = new OptionSetValue(1), // Inactive
StatusCode = new OptionSetValue(2) // Inactive
}
};
updateRequest["SolutionUniqueName"] = "< Your Solution Unique Name >";
service.Execute(updateRequest);
Note
O estado de exibição: active ou inactive não está incluído no modo de exibição quando você o adiciona a uma solução. Portanto, quando você importa a solução para uma organização de destino, o status é definido como ativo por padrão.
Editar colunas
Você pode selecionar colunas a serem exibidas em exibições da tabela ou tabelas relacionadas.
Para obter mais informações sobre como especificar as colunas a serem exibidas, consulte o elemento layoutxml no Esquema de arquivo de soluções de personalização.
Adicionar ícones personalizados e dicas de ferramenta para exibir colunas
Você pode adicionar um ícone personalizado com o texto da dica de ferramenta a ser exibido em uma coluna, dependendo do valor da coluna. Você também pode especificar o texto da dica de ferramenta localizado. Adicione os ícones personalizados como recursos da Web de imagem em sua instância e, em seguida, use um recurso Web JavaScript para adicionar código JavaScript para uma coluna para exibir os ícones, dependendo do valor da coluna.
Note
Você pode adicionar ícones personalizados com dicas de ferramenta apenas para grades somente leitura. Esse recurso não tem suporte para grades editáveis. Para obter mais informações sobre grades editáveis, consulte Usar grades editáveis.
Dois novos parâmetros imageproviderwebresource e imageproviderfunctionname. são adicionados ao cell elemento do layoutxml de savedquery. Esses parâmetros permitem especificar o nome de um recurso da Web e um nome de função JavaScript para exibir ícones personalizados e texto de dica de ferramenta para uma coluna.
O código JavaScript é executado quando a página é carregada.
Você também pode usar o novo Recurso da Web e o Nome da Função na página Propriedades da Coluna ao modificar a propriedade de uma coluna em uma definição de exibição para especificar o nome do recurso da Web e o nome da função JavaScript.
O código de exemplo a seguir demonstra como você pode especificar programaticamente um recurso da Web e um nome de função JavaScript para adicionar ícones personalizados e dicas de ferramenta para a opportunityratingcode coluna em layoutxml:
<grid name='resultset' object='3' jump='name' select='1'
preview='1' icon='1'>
<row name='result' id='opportunityid'>
<cell name='name' width='150' />
<cell name='customerid' width='150' />
<cell name='estimatedclosedate' width='150' />
<cell name='estimatedvalue' width='150' />
<cell name='closeprobability' width='150' />
<cell name='opportunityratingcode' width='150'
imageproviderwebresource='new_SampleWebResource'
imageproviderfunctionname='displayIconTooltip' />
<cell name='opportunitycustomeridcontactcontactid.emailaddress1'
width='150' disableSorting='1' />
</row>
</grid>
A função JavaScript para exibir ícones personalizados e texto de dica de ferramenta espera os dois argumentos a seguir: o objeto de linha inteiro especificado em layoutxml e a ID de Localidade (LCID) do usuário de chamada. O parâmetro LCID permite que você especifique o texto de dica de ferramenta para o ícone em vários idiomas. Para obter mais informações sobre os idiomas com suporte, consulte opções regionais e de idioma para seu ambiente. Para obter uma lista de valores de ID de localidade (LCID) que você pode usar no seu código, consulte IDs de localidade atribuídas pela Microsoft.
Supondo que você adicione ícones personalizados para um tipo de coluna de escolha porque ela tem um conjunto limitado de opções predefinidas, use o valor inteiro das opções em vez do rótulo para evitar a quebra do código devido a alterações na cadeia de caracteres de rótulo localizada. Em sua função JavaScript, especifique apenas o nome de um recurso da Web de imagem que você deseja usar como um ícone para um valor na coluna. A imagem deve ter 16 x 16 pixels. Imagens maiores são automaticamente dimensionadas para 16 x 16 pixels.
O código de exemplo a seguir exibe diferentes ícones e texto de dica de ferramenta com base em um dos valores (1: Quente, 2: Quente, 3: Frio) na opportunityratingcode (Rating) coluna. O código de exemplo também mostra como exibir texto de dica de ferramenta localizado. Para que este exemplo funcione, você deve criar três recursos da Web de imagem cada um com imagens 16x16 (
e ![]()
) em sua instância com os seguintes nomes, respectivamente: new_Hot, new_Warme new_Cold.
function displayIconTooltip(rowData, userLCID) {
var str = JSON.parse(rowData);
var coldata = str.opportunityratingcode_Value;
var imgName = "";
var tooltip = "";
switch (parseInt(coldata, 10)) {
case 1:
imgName = "new_Hot";
switch (userLCID) {
case 1036:
tooltip = "French: Opportunity is Hot";
break;
default:
tooltip = "Opportunity is Hot";
break;
}
break;
case 2:
imgName = "new_Warm";
switch (userLCID) {
case 1036:
tooltip = "French: Opportunity is Warm";
break;
default:
tooltip = "Opportunity is Warm";
break;
}
break;
case 3:
imgName = "new_Cold";
switch (userLCID) {
case 1036:
tooltip = "French: Opportunity is Cold";
break;
default:
tooltip = "Opportunity is Cold";
break;
}
break;
default:
imgName = "";
tooltip = "";
break;
}
var resultarray = [imgName, tooltip];
return resultarray;
}
Isso resulta na exibição dos valores na coluna Rating com ícones apropriados dependendo do valor e do texto da dica de ferramenta do ícone quando você passa o mouse sobre os ícones.
Definir uma exibição pública como o modo de exibição padrão
Você pode definir apenas uma exibição pública ativa como o modo de exibição padrão. Para tornar uma exibição a exibição padrão, defina a IsDefault propriedade como true.
Ferramentas da comunidade
Há várias ferramentas da comunidade que usam essas APIs para gerenciar exibições:
- Replicador de layout de exibição XrmToolBox
- Renomeador de exibição XrmToolBox
- Ferramenta de Transferência de Exibição XrmToolBox
- Copiador de layout do Modo de Exibição do Power Platform ToolBox
Note
Essas ferramentas de comunidade não são um produto do Dataverse e Microsoft não oferece suporte para as ferramentas da comunidade. Se você tiver dúvidas sobre uma ferramenta, entre em contato com o editor. Mais informações: ferramentas da comunidade