Skrive scripts for sammensatte attributter

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Nogle felter, der er føjet til en formular, kan repræsentere flere dataelementer. Disse sammensatte attributter opfører sig anderledes end andre attributter, når de vises i webprogrammet, og du skal skrive scripts på en anden måde for at bruge dem korrekt.

Dette emne indeholder

Sammensatte attributter

Sammensatte attributter i webprogrammet

Sammensatte attributter i Dynamics 365 til tablets

Mindske forskellene

Sammensatte attributter

De sammensatte attributter vises i følgende tabel:

Objekt

Vist navn

Logisk navn

Contact

Fulde navn

fullname

Adresse 1

address1_composite

Adresse 2

address2_composite

Lead

Fulde navn

fullname

Adresse 1

address1_composite

Adresse 2

address2_composite

User

Fulde navn

fullname

Adresse

address1_composite

Anden adresse

address2_composite

Account

Adresse 1

address1_composite

Adresse 2

address2_composite

Quote

Faktura til adresse

billto_composite

Leveringsadresse

shipto_composite

Order

Faktura til adresse

billto_composite

Leveringsadresse

shipto_composite

Invoice

Faktura til adresse

billto_composite

Leveringsadresse

shipto_composite

Sammensatte attributter i webprogrammet

Når felter for sammensatte attributter føjes til en hovedformular, vises webprogrammet den sammensatte attribut. Når en bruger redigerer feltet, vises et mærke med individuelle attributter, der indgår i den sammensatte attribut. Selvom de ikke udtrykkeligt føjes til formularen i formulareditoren, er hver af de attributter, der indgår i attributten, tilgængelige for formularen. Selvom du kan læse værdien af den sammensatte værdi vha. getValue, kan du ikke bruge setValue til at ændre værdien af den sammensatte attribut direkte; Du skal angive en eller flere af de attributter, der refereres til af den sammensatte attribut.

Du kan få adgang til de enkelte konstituentkontrolelementer, der vises i pop op-vinduet ved navn. Disse kontrolelementer bruger følgende navngivningskonvention: <composite control name>_compositionLinkControl_<constituent attribute name>. Hvis du vil have adgang til kun kontrolelementet address_line1 i kontrolelementet address1_composite. skal du bruge: Xrm.Page.getControl("address1_composite_compositionLinkControl_address1_line1").

Sammensatte attributter i Dynamics 365 til tablets

Microsoft Dynamics 365 til tablets bruger de samme formulardefinitioner, der bruges til de objekter, der har sammensatte attributter, men fortolker dem forskelligt. Hvis der findes en sammensat attribut i formulardefinitionen, viser den alle de attributter, der indgår i den sammensatte attribut i den pågældende sektion i formularen. Der er ikke brug for et pop op-vindue, fordi alle felterne er synlige. Du kan skrive scripts i formularen for at få adgang til hver af de individuelle attributter, som om de individuelt er føjet til formularen.

Det faktiske sammensatte kontrolelement bliver imidlertid ikke vist på siden Dynamics 365 til tablets.

Mindske forskellene

Hvis du vil have adgang til felterne fullname til objekterne Contact, Lead eller User vha. metoden **Xrm.Page.data.entity.**fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getPrimaryAttributeValue er en nem måde at hente værdien for denne attribut på uden direkte at referere til den. Denne metode fungerer for både webprogrammet og Dynamics 365 til tablets.

Hvis du har en kode, der skal læse værdien af de adressesammensatte attributter, til at arbejde med begge klienter, skal du adskille koden vha. Xrm.Page.context.client.getClient som vist i den følgende funktion, vises den formaterede adresse vha. **Xrm.Utility.**72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_alertDialog i hovedwebprogrammet eller Dynamics 365 til tablets-versionen af den samme formular.

function showAddressDialog() {
 var address1_compositeValue;
 if (Xrm.Page.context.client.getClient() != "Mobile") {
  address1_compositeValue = Xrm.Page.getAttribute("address1_composite").getValue();
 }
 else {
  var address1_line1 = Xrm.Page.getAttribute("address1_line1").getValue();
  var address1_line2 = Xrm.Page.getAttribute("address1_line2").getValue();
  var address1_line3 = Xrm.Page.getAttribute("address1_line3").getValue();
  var address1_city = Xrm.Page.getAttribute("address1_city").getValue();
  var address1_stateorprovince = Xrm.Page.getAttribute("address1_stateorprovince").getValue();
  var address1_postalcode = Xrm.Page.getAttribute("address1_postalcode").getValue();
  var address1_country = Xrm.Page.getAttribute("address1_country").getValue();

  // Achieve equivalent formatting
  //address1_line1
  //address1_line2
  //address1_line3
  //address1_city, address1_stateorprovince address1_postalcode
  //address1_country

  var addressText = "";
  if (address1_line1 != null) {
   addressText += address1_line1 + "\n";
  }
  if (address1_line2 != null) {
   addressText += address1_line2 + "\n";
  }
  if (address1_line3 != null) {
   addressText += address1_line3 + "\n";
  }
  if (address1_city != null) {
   addressText += address1_city + ", ";
  }
  if (address1_stateorprovince != null) {
   addressText += address1_stateorprovince + " ";
  }
  if (address1_postalcode != null) {
   addressText += address1_postalcode + "\n";
  }
  addressText += address1_country;

  address1_compositeValue = addressText;
 }
 Xrm.Utility.alertDialog(address1_compositeValue);
}

Se også

Skriv kode til Microsoft Dynamics 365-formularer
Bruge formular- og felthændelser
Bruge Xrm.Page-objektmodel
Skrive eller rette fejl i scripts til Dynamics 365 til telefoner og tablets
Bruge konteksten for udførelse og formularens hændelsespipeline
Bruge IFRAME- og webressourceobjekter i en formular
Formularscripter - hurtig henvisning
Programmeringsreference på klientsiden
Attributten Xrm.Page.data.entity (klientsidereference)

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret