Tilpasse objektvisninger
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Objektvisninger er særlig gemte forespørgsler, der henter data ved hjælp af et bestemt filter. De kan også indeholde oplysninger om, hvordan dataene i visningen skal vises i programmet. Objektvisninger er SavedQuery-poster, du kan oprette ved hjælp af programmering. Du kan også definere dem som XML og importere dem til Microsoft Dynamics 365 med en ikke-administreret løsning.
Et objekt er forskellig fra en UserQuery. En brugerforespørgsel, kaldet en gemt visning i programmet, ejes af en enkelt bruger, kan tildeles og deles med andre brugere og kan ses af andre brugere, afhængig af forespørgslens adgangsrettigheder. Dette er relevant for ofte anvendte forespørgsler, der spænder over objekttyper, og forespørgsler, der udfører aggregering.Flere oplysninger:UserQuery-objekt (gemt visning)
Du kan også bruge tilpasningsværktøjet i Dynamics 365 til at tilpasse visninger.Flere oplysninger:TechNet: Oprette eller redigere visninger
Dette emne indeholder
Typer af visninger
Få vist opgaver
Oprette visninger
Opdatere visninger
Slette visninger
Hente visninger
Deaktivere visninger
Redigere filterkriterierne eller konfigurere sortering
Redigere kolonner
Tilføje brugerdefinerede ikoner med værktøjstip for en kolonne
Benyt som standard
Typer af visninger
I følgende tabel vises de fem visningstyper, der understøttes for tilpasning. Typekoden for en visning er gemt i attributten SavedQuery.QueryType. Bemærk, at der er andre gyldige værdier for de QueryType-attributter, der ikke er opført her, fordi dette objekt også bruges til at gemme Microsoft Office Outlook-filtre og -skabeloner. Du kan finde flere oplysninger under Offline- og Outlook-filtre og -skabeloner.
Når visninger er defineret for et bestemt objekt, returnerer attributten SavedQuery.ReturnedTypeCode det logiske objektnavn.
Visningstype |
Typekode |
Beskrivelse |
---|---|---|
Offentligt |
0 |
|
Avanceret søgning |
1 |
|
Tilknyttet |
2 |
|
Hurtig søgning |
4 |
|
Opslag |
64 |
|
Få vist opgaver
Da visninger er SavedQuery-poster, kan du oprette, opdatere, hente, slette og deaktivere dem. Derudover kan du redigere filterkriterierne eller konfigurere sortering, redigere kolonner eller indstille en visning som standardvisning.
Oprette visninger
Hvis du vil oprette en offentlig visning, skal du angive følgende egenskaber:
SavedQuery.Name Et entydigt id for den gemte forespørgsel.
SavedQuery.ReturnedTypeCode: Matcher det logiske navn på objektet.
SavedQuery.FetchXml: Se Brug FetchXML til at oprette en forespørgsel.
SavedQuery.LayoutXml: Se <layoutxml> (SavedQuery) for gyldige elementer.
SavedQuery.QueryType: Skal altid være nul (0).
Følgende eksempel opretter en ny offentlig visning for salgsmulighedsobjektet:
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);
Opdatere visninger
Hvis den SavedQuery.IsCustomizable-administrerede egenskab tillader, at visningen skal opdateres, kan du bruge metoden IOrganizationService.Update eller meddelelsen UpdateRequest for at opdatere visningen.
Slette visninger
Du bør kun slette gemte forespørgsler, du har oprettet. En løsningskomponent eller en del af programmet kan afhænge af en bestemt gemt forespørgsel. Hvis der er forespørgsler, der ikke skal vises i programmet, skal du deaktivere dem.
Hente visninger
Brug en RetrieveMultipleRequest eller IOrganizationService.RetrieveMultiple til at hente gemte forespørgselsposter.
Følgende eksempel henter alle de offentlige visninger for salgsmulighedsobjektet:
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);
}
Deaktivere visninger
Hvis du ikke ønsker, at en offentlig visning skal vises i programmet, kan du deaktivere den. Du kan ikke deaktivere en offentlig visning, der er angivet som standardvisning. Følgende eksempel deaktiverer visningen Afsluttede salgsmuligheder i indeværende regnskabsår for salgsmulighedsobjektet:
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);
Redigere filterkriterierne eller konfigurere sortering
Hvis du vil redigere filteret eller redigere, hvordan dataene sorteres, skal du angive attributten SavedQuery.FetchXml. Du kan finde flere oplysninger under Oprette forespørgsler med FetchXML.
Tip
Hvis du ikke er fortrolig med FetchXML, kan følgende meddelelser bruges til at konvertere mellem QueryExpression og FetchXML:QueryExpressionToFetchXmlRequest og FetchXmlToQueryExpressionRequest.
Redigere kolonner
De kolonner, du vil have vist i visninger, kan hentes fra objektet eller relaterede objekter. Du kan finde flere oplysninger om, hvordan du angiver kolonnerne til at blive vist, under <layoutxml> (SavedQuery).
Tilføje brugerdefinerede ikoner med værktøjstip for en kolonne
Du kan tilføje brugerdefinerede ikoner med værktøjstip, som vises i en kolonne, afhængigt af kolonneværdien. Du kan også angive lokaliseret tekst til værktøjstip. Dette kan gøres ved at tilføje de brugerdefinerede ikoner som billedwebressourcer i din Dynamics 365-forekomst og derefter bruge en JavaScript-webressource til at tilføje JavaScript-kode til en kolonne for at få vist ikonerne, afhængigt af værdien i kolonnen.
Bemærk
Denne funktion blev introduceret i December 2016 – opdatering til Dynamics 365 (online og det lokale miljø). Tilføjelse af brugerdefinerede ikoner med værktøjstip understøttes kun for de skrivebeskyttede gitre. Denne funktion understøttes ikke for de gitre, der kan redigeres. Du kan finde flere oplysninger om redigerbare gitre under Brug redigerbare gitre i Dynamics 365.
Der er tilføjet to nye attributter, imageproviderwebresource og imageproviderfunctionname, til layoutxml for savedquery (se <cell> (SavedQuery), så du kan angive navnet på en webressource og et JavaScript-funktionsnavn for at få vist brugerdefinerede ikoner og værktøjstip for en kolonne.JavaScript-koden udføres, når siden indlæses.
Du kan også bruge de nye felter Webressource og Funktionsnavn på siden Kolonneegenskaber, når du ændrer egenskaben for en attribut (kolonne) i en visningsdefinition i Dynamics 365-webklienten, til at angive webressourcenavnet og JavaScript-funktionsnavnet.
Følgende eksempelkode demonstrerer, hvordan du kan programmere angivelsen af en webressource og et JavaScript-funktionsnavn for at føje brugerdefinerede ikoner og værktøjstip til kolonnen opportunityratingcode i 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>";
JavaScript-funktionen til visning af brugerdefinerede ikoner og værktøjstip forventer følgende to argumenter: hele rækkeobjektet, som er angivet i layoutxml, og den kaldende brugers landestandard-id (LCID). Med LCID-parameteren kan du angive tekst på flere sprog til værktøjstipikonet. Du kan finde flere oplysninger om de sprog, der understøttes af CRM, under Aktiver sprog og Installere eller opgradere sprogpakker til Microsoft Dynamics 365. Hvis du vil se en liste over værdier for landestandard-id'er (LCID), som du kan bruge i din kode, skal du se Landestandard-id'er, der er tildelt af Microsoft.
Du vil sandsynligvis tilføje brugerdefinerede ikoner til en attribut af typen grupperet indstilling, da den har et begrænset sæt foruddefinerede indstillinger, og i så fald skal du sørge for at bruge heltalsværdien for indstillingerne i stedet for at undgå at ødelægge koden på grund af ændringer i den lokaliserede etiketstreng. Angiv også navnet på en billedwebressource, du vil bruge som ikon for en værdi i attributten i JavaScript-funktion. Billedet skal have en størrelse på 16 x 16 pixel. Større billeder skaleres automatisk ned til en størrelse på 16 x 16 pixel.
Følgende eksempelkode viser forskellige ikoner og værktøjstiptekst, der er baseret på en af værdierne (1: Hot, 2: Warm, 3: Cold) i attributten opportunityratingcode (Rating). Eksempelkoden viser også, hvordan du får vist oversat tekst i værktøjstip. Hvis dette eksempel skal fungere, skal du oprette tre billedwebressourcer hver med 16 x 16-billeder (, og ) i din Dynamics 365-forekomst med følgende navne henholdsvis: new_Hot, new_Warm og 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;
}
Dette resulterer i visningen af værdierne i kolonnen Rating med de relevante ikoner ud fra værdien og ikonets værktøjstiptekst, når du peger på ikonerne.
Benyt som standard
Det er kun aktive offentlige visninger, der kan angives som standardvisning. Hvis du vil gøre en visning til standardvisningen, skal du angive egenskaben IsDefault til true.
Se også
Eksempel: Arbejde med visninger
SavedQuery-objektmeddelelser og -metoder (visning)
Saved query XML reference
Oprette forespørgsler med FetchXML
Bruge organisationstjenesten med Dynamics 365-metadata
Tilpasning af objektformularer
Tilpas globale grupperede indstillinger
Tilpasse Microsoft Dynamics 365-programmer
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret