Usando Power Fx con comandos
Este artigo abarca aspectos de Power Fx que son específicos para mandar. Tamén se poden usar moitas outras funcións que se usan hoxe dentro das aplicacións de lenzo. Teña presente que hai diferenzas porque os comandos son para aplicacións baseadas en modelos.
- Admítense todas as funcións de fluxo de datos existentes. Que son os fluxos de datos?
- Admítense funcións imperativas que funcionan con datos.
- Funcións imperativas para simple
ConfirmeNotifyson apoiados. - Para ver unha lista de funcións non compatibles, vai a Non se admiten funcións.
Nota
Publicación Power Fx as ordes poden tardar uns minutos. Quizais non sexa obvio que as operacións en segundo plano aínda se estean executando mesmo despois de que a operación de publicación pareza completarse. É posible que teñas que esperar uns minutos despois da publicación e, a continuación, actualizar a aplicación para ver reflectidos os teus cambios. Isto normalmente leva máis tempo a primeira vez a Power Fx O comando baseado publícase para unha aplicación.
OnSelect
Define a lóxica que se executará cando se seleccione o botón dentro da aplicación.
Visible
Define a lóxica para ocultar ou mostrar o botón ao executar a aplicación.
Para definir a lóxica de visibilidade, seleccione o comando. A continuación, seleccione Visibilidade no panel de propiedades do comando dereito e escolla Mostrar a condición da fórmula. Agora podes seleccionar Visible á esquerda da barra de fórmulas, escriba a Power Fx expresión usando a barra de fórmulas.
Propiedade seleccionada
| Campo | Tipo | Descripción |
|---|---|---|
| Elemento | Rexistro de DataSource | Un dos rexistros seleccionados da DataSource. |
| AllItems | Táboa de rexistros da DataSource | Todos os rexistros seleccionados do DataSource. |
| Estado | Enumeración | Estado do control seleccionado. Editar (=0), Novo (=1), Ver (=2) |
| Sen gardar | Boolean | Devolve verdadeiro se Selected ou SelectedItems teñen cambios sen gardar. En caso contrario, devolve false. Sempre devolve false se AutoSave está definido como verdadeiro (opción predeterminada) dentro da biblioteca de compoñentes de comandos. |
- A propiedade Seleccionada proporciónaa o servidor do comando.
- Os nomes Elemento e AllItems son en certo modo coherentes co control ComboBox e o control da Galería, pero este é un novo padrón.
- Se non hai ningún rexistro seleccionado, Elemento devolve en branco (IsBlank devolve verdadeiro) e AllItems devolve unha táboa baleira (IsEmpty devolve verdadeiro).
- DataSource nula para referencias de rexistros (tipos de rexistros polimórficos). Pódense chamar a funcións xenéricas, como Gardar ou pódense usar IsType/AsType.
- Elemento sempre está en branco se Selección Máx <> 1. Isto impide escribir fórmulas nun só elemento e non escalar a máis dun.
Gardado automático
- Moitos comandos de JavaScript comezan gardando o búfer de formulario. Isto é porque facilita o traballo co resto do código.
- De xeito predeterminado, o búfer do formulario gárdase en nome do creador de aplicacións.
- O formulario gárdase antes de iniciar o comando.
- Calquera problema que se produza durante a operación de gardado trátase na interface de usuario do formulario.
Función de parche
Aplicar (actualizar) o rexistro seleccionado actual
Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})
Crear un rexistro relacionado
Nota
Se a táboa relacionada aínda non está na biblioteca de compoñentes de comandos, terás que abrila en Canvas Studio e engadir alí o orixe de datos.
Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})
Comprobar e editar unha propiedade de data
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)}))
Propiedade visible: amosa o comando só se se seleccionan un ou máis rexistros nunha vista de grade
CountRows(Self.Selected.AllItems) > 0
Controlar a visibilidade baseándose nos datos do rexistro
//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20
Navegar
Nota
Para obter opcións adicionais, consulte a referencia da API do cliente para usar JavaScript. Máis información: navigateTo (referencia da API de cliente)
Navega a unha páxina personalizada
Para navegar a unha páxina de lenzo personalizada nunha aplicación baseada en modelos, pasa o nome da páxina como primeiro argumento.
Navigate( myCustomPage )
Desprazarse ata a vista predeterminada da táboa
Para navegar ata a vista predeterminada da táboa, pase o nome da táboa como primeiro argumento.
Navigate( Accounts )
Desprazarse ata a vista do sistema específica da táboa
Para navegar a un vista do sistema específico da táboa, pasa o da táboaViews enumeración.
Navigate( 'Accounts (Views)'.'My Active Accounts' )
Desprazarse ata o formulario predefinido da táboa
Para navegar ao formulario predeterminado da táboa, pase o rexistro como primeiro argumento.
Navigate( Gallery1.Selected )
Desprazarse ata o formulario predefinido da táboa en modo de creación
Para navegar ao formulario predeterminado da táboa, pase un rexistro de Dataverse creado a partir da función Valores predeterminados. Isto abrirá o formulario predeterminado co rexistro como novo rexistro. A función Defaults leva o nome da táboa para crear o rexistro.
Navigate( Defaults( Accounts ) )
Función RecordInfo
Ofrece información sobre un rexistro dunha orixe de datos.
Use RecordInfo para obter información sobre un rexistro particular dunha orixe de datos. Neste momento, só Microsoft Dataverse é compatible.
A información dispoñible:
| Argumento de información | Descripción |
|---|---|
| RecordInfo.DeletePermission | O usuario actual ten permiso para eliminar este rexistro da orixe de datos? |
| RecordInfo.EditPermission | O usuario actual ten permiso para modificar este rexistro na orixe de datos? |
| RecordInfo.ReadPermission | O usuario actual ten permiso para ver este rexistro desde o orixe de datos? |
Información de rexistro devolve un valor booleano:
| Valor devolto | Descripción |
|---|---|
| verdadeiro | O usuario ten o permiso. |
| falso | O usuario non ten permiso. Se o rexistro está en branco entón RecordInfo tamén volverá false. |
RecordInfo tamén ten en conta os permisos a nivel de orixe de datos. Por exemplo, se o usuario ten privilexios a nivel de rexistro para modificar un rexistro, pero o usuario non ten privilexios a nivel de táboa, entón volverá falso para Modificar permiso. Usa o Función DataSourceInfo para obter información sobre o orixe de datos no seu conxunto.
Sintaxe RecordInfo
RecordInfo( Record, Information )
- Rexistro: necesario. O rexistro para probar.
- Información – Obrigatorio. Información elixida para o rexistro.
Exemplos de RecordInfo
RecordInfo(Self.Selected.Item, RecordInfo.EditPermission )
Usado para Visible propiedade neste exemplo. Comproba se o usuario que iniciou sesión ten privilexios de edición para o rexistro seleccionado. Se o usuario ten permiso para editar este rexistro e modificar o ficheiroAccounts orixe de datos en xeral, entón Información de rexistro volverá verdade e o comando estará visible. Se non, o comando non será visible para o usuario.
CountRows(Filter(Self.Selected.AllItems, RecordInfo(ThisRecord,RecordInfo.EditPermission)))>0
Usado para Visible propiedade para o Reixa principal localización neste exemplo. O botón será visible para o usuario que execute a aplicación cando se seleccionen un ou máis rexistros dentro da grade e o usuario teña privilexios de edición para polo menos un dos rexistros seleccionados.
CountRows(Filter(Self.Selected.AllItems, RecordInfo(ThisRecord,RecordInfo.EditPermission)))=CountRows(Self.Selected.AllItems)
Usado para Visible propiedade para o Reixa principal localización neste exemplo. O botón será visible para o usuario que execute a aplicación cando se seleccionen un ou máis rexistros dentro da grade e o usuario teña privilexios de edición para todos dos rexistros seleccionados.
Función DataSourceInfo
As orixes de datos poden proporcionar unha ampla información para optimizar a experiencia do usuario.
Podes usar columna -nivel de información para validar a entrada do usuario e proporcionarlle feedback inmediato antes de usar o Función de parche. O Validar función utiliza esta mesma información.
Podes usar a información no nivel orixe de datos, por exemplo, para desactivar ou ocultar Editar e Novo botóns para usuarios que non teñen privilexios para editar e crear rexistros.
Información da táboa fonte de datos
Podes usar Información da fonte de datos para obter información sobre un orixe de datos no seu conxunto. Para comandar, tamén é moi común usalo para Visibilidade. Por exemplo, para mostrar ou ocultar un comando dependendo de se o usuario ten un ou máis privilexios para a táboa.
| Argumento de información | Tipo de resultado | Descripción |
|---|---|---|
| DataSourceInfo.AllowedValues | Booleano | Que tipos de permisos se poden conceder aos usuarios para esta orixe de datos? Se non está configurado pola orixe de datos, devolve en branco. |
| DataSourceInfo.CreatePermission | Boolean | O usuario actual ten privilexios para crear rexistros neste orixe de datos? Se non está configurado pola orixe de datos, devolve true. |
| DataSourceInfo.DeletePermission | Boolean | O usuario actual ten privilexios para eliminar rexistros neste orixe de datos? Se non está configurado pola orixe de datos, devolve true. |
| DataSourceInfo.EditPermission | Boolean | O usuario actual ten privilexios para editar rexistros neste orixe de datos? Se non está configurado pola orixe de datos, devolve true. |
| DataSourceInfo.ReadPermission | Boolean | O usuario actual ten privilexios para ler rexistros neste orixe de datos? Se non está configurado pola orixe de datos, devolve true. |
Nota
Información da fonte de datos volve verdade se non pode determinar se o usuario actual ten o permiso solicitado. O servidor comprobará de novo os permisos cando se realice a operación real e amósase un erro se non se permitiu. Neste momento, comprobar permisos con DataSourceInfo só é posible cando se usa Microsoft Dataverse.
Sintaxe DataSourceInfo
DataSourceInfo( DataSource, Information, ColumnName )
- DataSource: necesario. A orixe de datos a utilizar.
- Información – Obrigatorio. O tipo de información que desexa recuperar.
- ColumnName – Opcional. Para información a nivel de columna, o nome de columna como cadea. A columna Teléfono pasaríase como "Teléfono", incluídas as comiñas dobres. Para obter información a nivel orixe de datos, o ColumnName o argumento non se pode usar.
Orixe de datos información da columna
Podes usar Información da fonte de datos para obter información sobre unha columna particular dun orixe de datos.
| Argumento de información | Tipo de resultado | Descripción |
|---|---|---|
| DataSourceInfo.DisplayName | Cadea | Nome para mostrar da columna. Se non se define o nome de pantalla, devolve o nome da columna. |
| DataSourceInfo.MaxLength | Número | Número máximo de caracteres que pode conter a columna. Aplícase só ás columnas que conteñen cadeas. Se non se establece un máximo, devolve en branco. |
| DataSourceInfo.MaxValue | Número | Valor numérico máximo que pode conter unha columna. Aplícase só ás columnas que conteñen números. Se non se establece un máximo, devolve en branco. |
| DataSourceInfo.MinValue | Número | Valor numérico mínimo que pode conter unha columna. Aplícase só ás columnas que conteñen números. Se non se establece un mínimo, devolve en branco. |
| DataSourceInfo.Required | Booleano | Requírese un valor para esta columna? Se non está configurado pola orixe de datos, devolve false. |
Exemplos de DataSourceInfo
DataSourceInfo(Accounts, DataSourceInfo.DeletePermission)
Usado para Visible propiedade neste exemplo. Comproba se o usuario que iniciou sesión ten privilexios de eliminación de rexistros dentro da táboa de contas (determinado polos roles de seguranza que ten o usuario). Se o usuario ten permiso para eliminar os rexistros da conta, entón Información da fonte de datos volverá verdade e o comando estará visible. Se non, o comando non será visible para o usuario.
Confirmar función
A función Confirm mostra un cadro de diálogo na parte superior da pantalla actual. Ofrécense dous botóns: un botón de confirmación e un botón de cancelación, que predeterminan as versións localizadas de "Aceptar" e "Cancelar", respectivamente. O usuario debe confirmar ou cancelar antes de rexeitar a caixa de diálogo e a función volve. Ademais do botón de diálogo, tamén se pode seleccionar cancelar coa tecla Esc ou outros xestos específicos da plataforma.
O parámetro Message móstrase no corpo da caixa de diálogo. Se a mensaxe é moi longa, truncarase ou proporcionarase unha barra de desprazamento.
Use o parámetro OptionsRecord para especificar as opcións do cadro de diálogo. Non todas as opcións están dispoñibles en todas as plataformas e manéxanse co "mellor esforzo".
Nota
As opcións da táboa seguinte non están dispoñibles actualmente coas aplicacións de lenzo.
| Campo de opción | Descripción |
|---|---|
| ConfirmButton | O texto que se amosará no botón confirmar, substituíndo o texto "Aceptar" localizado por defecto. |
| CancelButton | O texto que se amosará no botón cancelar, substituíndo o texto "cancelar" localizado por defecto. |
| Título | Texto para mostrar como título da caixa de diálogo. Para amosar este texto pódese usar un tipo de letra máis grande e grosa que a fonte da mensaxe. Se este valor é moi longo, truncarase. |
| Subtítulo | Texto para mostrar como subtítulo da caixa de diálogo. Para amosar este texto pódese usar un tipo de letra máis grande e grosa que a fonte da mensaxe. Se este valor é moi longo, truncarase. |
Confirm devolve verdadeiro se se seleccionou o botón de confirmación; en caso contrario, falso.
Use a función Notify para amosar unha faixa na parte superior da aplicación que non precisa descartarse.
Nota
A función Notify non está dispoñible actualmente con aplicacións de lenzo.
Sintaxe
Confirm( Message [, OptionsRecord ] )
Message: Obrigatorio. Mensaxe para mostrar ao usuario.OptionsRecord: Opcional. Proporcione opcións avanzadas para o diálogo. Non todas as opcións están dispoñibles en todas as plataformas e manéxanse co mellor esforzo. Neste momento, nas aplicacións de lenzo, non se admite ningunha destas opcións.
Exemplos
Diálogo de confirmación sinxelo, que lle pide ao usuario que confirme a eliminación dun rexistro antes de que se elimine. A menos que o usuario seleccione Ok botón, o rexistro non se eliminará.
If( Confirm( "Are you sure?" ), Remove( ThisItem ) )
Mesmo diálogo que o do último exemplo, pero engade o texto do título.
If( Confirm( "Are you sure?", {Title: "Delete Confirmation"} ), Remove( ThisItem ) )
Mostra unha mensaxe como a función Notify fai, pero é modal e require que o usuario seleccione un botón para continuar. Uséo en situacións nas que é importante que o usuario confirme a mensaxe antes de continuar. Neste caso, o botón seleccionado non é importante.
Confirm( "There was a problem, please review your order." )
Engadir notificacións a unha aplicación xerada por modelos
Pódese mostrar unha notificación aos usuarios da aplicación chamando a Función de notificación.
Nota
NotificationType.Success non se admite actualmente e dará lugar a un tipo de notificación informativa.
Notify( "Model-driven app notification message" )
Outros exemplos
Iniciar un URL
Launch("https://www.bing.com");
Acceso 1: propiedade N
Self.Selected.Item.'Recurring Appointments'
Comprobar a propiedade dun rexistro relacionado
Self.Selected.Item.'Parent Account'.'Account Name'="parent"
Non se admiten funcións
O seguinte Power Fx Actualmente non se admiten funcións con comandos en aplicacións baseadas en modelos.
- Atrás()
- Limpar()
- Recoller ()
- Desactivar ()
- Activar()
- Exit()
- InvokeControl()
- Lingua()
- LoadData()
- Param()
- ReadNFC()
- RequestHide()
- Restablecer formulario()
- reverter()
- SaveData()
- ScanBarcode()
- Conxunto()
- Enviar formulario()
- UpdateContext()
- ViewForm()
Non se admiten enumeracións
- Aliñar
- AlignInContainer
- Tipo de código de barras
- BorderStyle
- Cor
- Dirección
- DisplayMode
- Tipo de letra
- FontWeight
- FormPattern
- GridStyle
- Posición da imaxe
- Rotación da imaxe
- LabelPosition
- Deseño
- LayoutAlignItems
- LayoutDirection
- LayoutJustifyContent
- Modo de deseño
- Desbordamento de deseño
- ListItemTemplate
- MapStyle
- Desbordamento
- PDFPasswordState
- PenMode
- Eliminar bandeiras
- Transición de pantalla
- TeamsTheme
- Formato de texto
- Modo Texto
- Posición do texto
- Temas
- Transición
- Aliñamento Vertical
- Modo de teclado virtual
- Zoom
Outras áreas non admitidas
- Aceleración
- App
- Compass
- Connection
- Ambiente
- Computador servidor
- Deseño
- Localización
- Tamaño da pantalla
- User
Consulte tamén
Comentarios
Enviar e ver os comentarios