Entiteitweergaven aanpassen
Gepubliceerd: januari 2017
Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Entiteitsweergaven zijn speciaal opgeslagen query's die gegevens ophalen met een specifiek filter. Ze bevatten ook informatie over hoe de gegevens in de weergave in de toepassing moeten worden weergegeven. Entiteitsweergaven zijn SavedQuery records die u ook via programmeren kunt maken. U kunt ze ook definiëren als xml-bestand, en deze importeren in Microsoft Dynamics 365 met een onbeheerde oplossing.
Een entiteitsweergave verschilt van een UserQuery. Een gebruikersquery, een Opgeslagen weergave genoemd in de toepassing, is eigendom van een afzonderlijke gebruiker, kan aan andere gebruikers worden toegewezen en kan door andere gebruikers worden bekeken afhankelijk van de toegangsrechten van de query. Dit is handig voor veelgebruikte query's die verschillende entiteitstypen omvatten en query's die verzamelingen uitvoeren.Meer informatie:UserQuery (opgeslagen weergave) entiteit
U kunt weergaven ook aanpassen door middel van het aanpassinghulpprogramma in Dynamics 365.Meer informatie:TechNet: Weergaven maken en bewerken
In dit onderwerp
Typen weergaven.
Opdrachten weergeven
Weergaven maken
Weergaven bijwerken
Weergaven verwijderen
Weergaven ophaal
Deactiveer weergaven
Filtercriteria bewerken of sorteren configureren
Kolommen bewerken
Aangepaste pictogrammen met knopinfo voor een kolom toevoegen
Instellen als standaard
Typen weergaven.
De onderstaande tabel toont de vijf soorten weergaven die voor aanpassing worden ondersteund. De typecode van een weergave wordt opgeslagen in het SavedQuery.QueryType kenmerk. U ziet dat er andere geldige waarden voor het kenmerk QueryType niet hier worden vermeld doordat deze entiteit ook wordt gebruikt om de filters en de sjablonen van Microsoft Office Outlook op te slaan. Zie Offline- en Outlook-filters en -sjablonen voor meer informatie.
Als de weergaven voor een specifieke entiteit zijn gedefinieerd, geeft het SavedQuery.ReturnedTypeCode kenmerk de logische naam van de entiteit weer.
Weergavetype |
Typecode |
Beschrijving |
---|---|---|
Openbaar |
0 |
|
Geavanceerd zoeken |
1 |
|
Gekoppeld |
2 |
|
Snel zoeken |
4 |
|
Opzoeken |
64 |
|
Opdrachten weergeven
Omdat de weergaven SavedQuery-records zijn, kunt u deze maken, bijwerken, ophalen verwijderen en uitschakelen. Daarnaast kunt u filtercriteria bewerken of het sorteren configureren, kolommen bewerken of een weergave als standaardweergave instellen.
Weergaven maken
Geef om een openbare weergave te maken de volgende eigenschappen op:
SavedQuery.Name: Een unieke id voor de opgeslagen query.
SavedQuery.ReturnedTypeCode: komt overeen met de logische naam van entiteit.
SavedQuery.FetchXml: Zie FetchXML gebruiken om een query te construeren.
SavedQuery.LayoutXml: Zie <layoutxml> (SavedQuery) voor de geldige elementen.
SavedQuery.QueryType: Moet altijd nul (0) zijn.
Het volgende voorbeeld maakt u een nieuwe openbare weergave voor de entiteit verkoopkans:
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);
Weergaven bijwerken
Als de beheerde eigenschap SavedQuery.IsCustomizable u toestaat weergaven bij te werken, kunt u de IOrganizationService.Update methode of de UpdateRequest methode gebruiken om de weergave bij te werken.
Weergaven verwijderen
U moet alleen opgeslagen query's te verwijderen die u hebt gemaakt. Een oplossingsonderdeel of een deel van de toepassing kan van een specifieke opgeslagen query afhankelijk zijn. Als er query's zijn waarvan u niet wilt dat ze in de toepassing worden weergegeven, moet u moet deze deactiveren.
Weergaven ophaal
Gebruik een RetrieveMultipleRequest of IOrganizationService.RetrieveMultiple om opgeslagen queryrecords op te halen.
Het volgende voorbeeld haalt alle openbare weergaven op voor de entiteit verkoopkans:
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);
}
Deactiveer weergaven
Als u niet wilt dat een openbare weergave in de toepassing wordt weergegeven, kunt u deze deactiveren. U kunt geen openbare weergave deactiveren die als standaardweergave is ingesteld. Het volgende voorbeeld deactiveert de weergave Afgesloten verkoopkansen in het huidige fiscale jaar voor de entiteit verkoopkans:
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);
Filtercriteria bewerken of sorteren configureren
Om het filter te bewerken of de manier waarop gegevens worden gesorteerd te bewerken, moet u het kenmerk SavedQuery.FetchXml instellen. Zie Bouw query's met FetchXML voor meer informatie.
Tip
Als u niet vertrouwd bent met FetchXML kunnen de volgende berichten worden gebruikt om QueryExpression tussen en FetchXML te converteren:QueryExpressionToFetchXmlRequest en FetchXmlToQueryExpressionRequest.
Kolommen bewerken
De kolommen die u wilt weergeven in weergaven kunnen worden gehaald uit de entiteit of gerelateerde entiteiten. Voor meer informatie over het opgeven van kolommen voor weergave, zie <layoutxml> (SavedQuery).
Aangepaste pictogrammen met knopinfo voor een kolom toevoegen
U kunt een aangepast pictogram met knopinfo toevoegen, dat wordt weergegeven in een kolom, afhankelijk van de kolomwaarde; u kunt ook een vertaalde knopinfotekst opgeven. U doet dit door de aangepaste pictogrammen toe te voegen als afbeeldingswebresources in uw Dynamics 365-exemplaar en dan door middel van een JavaScript-webresource JavaScript-code toe te voegen, waardoor een kolom afhankelijk van de waarde in de kolom het pictogram zichtbaar maakt.
Notitie
Deze functie werd geïntroduceerd in de Update voor Dynamics 365 (online en on-premises) - december 2016. Het toevoegen van aangepaste pictogrammen met knopinfo wordt uitsluitend ondersteund in alleen-lezen rasters; deze functie wordt niet ondersteund voor de bewerkbare rasters. Voor meer informatie over het systeem raadpleegt u Gebruik in bewerkbare rasters Dynamics 365.
Twee nieuwe kenmerken imageproviderwebresource en imageproviderfunctionname zijn toegevoegd aan de layoutxml van savedquery (zie <cell> (SavedQuery), dat u de naam van een webresource en een JavaScript-functienaam laat opgeven voor het weergeven van aangepaste pictogrammen en knopinfoteksten voor kolommen). De JavaScript-code wordt uitgevoerd wanneer de pagina wordt geladen.
U kunt ook de nieuwe velden Webresource en Functienaam op de pagina Kolomeigenschappen gebruiken wanneer u de eigenschap van een kenmerk (kolom) in een weergavedefinitie in de Dynamics 365-webclient aanpast om de webresourcenaam en JavaScript-functienaam op te geven.
In de volgende voorbeeldcode ziet u hoe u programmatisch een webresource en een JavaScript-functienaam kunt opgeven voor het toevoegen van aangepaste pictogrammen en knopinfo voor de kolom 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>";
De JavaScript-functie voor het weergeven van aangepaste pictogrammen en knopinfotekst verwacht de volgende twee argumenten: het volledige rijobject, opgegeven in layoutxml, en de landinstelling-id van de aanroepende gebruiker (LCID). Met de LCID-parameter kunt u de knopinfotekst voor het pictogram in meerdere talen opgeven. Voor meer informatie over de talen die door CRM worden ondersteund, raadpleegt u Talen inschakelen in en Taalpakketten installeren of upgraden voor Microsoft Dynamics 365. Een lijst van LCID-waarden die u in uw code kunt gebruiken, vindt u in Id's voor landinstellingen die door Microsoft worden toegewezen.
Aannemende dat u waarschijnlijk aangepaste pictogrammen toevoegt voor een kenmerk van het type optieset (dat een beperkte set voorgedefinieerd opties heeft), moet u erop letten dat u de integerwaarde van de opties gebruikt in plaats van het label. Anders wordt de code verbroken als de vertaalde labeltekenreeks wordt gewijzigd. Geef daarnaast in de JavaScript-functie in het kenmerk alleen de naam op van een afbeeldingswebresource die u wilt gebruiken als pictogram. De afbeelding moet 16 x 16 pixels groot zijn; grotere afbeeldingen worden automatisch verkleind tot 16 x 16 pixels.
In de volgende voorbeeldcode ziet verschillende pictogrammen en knopinfoteksten gebaseerd op één van de waarden (1: Hot, 2: Warm, 3: Cold) in het kenmerk opportunityratingcode (Rating). De voorbeeldcode geeft ook aan hoe u gelokaliseerde knopinfotekst kunt weergeven. Om dit voorbeeld te laten functioneren, moet u drie afbeeldingswebresources met elk 16 x 16 afbeeldingen (,
en
) maken in uw Dynamics 365-exemplaar met de volgende namen: new_Hot, new_Warm en 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;
}
Het resultaat is dat de waarden worden weergegeven in de kolom Rating, met de bij de waarde horende pictogrammen en een knopinfotekst voor elk pictogram die verschijnt wanneer u de muisaanwijzer op een pictogram plaatst.
Instellen als standaard
Slects één actieve publieke weergave kan worden ingesteld als standaardweergave. Als u een weergave de standaardweergave wilt maken, stelt u de eigenschap IsDefault in op 'waar'.
Zie ook
Voorbeeld: Werken met weergaven
SavedQuery (weergave) entiteitberichten en methoden
Saved query XML reference
Bouw query's met FetchXML
De organisatieservice met Dynamics 365-metagegevens gebruiken
Entiteitformulieren aanpassen
Algemene optiesets aanpassen
Microsoft Dynamics 365-toepassingen aanpassen
Microsoft Dynamics 365
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht