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
yNotify
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
Navigate
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)
Navegar a una página personalizada
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 )
Navegar a la vista predeterminada de la tabla
Para navegar a la vista predeterminada de la tabla, pase el nombre de la tabla como primer argumento.
Navigate( Accounts )
Navegar a la vista del sistema específica de la tabla
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' )
Navegar al formulario predeterminado de la tabla
Para navegar al formulario predeterminado de la tabla, pase el registro como primer argumento.
Navigate( Gallery1.Selected )
Navegar al formulario predeterminado de la tabla en el modo de creación
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 Sí , 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()
- Imprimir()
- 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