Compartir a través de


Usar Power Fx con comandos

Este artículo cubre aspectos de Power Fx que son específicos de los comandos. También se pueden utilizar muchas otras funciones que se utilizan hoy en día dentro de las aplicaciones de lienzo. Tenga en cuenta que existen diferencias porque el comando es para aplicaciones basadas en modelos.

  • Se admiten todas las funciones de flujo de datos existentes. ¿Qué son los flujos de datos?
  • Se admiten funciones imperativas que funcionan con datos.
  • Se admiten funciones imperativas para Confirm y Notify simples.
  • Para obtener una lista de funciones no compatibles, vaya a Funciones no compatibles.

Nota

La publicación de los comandos de Power Fx puede tardar unos minutos. Puede que no sea obvio que las operaciones en segundo plano todavía se están ejecutando incluso después de que la operación de publicación parece haberse completado. Es posible que deba esperar unos minutos tras la publicación, después actualice la aplicación para ver reflejados los cambios. Esto suele llevar más tiempo la primera vez que se publica un comando basado en Power Fx para una aplicación.

OnSelect

Define la lógica que se ejecuta cuando se selecciona el botón dentro de la aplicación.

Visible

Define la lógica para ocultar o mostrar el botón al ejecutar la aplicación.

Para definir la lógica de visibilidad, seleccione el comando. Luego seleccione Visibilidad en el panel de propiedades del comando derecho y elija Mostrar en condición de fórmula. Ahora puede seleccionar Visible a la izquierda de la barra de fórmulas, luego escriba una expresión de Power Fx usando la barra de fórmulas.

Propiedad seleccionada

Campo Tipo Descripción
Item Registro de DataSource Uno de los registros seleccionados del DataSource.
AllItems Tabla de registros de DataSource Todos los registros seleccionados del DataSource.
State Enumeración Estado del control seleccionado. Editar (=0), Nuevo (=1), Ver (=2)
Sin guardar Booleana Devuelve verdadero si Selected o SelectedItems tienen cambios sin guardar. De lo contrario, devuelve falso. Siempre devuelve false si AutoSave se establece en true (opción predeterminada) dentro de la biblioteca de componentes de comandos.
  • La propiedad Seleccionado la proporciona el host del comando.
  • Los nombres Artículo y Todos los artículos son algo coherentes con el control ComboBox y el control Galería, pero este es un patrón nuevo.
  • Si no hay ningún registro seleccionado, Artículo devuelve Blank (IsBlank devuelve verdadero) y Todos los artículos devuelve una tabla vacía (IsEmpty devuelve verdadero).
  • DataSource nula para referencias de registros (tipos de registros polimórficos). Se pueden llamar funciones genéricas, como Save o IsType / AsType.
  • Item siempre está en blanco si SelectionMax <> 1. Esto evita escribir fórmulas en un solo elemento y no escalar a más de uno.

AutoSave

  • Muchos comandos de JavaScript comienzan guardando el búfer de formulario. Esto se debe a que facilita el trabajo con el resto del código.
  • De forma predeterminada, el búfer de formulario se guarda en nombre del fabricante de la aplicación.
    • El formulario se guarda antes de que se inicie el comando.
    • Cualquier problema que ocurra durante la operación de guardado se resuelve dentro de la interfaz de usuario del formulario.

Función Patch

Parchear (actualizar) el registro seleccionado actual

Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})

Crear un registro relacionado

Nota

Si la tabla relacionada aún no está en la biblioteca de componentes de comando, deberá abrirla en Canvas Studio y agregar el origen de datos allí.

Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})

Verificar y editar una propiedad de fecha

If(Self.Selected.Item.'Last Date Included in Campaign'>DateAdd(Now(),-3), Patch(Accounts,Self.Selected.Item,{'Last Date Included in Campaign':Date(2021,10,19)}))

Propiedad visible: solo muestra el comando si uno o más registros están seleccionados en una vista de cuadrícula

CountRows(Self.Selected.AllItems) > 0

Controle la visibilidad en función de los datos de registro

//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20

Nota

Para obtener opciones adicionales, consulte la referencia de la API del cliente para usar JavaScript. Más información: navigateTo (referencia de la API del cliente)

