Compartir a través de


Pasar los datos desde una página como parámetro a las acciones de la cinta de opciones

Nota

Este tema trata sobre comandos clásicos.

Hay una nueva forma de definir comandos. Consulte Información general de los comandos modernos (versión preliminar)

Cuando define una acción en una cinta de opciones, suele necesario pasar datos desde la página a una función de JavaScript o a una dirección URL. En este artículo se describen las opciones para usar el elemento de <CrmParameter> para recuperar estos valores.

Contexto de formulario y cuadrícula en las acciones de la cinta

Para pasar la información del contexto de ejecución (contexto de formulario o contexto cuadrícula) a la función JavaScript para las acciones de la cinta, especifique PrimaryControl como el valor de contexto de formulario o SelectedControl para el contexto de cuadrícula como el valor <CrmParameter> en la definición de la cinta. SelectedControl pasará en el contexto de la cuadrícula, para las subcuadrículas y las cuadrículas de página principal. PrimaryControl o el valor SelectedControl se usa como argumento en la característica de JavaScript para contexto de formulario o contexto de cuadrícula respectivamente.

Por ejemplo, aquí tenemos una definición de la cinta de ejemplo donde pasamos el parámetro PrimaryControl a la función JavaScript:

<CommandDefinition Id="SampleCommand">
  <EnableRules/>
  <DisplayRules/>
  <Actions>
    <JavaScriptFunction Library="$webresource:new_mySampleScript.js" FunctionName="mySampleFunction">
      <CrmParameter Value="PrimaryControl" />
    </JavaScriptFunction>
  </Actions>
</CommandDefinition>

A continuación, en el archivo de recursos web new_mySampleScript.js al que se hace referencia en el ejemplo anterior, defina la función JavaScript con la variable primaryControl como argumento. Este argumento proporciona el contexto de formulario donde se ejecute el comando de la cinta:

function mySampleFunction(primaryControl) {
    var formContext = primaryControl;
    // Perform operations using the formContext object
}

También puede especificar CommandProperties como el valor <CrmParameter> en la definición de la cinta para pasar detalles sobre el evento en el control de la cinta. Puede usar esto para enviar información contextual a su función JavaScript donde las acciones específicas pueden determinarse en función del contexto del evento.

Nota

Obtener contexto de forma y contexto cuadrícula para las funciones de JavaScript para acciones de la cinta es diferente de cómo obtener estos valores en forma de secuencias de comandos. Para obtener información sobre cómo obtener estos contextos y secuencias de comandos de formulario, vea contexto del formulario de la API del cliente y contexto de cuadrícula de la API de cliente.

Valores de formulario

Con una cinta de opciones de formulario, puede usar las colecciones de data.entity.atributos y de ui.controles para recuperar y establecer valores de las columnas conocidas.

Por ejemplo, el código de ejemplo siguiente muestra cómo recuperar el campo de nombre de la columna en el formulario de cuenta y, después, establecer un valor en la columna de websiteurl según el valor del nombre de cuenta:

function mySampleFunction(primaryControl) {
    var formContext = primaryControl;    
    var accountName = formContext.getControl("name").getAttribute().getValue();    

    // Set the WebSiteURL column if account name contains "Contoso"
    if (accountName.toLowerCase().search("contoso") != -1) {
        formContext.getAttribute("websiteurl").setValue("https://www.contoso.com");
    }
    else {
        Xrm.Navigation.openAlertDialog({ text: "Account name does not contain 'Contoso'." });
    }
}

Valores de la cuadrícula

La mayoría de los valores disponibles para el elemento de <CrmParameter> se relacionan con el trabajo con datos que se muestran en una cuadrícula o gráfico de jerarquías. Mediante las opciones de la enumeración del parámetro de Value, puede aislar fácilmente los elementos por:

  • Elementos seleccionados

    • SelectedControlSelectedItemCount

    • SelectedControlSelectedItemIds

    • SelectedControlSelectedItemReferences

  • Todos los elementos

    • SelectedControlAllItemCount

    • SelectedControlAllItemIds

    • SelectedControlAllItemReferences

  • Elementos no seleccionados

    • SelectedControlUnselectedItemCount

    • SelectedControlUnselectedItemIds

    • SelectedControlUnselectedItemReferences

    Para cada una de estas agrupaciones, puede recopilar el número de elementos y de identificadores de GUID. Si pasa los valores a una dirección URL, también puede recuperar objetos EntityReference que contienen toda la información necesaria para identificar exclusivamente los objetos de la cuadrícula. Estos parámetros se aplican si la página vista es la cuadrícula principal (HomepageGrid) o una subcuadrícula situada en un formulario. Cuando se usa conjuntamente con el parámetro de SelectedEntityTypeName, tiene toda la información que debería tener que pasar a otra aplicación.

Otra información de contexto

Además de los valores de los datos, puede recuperar la información de contexto de cliente mediante <CrmParameter>. Puede usar las siguientes opciones como el valor del elemento CrmParameter: OrgName, OrgLcid y UserLcid.

Para una acción de <Url>, también puede usar PassParams para incluir información contextual.

Las opciones de Value PrimaryEntityTypeName y FirstPrimaryItemId brindan información para un registro de tabla. Puede usar PrimaryItemIds para una cinta de opciones de HomepageGrid para obtener una lista de todos los elementos que se muestran.

Consultar también

Personalizar la cinta de opciones
Pasar parámetros a una dirección URL con la cinta de opciones
Definir acciones de la cinta de opciones
Definir acciones personalizadas para modificar la cinta de opciones
Contexto de formulario de la API del cliente
Contexto de cuadrícula de la API del cliente

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).