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