Para navegar a una página de lienzo personalizada dentro de una aplicación basada en modelos, pase el nombre de la página como primer argumento.

Navigate( myCustomPage )

Para navegar a la vista predeterminada de la tabla, pase el nombre de la tabla como primer argumento.

Navigate( Accounts )

Para navegar a un vista del sistema específica de la tabla, pase la enumeración de Views de la tabla.

Navigate( 'Accounts (Views)'.'My Active Accounts' )

Para navegar al formulario predeterminado de la tabla, pase el registro como primer argumento.

Navigate( Gallery1.Selected )

Para navegar a la forma predeterminada de la tabla, pase un registro Dataverse creado a partir de la función Defaults. Esto abre el formulario predeterminado con el registro como un nuevo registro. La función Defaults toma el nombre de la tabla para crear el registro.

Navigate( Defaults( Accounts ) )

Optimizar la experiencia del usuario con información sobre el origen de datos y los registros

Use las funciones DataSourceInfo y RecordInfo para optimizar la experiencia del usuario con información sobre los datos que se muestran y manipulan.

Por ejemplo, use RecordInfo para determinar si el usuario actual tiene permiso para modificar un registro y mostrar u ocultar apropiadamente un botón "Editar" usando su propiedad Visible:

EditButton.Visible = 
   RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )

Por ejemplo, use DataSourceInfo para determinar si el usuario actual tiene permiso para crear un registro y mostrar u ocultar adecuadamente un botón "Crear" usando su propiedad Visible:

CreateButton.Visible = 
   DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )

Pedir confirmación antes de realizar una acción

Use la función Confirmar para mostrar un cuadro de diálogo en la parte superior de la pantalla actual.

Notify( Confirm( "Are you sure?", 
                 { ConfirmButton: "Yes", CancelButton: "No" } 
        ) 
)

Muestra una notificación verdadera si se presiona el botón , y una notificación falsa si se presiona el botón No.

Notificar al usuario

Se puede mostrar una notificación a los usuarios de la aplicación llamando a la Función Notify.

Nota

NotificationType.Success actualmente no es compatible y dará como resultado un tipo de notificación informativa.

Notify( "Model-driven app notification message" )

Otros ejemplos

Iniciar una URL

Launch("https://www.bing.com");

Acceso 1: propiedad N

Self.Selected.Item.'Recurring Appointments'

Verificar la propiedad de un registro relacionado

Self.Selected.Item.'Parent Account'.'Account Name'="parent"

Las funciones no se admiten

Actualmente, las siguientes funciones de Power Fx no son compatibles con comandos en aplicaciones basadas en modelos.

  • Back()
  • Clear()
  • Collect()
  • Copy()
  • Disable()
  • Enable()
  • Exit()
  • InvokeControl()
  • Language()
  • LoadData()
  • Param()
  • ReadNFC()
  • RequestHide()
  • ResetForm()
  • Revert()
  • SaveData()
  • ScanBarcode()
  • Set()
  • SubmitForm()
  • UpdateContext()
  • User()
  • ViewForm()

Las enumeraciones no se admiten

  • Align
  • AlignInContainer
  • BarcodeType
  • BorderStyle
  • Color
  • Direction
  • DisplayMode
  • Font
  • FontWeight
  • FormPattern
  • GridStyle
  • ImagePosition
  • ImageRotation
  • LabelPosition
  • Layout
  • LayoutAlignItems
  • LayoutDirection
  • LayoutJustifyContent
  • LayoutMode
  • LayoutOverflow
  • ListItemTemplate
  • MapStyle
  • Overflow
  • PDFPasswordState
  • PenMode
  • RemoveFlags
  • ScreenTransition
  • TeamsTheme
  • TextFormat
  • TextMode
  • TextPosition
  • Themes
  • Transition
  • VerticalAlign
  • VirtualKeyboardMode
  • Zoom

Otras áreas no admitidas

  • Aceleración
  • Aplicación
  • Brújula
  • Conexión
  • Columnas de tipo de archivo de Dataverse
  • Entorno
  • Anfitrión
  • Diseño
  • Ubicación
  • ScreenSize

Consulte también

Conocer las fórmulas de comportamiento

Referencia de fórmula

Información general de Power Fx