Personalizzare visualizzazioni entità
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Le visualizzazioni delle entità sono query salvate speciali che recuperano i dati utilizzando un filtro specifico. Contengono anche informazioni sui come devono essere visualizzati i dati della visualizzazione nell'applicazione. Le visualizzazioni delle entità sono record SavedQuery che possono essere creati a livello di programmazione. È inoltre possibile definirle come XML e importarle in Microsoft Dynamics 365 con una soluzione non gestita.
Una visualizzazione di entità è differente rispetto a una UserQuery. Una query utente, chiamata visualizzazione salvata nell'applicazione, è di proprietà di un singolo utente, può essere assegnata e condivisa con altri utenti e può essere visualizzata da altri utenti a seconda dei privilegi di accesso della query. Ciò è appropriato per query utilizzate frequentemente che interessano tipi di entità e query che eseguono aggregazioni.Ulteriori informazioni:Entità UserQuery (visualizzazione salvata)
Puoi inoltre utilizzare lo strumento di personalizzazione in Dynamics 365 per personalizzare le visualizzazioni.Ulteriori informazioni:TechNet: Creare e modificare le visualizzazioni
In questo argomento
Tipi di visualizzazioni
Visualizzare le attività
Creare visualizzazioni
Aggiornare le visualizzazioni
Eliminare le visualizzazioni
Recuperare le visualizzazioni
Disattivare le visualizzazioni
Modificare i criteri di filtro o configurare l'ordinamento
Modificare le colonne
Aggiungere le icone personalizzate con descrizione comando per una colonna
Imposta come predefinito
Tipi di visualizzazioni
Nella tabella seguente sono elencati i cinque tipi di visualizzazioni che sono supportati per la personalizzazione. Il codice del tipo di una visualizzazione è archiviato nell'attributo SavedQuery.QueryType. Si noti che sono presenti altri valori validi per l'attributo QueryType non elencati qui perché l'entità viene utilizzata anche per archiviare i filtri e i modelli di Microsoft Office Outlook. Per ulteriori informazioni, vedere Filtri e modelli offline e di Outlook.
Quando le visualizzazioni sono definite per un'entità specifica, l'attributo SavedQuery.ReturnedTypeCode restituisce il nome logico dell'entità.
Tipo di visualizzazione |
Codice tipo |
Descrizione |
---|---|---|
Pubblico |
0 |
|
Ricerca avanzata |
1 |
|
Associata |
2 |
|
Ricerca rapida |
4 |
|
Ricerca |
64 |
|
Visualizzare le attività
Poiché le visualizzazioni sono record SavedQuery, è possibile crearle, aggiornarle, recuperarle, eliminarle e disattivarle. È possibile inoltre modificare i criteri di filtro o configurare l'ordinamento, modificare le colonne o impostare una visualizzazione come visualizzazione predefinita.
Creare visualizzazioni
Per creare una visualizzazione pubblica, specificare le proprietà seguenti:
SavedQuery.Name: Un identificatore univoco per la query salvata.
SavedQuery.ReturnedTypeCode: Corrisponde al nome logico dell'entità.
SavedQuery.FetchXml: Vedere Utilizzare FetchXML per costruire una query.
SavedQuery.LayoutXml: Vedere <layoutxml> (SavedQuery) per gli elementi validi.
SavedQuery.QueryType: Deve essere sempre zero (0).
Il seguente esempio creare una nuova visualizzazione pubblica per l'entità opportunità:
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 version='1.0' output-format='xml-platform'
mapping='logical' distinct='false'>
<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>";
SavedQuery sq = new SavedQuery
{
Name = "A New Custom Public View",
Description = "A Saved Query created in code",
ReturnedTypeCode = "opportunity",
FetchXml = fetchXml,
LayoutXml = layoutXml,
QueryType = 0
};
_customViewId = _serviceProxy.Create(sq);
Console.WriteLine("A new view with the name {0} was created.", sq.Name);
Aggiornare le visualizzazioni
Se la proprietà gestita SavedQuery.IsCustomizable consente di aggiornare la visualizzazione, è possibile utilizzare il metodo IOrganizationService.Update o il messaggio UpdateRequest per aggiornare la visualizzazione.
Eliminare le visualizzazioni
È consigliabile eliminare solo le query salvate che sono state create dall'utente. Un componente di soluzione o una parte dell'applicazione può dipendere da una query salvata specifica. Se esistono query che non si desidera visualizzare nell'applicazione, è consigliabile disattivarle.
Recuperare le visualizzazioni
Utilizzare RetrieveMultipleRequest o IOrganizationService.RetrieveMultiple per recuperare i record della query salvate.
Il seguente esempio recupera tutte le visualizzazioni pubbliche per l'entità opportunità:
QueryExpression 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)_serviceProxy.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);
}
Disattivare le visualizzazioni
Se non si desidera visualizzare una visualizzazione pubblica nell'applicazione, è possibile disattivarla. Non è possibile disattivare una visualizzazione pubblica impostata come visualizzazione predefinita. Il seguente esempio disattiva la visualizzazione Opportunità chiuse anno fiscale corrente per l'entità Opportunità:
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)_serviceProxy.Execute(retrieveOpportuntiesViewRequest);
SavedQuery OpportunityView = (SavedQuery)retrieveOpportuntiesViewResponse.EntityCollection.Entities[0];
_viewOriginalState = (SavedQueryState)OpportunityView.StateCode;
_viewOriginalStatus = OpportunityView.StatusCode;
SetStateRequest ssreq = new SetStateRequest
{
EntityMoniker = new EntityReference(SavedQuery.EntityLogicalName, (Guid)OpportunityView.SavedQueryId),
State = new OptionSetValue((int)SavedQueryState.Inactive),
Status = new OptionSetValue(2)
};
_serviceProxy.Execute(ssreq);
Modificare i criteri di filtro o configurare l'ordinamento
Per modificare il filtro o modificare le modalità di ordinamento dei dati, è necessario impostare l'attributo SavedQuery.FetchXml. Per ulteriori informazioni, vedere Creare query con FetchXML.
Suggerimento
Se non si ha familiarità con FetchXML, i messaggi seguenti possono essere utilizzati per convertire tra QueryExpression e FetchXML:QueryExpressionToFetchXmlRequest e FetchXmlToQueryExpressionRequest.
Modificare le colonne
Le colonne che si desidera visualizzare nelle visualizzazioni possono essere prese dalle entità o dalle entità correlate. Per ulteriori informazioni su come specificare le colonne da visualizzare, vedere <layoutxml> (SavedQuery).
Aggiungere le icone personalizzate con descrizione comando per una colonna
Puoi aggiungere un'icona personalizzata con il testo di descrizione comando da visualizzare in una colonna in base al valore della colonna; puoi inoltre specificare il testo localizzato della descrizione comando. Questa operazione può essere eseguita mediante l'aggiunta di icone personalizzate come risorse Web di immagine nell'istanza di Dynamics 365 e quindi tramite l'uso di una risorsa Web JavaScript per aggiungere codice JavaScript per permettere a una colonna di visualizzare le icone in base al valore della colonna.
Nota
Questa funzione è stata introdotta in Aggiornamento di dicembre 2016 per Dynamics 365 (online e locale). L'aggiunta di icone personalizzati con descrizione comando è supportata esclusivamente per le griglie in sola lettura. Questa funzionalità non è supportata per le griglie modificabili. Per ulteriori informazioni sulle griglie modificabili, vedi Utilizzare le griglie modificabili in Dynamics 365.
Due nuovi attributi, imageproviderwebresource e imageproviderfunctionname, vengono aggiunti a layoutxml della query salvata (vedi <cell> (SavedQuery) che ti consente di specificare il nome di una risorsa Web e un nome di funzione JavaScript per visualizzare le icone personalizzate e il testo della descrizione comando per una colonna. Il codice JavaScript viene eseguito quando la pagina viene caricata.
Puoi inoltre utilizzare i nuovi campi Risorsa Web e Nome funzione nella pagina Proprietà colonna quando modifichi la proprietà di un attributo (colonna) in una definizione di visualizzazione nel client Web Dynamics 365 per specificare il nome della risorsa Web e il nome della funzione JavaScript.
Nel seguente esempio di codice viene illustrato come puoi specificare a livello di programmazione una risorsa Web e un nome di funzione JavaScript per l'aggiunta delle icone personalizzate e della descrizione comando per la colonna opportunityratingcode in layoutxml:
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' imageproviderwebresource='new_SampleWebResource'
imageproviderfunctionname='displayIconTooltip' />
<cell name='opportunitycustomeridcontactcontactid.emailaddress1'
width='150' disableSorting='1' />
</row>
</grid>";
La funzione JavaScript per visualizzare le icone personalizzate e il testo delle descrizioni richiede i due argomenti seguenti: l'intero oggetto riga specificato in layoutxml e l'ID delle impostazioni locali dell'utente chiamante (LCID). Il parametro LCID ti consente di specificare il testo della descrizione per l'icona in più lingue. Per ulteriori informazioni sulle lingue supportate da CRM, vedi Abilitare le lingue e Installare o aggiornare i Language Pack per Microsoft Dynamics 365. Per un elenco dei valori di ID delle impostazioni locali (LCID) utilizzabili nel codice, vedi ID impostazioni locali assegnati da Microsoft.
Presupponendo che probabilmente vuoi aggiungere icone personalizzate per un tipo set di opzioni di attributo, con un set limitato di opzioni predefinite, assicurarti di utilizzare il valore intero delle opzioni invece dell'etichetta per evitare l'interruzione del codice a causa delle modifiche nella stringa di etichetta localizzata. Inoltre, nella funzione JavaScript, specifica solo il nome di una risorsa Web di immagine che vuoi utilizzare come icona per un valore nell'attributo. Le dimensioni dell'immagine devono essere 16x16 pixel; le immagini più grandi verranno automaticamente ridotte in proporzione alle dimensioni di 16x16 pixel.
Il seguente codice di esempio visualizza diverse icone e il testo della descrizione comando in base a uno dei valori (1: Hot, 2: Warm, 3: Cold) dell'attributo opportunityratingcode (Rating). Il codice di esempio illustra anche come visualizzare il testo localizzato delle descrizione. Per questo esempio, devi creare tre risorse Web con immagini 16x16 (, e ) nella tua istanza Dynamics 365 rispettivamente con i nomi seguenti: new_Hot, new_Warm e new_Cold.
function displayIconTooltip(rowData, userLCID) {
var str = JSON.parse(rowData);
var coldata = str.opportunityratingcode_Value;
var imgName = "";
var tooltip = "";
switch (coldata) {
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;
}
Ciò provoca la visualizzazione dei valori nella colonna Rating con le icone appropriate in base al valore e il testo della descrizione dell'icona quando passi il mouse sopra le icone.
Imposta come predefinito
È possibile impostare come visualizzazione predefinita solo una visualizzazione pubblica. Per rendere una visualizzazione la visualizzazione predefinita, impostare la proprietà IsDefault su true.
Vedere anche
Esempio: Utilizzare le visualizzazioni
Metodi e messaggi dell'entità SavedQuery (visualizzazione)
Saved query XML reference
Creare query con FetchXML
Utilizzare il servizio Organizzazione con i metadati di Dynamics 365
Personalizzare moduli di entità
Personalizzare set di opzioni globali
Personalizzare le applicazioni di Microsoft Dynamics 365
Microsoft Dynamics 365
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright