JScript eksempelkode: Dependant Optionset

Dependant Optionset

Prerequiresets

List Name   Option Option Value
FirstList new_firstlist

Animals
Cars

100.000.000
100.000.001 

 

List Name   Option Option Value
SecondList new_secondlist

Cow
Horse
Sheep
Ford
Toyota
BMW
VW

100.000.000
100.000.001
100.000.002
100.000.003
100.000.004
100.000.005
100.000.006 

 

Main Code

//******************************************************************
//* Add options to list (OptionSet)
//*
//* PARAMETERS
//* optionSetName    :      Name of the field (Optionset) 
//* optionValue      :      Value of the Option
//* optionText       :      Text of the Option
//* optionIndex      :      Option Index (Don't use 0 this is used for non value)
//*
//* RETURNVALUES
//* none
//* 
//******************************************************************
function addOptionsToOptionSet(optionSetName, optionValue, optionText, optionIndex) {
    var optionsetSubType = Xrm.Page.ui.controls.get(optionSetName);
    var newOption = new Object();

    newOption.value = optionValue;
    newOption.text = optionText;

    optionsetSubType.addOption(newOption, optionIndex);
}

 
Calling Code

//******************************************************************
//* Get and set options ("FirstList" and "SecondList")
//*
//* PARAMETERS
//* none
//*
//* RETURNVALUES
//* none
//* 
//******************************************************************
function setSecondList() {
    var optionsetFirstList = Xrm.Page.getAttribute("new_firstlist").getValue();
    var nameSecondList = "new_secondlist";
    var optionsetSecondList = Xrm.Page.ui.controls.get(nameSecondList);

    // Clear all options in the second list
    optionsetSecondList.clearOptions();
    optionsetSecondList.setDisabled(false);

    // Fill the second list based on value in the first list
    switch (optionsetFirstList) {
        case 100000000: /*Animals*/
            addOptionsToOptionSet(nameSecondList, 100000000, 'Cow', 1);
            addOptionsToOptionSet(nameSecondList, 100000001, 'Horse', 2);
            addOptionsToOptionSet(nameSecondList, 100000002, 'Sheep', 3);
            break;

        case 100000001: /*Cars*/
            addOptionsToOptionSet(nameSecondList, 100000003, 'Ford', 1);
            addOptionsToOptionSet(nameSecondList, 100000004, 'Toyota', 2);
            addOptionsToOptionSet(nameSecondList, 100000005, 'BMW', 3);
            addOptionsToOptionSet(nameSecondList, 100000006, 'VW', 4);
            break;

        default: /*Nothing selected og Null selected*/
            optionsetSecondList.setDisabled(true);
    }
}

 
Initializing Code

//******************************************************************
//* Initializing code who runs when form is loaded
//*
//* PARAMETERS
//* None
//*
//* RETURNVALUES
//* None
//* 
//******************************************************************
function initForm() {
    // Handle Form Type Variables
    var CRM_FORM_TYPE_CREATE = 1;
    var CRM_FORM_TYPE_UPDATE = 2;
    var CRM_FORM_TYPE_READ_ONLY = 3;
    var CRM_FORM_TYPE_DISABLED = 4;
    var CRM_FORM_TYPE_QUICK_CREATE = 5;
    var CRM_FORM_TYPE_BULK_EDIT = 6;
    var crmFormType = Xrm.Page.ui.getFormType();

    // Setup Dependant Lists
    if (crmFormType == CRM_FORM_TYPE_CREATE) {
        // Initialize dependant list
        setSecondList();
    } else {
        // Disable second list
        Xrm.Page.ui.controls.get("new_secondlist").setDisabled(true);
    }
}

Bliv medlem af CRMUG DK

De regionale afdelinger i CRMUG giver mulighed for a mødes med andre medlemmer af CRMUG i dit lokalområde. Hermed får du mulighed for at mødes ansigt til ansigt og vidensdele med andre brugere af Microsoft Dynamics CRM i dit område.

Læs mere den Danske afdeling af CRMUG...

Om Henrik Jensen

Jeg har altid fingeren på pulsen når det drejer sig om Microsofts produkter & teknologier, og især når det handler om Microsoft Dynamics CRM.

Henrik Jensen

Jeg har arbejdet professionelt i IT-branchen mere end 25 års, deraf mere end 18 år med CRM-systemer, og samtidig indehaver af mere end 50 Microsoft-certificeringer.

Mobil: +45 20 300 300
E-mail: hj@easyconsult.dk

EASYConsult ApS

Læs mere...

Downloads, værktøjer, installation og JScript

Downloade komponenter til MS CRM:
    • Microsoft Dynamics CRM 4.0
    • Microsoft Dynamics CRM 2011
    • Microsoft Dynamics CRM 2013
    • Microsoft Dynamics CRM 2015
    • Microsoft Dynamics CRM 2016

Liste over Opdateringspakker (Rollups):
    • Microsoft Dynamics CRM 4.0
    • Microsoft Dynamics CRM 2011
    • Microsoft Dynamics CRM 2013
    • Microsoft Dynamics CRM 2015
    • Microsoft Dynamics CRM 2016
    • Microsoft Dynamics 365

Ikoner:
    • Icons8

Krav og opsætninger til installation:
    • Krav og opsætninger MS CRM 2011
    • Krav og opsætninger MS CRM 2013
    • Krav og opsætninger MS CRM 2015
    • Krav og opsætninger MS CRM 2016
    • Krav og opsætninger Dynamics 365

JScript eksempelkode:
    • Javascript API-reference
    • Javascript eksempelkode

Diverse værktøjer:
    • Liste med værktøjer til MS CRM
    • Sysinternals
    • PowerShell og MS CRM 2011

Visual Studio, SSIS og Kingswaysoft
    • Visual Studio 2017
    • Dataværktøjer (SSIS) 2017
    • Kingswaysoft
    • SSIS Navnekonventioner

Månedsliste

Forbehold

Alt hvad du læser på denne blog er alene udtryk for mine egne holdninger og meninger, og kan ikke henføres til andet end som så.

De løsninger jeg fremstiller på denne blog er ikke nødvendigvis testet i et driftsmiljø. Hvis du gør brug af mine løsninger er det på eget ansvar.