CRM 2013 Javascript Object Model - Coleções

by Pedro Azevedo 30. June 2014 21:47

Boas pessoal,

Neste post mais uma vez sobre o object model do Javascript para o Dynamics CRM 2013, iremos debruçar sobre collections. Antes virmos os métodos que nos permitem aceder as várias colecções vamos ver três métodos que nos vão ajudar a trabalhar sobre as colecções:

Xrm.Page.ui.controls.forEach(delegate function(control, index))

Aplica uma acção numa função delegate a cada objecto numa colecção

Xrm.Page.ui.controls.get([String][Number][delegate function(attribute, index)])

Extrair um ou mais objectos da colecção

Xrm.Page.ui.controls.getLength()

Retorna o número de itens de uma colecção

Fica aqui uma pequena referência mas eu vou aplicar várias vezes estes métodos com as várias assinaturas. Principalmente no primeiro exemplo que vou percorrer todos este métodos.

Xrm.Page.data.entity.attributes

function attributesAllTest() {

                    Xrm.Utility.alertDialog("Esta entidade tem " + Xrm.Page.data.entity.attributes.getLength() + " entidades no formulário");

                   

                    var firstControlById = Xrm.Page.data.entity.attributes.get(0);

                    var firstControlByName = Xrm.Page.data.entity.attributes.get(firstControlById.getName());

                   

                    var booleanAtts = Xrm.Page.data.entity.attributes.get(isBoolean);

                    var message = "";

                    for (var i in booleanAtts) {

                                         message += "- " + booleanAtts[i].getName() + "\n";

                    }

                    Xrm.Utility.alertDialog(message);

                   

                    message = "";

                    Xrm.Page.data.entity.attributes.forEach(function (attribute, index) {

                                         message += attribute.getName() + "(" + attribute.getAttributeType() + ") \n";

                    });

                    Xrm.Utility.alertDialog(message);

}

 

function isBoolean(att, index) {

                    return att.getAttributeType() == "boolean";

}

 

 

 

Xrm.Page.ui.controls

function controlsTest() {

                    var message = "";

                    Xrm.Page.ui.controls.forEach(function (control, index) {

                                         message += control.getName() + "(" + control.getControlType() + ") \n";

                    });

                   

                    Xrm.Utility.alertDialog(message);

}

Xrm.Page.ui.formSelector.items

Vou abordar esta colecção aquando Xrm.Page.ui.

Xrm.Page.ui.navigation.items

Vou abordar esta colecção aquando Xrm.Page.ui.

Xrm.Page.ui.tabs

function tabsTest() {

                    var message = "";

                    Xrm.Page.ui.tabs.forEach(function (tab, index) {

                                         message += "A tab " + tab.getName() + " está " + tab.getDisplayState() + "\n";

                    });

                   

                    Xrm.Utility.alertDialog(message);

}

 

 

Xrm.Page.getAttribute("…").controls

function attControlsTest() {

                    var message = "";

                    Xrm.Page.getAttribute("subject").controls.forEach(function (control, index) {

                                         message += control.getName() + "(" + control.getControlType() + ") \n";

                    });

                   

                    Xrm.Utility.alertDialog(message);

}

 

Xrm.Page.ui.tabs.get("…").sections

function sectionsTest() {

                    var message = "";

                    Xrm.Page.ui.tabs.get("Summary").sections.forEach(function (section, index) {

                                         message += "A secção " + section.getName() + "tem a seguinte label " + section.getLabel() + " \n";

                    });

                   

                    Xrm.Utility.alertDialog(message);

}

 Xrm.Page.ui.tabs.get("…").sections.get("…").controls

function sectionControlsTest() {

                    var message = "";

                    Xrm.Page.ui.tabs.get("Summary").sections.get("Contact").controls.forEach(function (control, index) {

                                         message += control.getName() + "(" + control.getControlType() + ") \n";

                    });

                   

                    Xrm.Utility.alertDialog(message);

}

 

Até a próxima.

Tags: , , ,

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

About

Muito bem casado, Pai babado e um gosto muito grande pela tecnologia.

Tenho um lema "Sharing is Learning"

Mais aqui -> http://www.psazevedo.com

Month List