Skrive scripts for sammensatte attributter
Udgivet: november 2016
Gælder for: Dynamics CRM 2015
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 CRM for tabletter
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 CRM for tabletter
Microsoft Dynamics CRM 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 CRM til tablets.
Mindske forskellene
Hvis du vil have adgang til felterne fullname til objekterne Contact, Lead eller User vha. metoden Xrm.Page.data.entity.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 CRM 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.alertDialog i hovedwebprogrammet eller CRM 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å
Skrive kode til Microsoft Dynamics CRM 2015-formularer
Bruge formular- og felthændelser
Bruge Xrm.Page-objektmodel
Skriv og foretag fejlfinding i scripts til CRM til tabletter
Bruge konteksten for udførelse og formularens hændelsespipeline
Brug en IFRAME og webressourceobjekter i en formular
Formularscripter - hurtig henvisning
Programmeringsreference på klientsiden
Attributten Xrm.Page.data.entity (klientsidereference)
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret