Del via


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

  • Forekomsten: mange

  • Handlinger: Opret, Opdater, Slet

  • Kommentarer: Du kan indstille en af disse visninger som den offentlige standardvisning ved at indstille SavedQuery.IsDefault til true.

Avanceret søgning

1

  • Forekomster: 1

  • Handlinger: Opdater kun.

  • Kommentarer: Denne visning vises som standard, når resultaterne er vist i Avanceret søgning.

Tilknyttet

2

  • Forekomster: 1

  • Handlinger: Opdater kun.

  • Kommentarer: Denne visning vises som standard, når et gitter af relaterede poster vises i navigationsruden for en post.

Hurtig søgning

4

  • Forekomster: 1

  • Handlinger: Opdater kun.

  • Kommentarer: Denne visning definerer de kolonner, der skal søges i, når en bruger søger efter poster ved hjælp af søgefeltet i en listevisning.

Opslag

64

  • Forekomster: 1

  • Handlinger: Opdater kun.

  • Kommentarer: Dette er standardvisningen, der skal bruges til at søge efter en post, når ingen anden visning er konfigureret for opslagsfeltet.

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:

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 (Klassifikationsikonet Hot, Klassifikationsikonet Varm og Klassifikationsikonet Kold) 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.

Brugerdefinerede ikoner, der vises for en kolonne i en visning

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