Condividi tramite


Esempio: Completamento automatico nel controlli Dynamics 365

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Utilizza il codice JavaScript di esempio per configurare l'esperienza di completamento automatico in Dynamics 365 utilizzando le seguenti API lato client introdotte in Microsoft Dynamics 365 (online e locale): getValue, Metodi Keypress e Metodi di completamento automatico.

Dimostra

Quando aggiungi il codice JavaScript di esempio in questo argomento come libreria del modulo nel modulo di account e aggiungi la funzione suggestAccounts nell'evento Evento OnLoad nel modulo di account, la funzionalità di completamento automatico è configurata nel campo Nome account nel modulo di account. Quando digiti un nome nel campo Nome account, viene visualizzato un elenco a discesa di completamento automatico e i valori dell'elenco a discesa sono filtrati per corrispondere ai caratteri inseriti nel campo. Facendo clic su un valore nell'elenco a discesa questo viene aggiunto al campo Nome account.

Esperienza di completamento automatico con gli script dei moduli

Esempio

/* Sample JavaScript code to demonstrate the auto-completion feature.
   This sample configures the auto-complete feature for the "Account Name"
   field in the account form. */

function suggestAccounts() {

    // List of sample account names to suggest
    accounts = [
  { name: 'A. Datum Corporation', code: 'A01' },
  { name: 'Adventure Works Cycles', code: 'A02' },
  { name: 'Alpine Ski House', code: 'A03' },
  { name: 'Bellows College', code: 'A04' },
  { name: 'Best For You Organics Company', code: 'A05' },
  { name: 'Blue Yonder Airlines', code: 'A06' },
  { name: 'City Power & Light', code: 'A07' },
  { name: 'Coho Vineyard', code: 'A08' },
  { name: 'Coho Winery', code: 'A09' },
  { name: 'Coho Vineyard & Winery', code: 'A10' },
  { name: 'Contoso, Ltd.', code: 'A11' },
  { name: 'Contoso Pharmaceuticals', code: 'A12' },
  { name: 'Contoso Suites', code: 'A13' },
  { name: 'Consolidated Messenger', code: 'A14' },
  { name: '​Fabrikam, Inc.', code: 'A15' },
  { name: 'Fabrikam Residences', code: 'A16' },
  { name: '​First Up Consultants', code: 'A17' },
  { name: 'Fourth Coffee', code: 'A18' },
  { name: 'Graphic Design Institute', code: 'A19' },
  { name: 'Humongous Insurance', code: 'A20' },
  { name: 'Lamna Healthcare Company', code: 'A21' },
  { name: 'Litware, Inc.', code: 'A22' },
  { name: 'Liberty Delightful Sinful Bakery & Cafe', code: 'A23' },
  { name: 'Lucerne Publishing', code: 'A24' },
  { name: 'Margie Travel', code: 'A25' },
  { name: '​Munson Pickles and Preserves Farm', code: 'A26' },
  { name: 'Nod Publishers', code: 'A27' },
  { name: 'Northwind Electric Cars', code: 'A28' },
  { name: 'Northwind Traders', code: 'A29' },
  { name: 'Proseware, Inc.', code: 'A30' },
  { name: 'Relecloud', code: 'A31' },
  { name: 'School of Fine Art', code: 'A32' },
  { name: 'Southridge Video', code: 'A33' },
  { name: 'Tailspin Toys', code: 'A34' },
  { name: 'Trey Research', code: 'A35' },
  { name: 'The Phone Company', code: 'A36' },
  { name: 'VanArsdel, Ltd.', code: 'A37' },
  { name: 'Wide World Importers', code: 'A38' },
  { name: '​Wingtip Toys', code: 'A39' },
  { name: 'Woodgrove Bank', code: 'A40' }    
    ];

    var keyPressFcn = function (ext) {
        try {
            var userInput = Xrm.Page.getControl("name").getValue();
            resultSet = {
                results: new Array(),
                commands: {
                    id: "sp_commands",
                    label: "Learn More",
                    action: function () {
                        // Specify what you want to do when the user
                        // clicks the "Learn More" link at the bottom
                        // of the auto-completion list.
                        // For this sample, we are just opening a page
                        // that provides information on working with
                        // accounts in CRM.
                        window.open("https://www.microsoft.com/en-us/dynamics/crm-customer-center/create-or-edit-an-account.aspx");
                    }
                }
            };

            var userInputLowerCase = userInput.toLowerCase();
            for (i = 0; i < accounts.length; i++) {
                if (userInputLowerCase === accounts[i].name.substring(0, userInputLowerCase.length).toLowerCase()) {
                    resultSet.results.push({
                        id: i,
                        fields: [accounts[i].name]
                    });
                }
                if (resultSet.results.length >= 10) break;
            }

            if (resultSet.results.length > 0) {
                ext.getEventSource().showAutoComplete(resultSet);
            } else {
                ext.getEventSource().hideAutoComplete();
            }
        } catch (e) {
            // Handle any exceptions. In the sample code,
            // we are just displaying the exception, if any.
            console.log(e);
        }
    };

    Xrm.Page.getControl("name").addOnKeyPress(keyPressFcn);    
}

Vedere anche

Controllo Xrm.Page.ui (riferimento lato client)

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright