Funcionament dels formularis d'aplicació de llenç

Afegiu tres tipus de controls a una aplicació del llenç per tal que l'usuari pugui navegar per un registre, visualitzar detalls sobre aquest registre i editar o crear un registre:

Activitat Control Descripció
Navegar per un registre Control de galeria Filtreu, ordeneu, cerqueu i desplaceu-vos pels registres d'una font de dades i seleccioneu un registre específic. Només es mostren uns quants camps de cada registre per mostrar diversos registres a la vegada, fins i tot en una pantalla petita.
Mostrar els detalls d'un registre Control Mostra el formulari Per a un únic registre, mostra diversos o tots els camps d'aquest registre.
Editar o crear un registre Control Edita el formulari Actualitzeu un o diversos camps en un únic registre (o creeu un registre a partir dels valors per defecte) i deseu els canvis a la font de dades subjacent.

Col·loqueu cada control en una pantalla diferent per fer-lo més fàcil de distingir:

Navegar, visualitzar i editar registres en tres pantalles.

Com es descriu en aquest tema, combineu aquests controls amb fórmules per crear l'experiència global de l'usuari.

Requisits previs

Explorar una aplicació generada

El Power Apps pot generar automàticament una aplicació basada en una font de dades que especifiqueu. Cada aplicació conté tres pantalles amb els controls que s'han descrit abans i les fórmules que els connecten. Executeu aquestes aplicacions "de fàbrica", personalitzeu-les per als vostres objectius específics o examineu la manera com funcionen per tal que pugueu aprendre conceptes útils que s'apliquin a les vostres pròpies aplicacions. A les seccions següents, inspeccioneu les pantalles, els controls i fórmules que formen l'aplicació generada.

Navegar per la pantalla

Navegar per la pantalla.

Aquesta pantalla inclou aquestes fórmules clau:

Control Comportament admès Fórmula
BrowseGallery1 Mostra els registres de la font de dades Actius. La propietat Elements de la galeria es defineix en una fórmula basada en la font de dades Actius.
ImageNewItem1 Mostra la pantalla Edita i crea amb cada camp definit com a valor per defecte per tal que l'usuari pugui crear fàcilment un registre. La propietat OnSelect de la imatge es defineix a aquesta fórmula:
NewForm( EditForm1 );
Navigate( EditScreen1, None )
NextArrow1 (a la galeria) Mostra la pantalla Detalls per visualitzar diversos o tots els camps del registre seleccionat actualment. La propietat OnSelect de la fletxa es defineix a aquesta fórmula:
Navigate( DetailScreen1, None )

El control principal d'aquesta pantalla, BrowseGallery1, abasta la major part de l'àrea de la pantalla. L'usuari pot desplaçar-se per la galeria per cercar un registre específic per mostrar més camps o per actualitzar.

Definiu la propietat Elements d'una galeria per mostrar-hi els registres d'una font de dades. Per exemple, definiu la propietat en Actius per mostrar els registres d'una font de dades d'aquest nom.

Nota

En una aplicació generada, Elements s'ha definit per defecte en una fórmula significativament més complicada per tal que l'usuari pugui ordenar i cercar registres. Aprendreu a crear la fórmula més endavant en aquest tema; la versió més simple és suficient per ara.

En lloc de cercar un registre per mostrar o editar, l'usuari pot crear un registre seleccionant el símbol "+" que hi ha a sobre de la galeria. Creeu aquest efecte afegint un control Imatge, que mostra un símbol "+" al mateix i ajusteu la propietat OnSelect a aquesta fórmula:
NewForm( EditForm1 ); Navigate( EditScreen1, None )

Aquesta fórmula obre la pantalla Edita i crea, que inclou un control Edita el formulari anomenat EditForm1. La fórmula també canvia aquest formulari al mode Nou, en el qual el formulari mostra els valors per defecte de la font de dades per tal que l'usuari pugui crear fàcilment un registre des de zero.

Per examinar qualsevol control que aparegui a BrowseGallery1, seleccioneu aquest control a la primera secció de la galeria, que serveix com a plantilla per a la resta de seccions. Per exemple, seleccioneu el control Etiqueta del mig a la vora esquerra:

Controls de navegació per a la pantalla

En aquest exemple, la propietat Text del control està definida a ThisItem.AssignedTo, que és un camp de la font de dades Actius. La propietat Text dels altres tres controls Etiqueta a la galeria es defineix com a fórmules semblants i cada control mostra un camp diferent a la font de dades.

Seleccioneu el control Forma (la fletxa) i confirmeu que la propietat OnSelect es defineixi en aquesta fórmula:
Navigate( DetailScreen1, None )

Si l'usuari troba un registre a BrowseGallery1, l'usuari pot seleccionar la fletxa del registre per mostrar més informació al respecte a DetailScreen1. En seleccionar una fletxa, l'usuari canvia el valor de la propietat Seleccionat de BrowseGallery1. En aquesta aplicació, aquesta propietat determina quin registre que apareix no només a DetailScreen1 sinó també, si l'usuari decideix actualitzar el registre, a la pantalla Edita i crea.

Pantalla de detalls

Controls de la pantalla de detalls

Aquesta pantalla inclou aquestes fórmules clau:

Control Comportament admès Fórmula
DetailForm1 Mostra un registre de la font de dades Actius Definiu la propietat DataSource en Actius.
DetailForm1 Determina el registre que es mostrarà. En una aplicació generada, mostra el registre que l'usuari ha seleccionat a la galeria. Definiu la propietat Element d'aquest control a aquest valor:
BrowseGallery1.Selected
Controls Targeta En un control Mostra el formulari, mostra un sol camp en un registre. Definiu la propietat DataField en el nom d'un camp, entre cometes dobles (per exemple, "Nom").
ImageBackArrow1 Quan l'usuari seleccioni aquest control, s'obre BrowseScreen1. Definiu la propietat OnSelect a aquesta fórmula:
Back()
ImageDelete1 Quan l'usuari seleccioni aquest control, suprimeix un registre. Definiu la propietat OnSelect a aquesta fórmula:
Remove( Assets, BrowseGallery1.Selected )
ImageEdit1 Quan l'usuari selecciona aquest control, s'obre la pantalla Edita i crea al registre actual. Definiu la propietat OnSelect a aquesta fórmula:
Navigate( EditScreen1, None )

A la part superior de la pantalla, hi ha tres imatges fora de DetailForm1 i actuen com a botons, orquestrant entre les tres pantalles de l'aplicació.

DetailForm1 domina aquesta pantalla i mostra el registre que l'usuari ha seleccionat a la galeria (perquè la propietat Element del formulari està definida com a BrowseGallery1.Selected). La propietat DataSource del formulari proporciona també metadades sobre la font de dades, com ara un nom de visualització amigable per a cada camp.

DetailForm1 conté diversos controls Targeta. Podeu seleccionar el mateix control Targeta o el control que conté per descobrir informació addicional.

Controls de targeta de detalls i targeta seleccionats a l'experiència de creació

La propietat DataField d'un control Targeta determina el camp en què es mostra la targeta. En aquest cas, la propietat es defineix com a AssetID. La targeta conté un control Etiqueta per al qual la propietat Text està definida com a Parent.Default. Aquest control Mostra el valor Per defecte de la targeta, que es defineix per mitjà de la propietat DataField.

En una aplicació generada, els controls Targeta estan blocats per defecte. Quan una targeta està bloquejada, no es poden modificar algunes de les propietats, com ara DataField, i la barra de fórmules no està disponible per a aquestes propietats. Aquesta restricció ajuda a assegurar-vos que les personalitzacions no trenquen la funcionalitat bàsica de l'aplicació generada. No obstant, podeu canviar algunes de les propietats d'una targeta i els seus controls a la subfinestra de la dreta:

Detalls de la pantalla amb la subfinestra d'opcions oberta

A la subfinestra de la dreta, podeu seleccionar els camps que voleu mostrar i en quin tipus de control es mostrarà cada camp.

Pantalla Edita/crea

Controls d'edició de la pantalla.

Aquesta pantalla inclou aquestes fórmules clau:

Control Comportament admès Fórmula
EditForm1 Mostra un registre de la font de dades Actius. Definiu la propietat DataSource en Actius.
EditForm1 Determina el registre que es mostrarà. En una aplicació generada, mostra el registre que l'usuari ha seleccionat a BrowseScreen1. Definiu la propietat Element a aquest valor:
BrowseGallery1.Selected
Controls Targeta En un control Edita el formulari, proporciona controls per tal que l'usuari pugui editar un o diversos camps d'un registre. Definiu la propietat DataField en el nom d'un camp, entre cometes dobles (per exemple, "Nom").
ImageCancel1 Quan l'usuari selecciona aquest control, descarta els canvis en curs i obre la pantalla Detalls. Definiu la propietat OnSelect a aquesta fórmula:
ResetForm( EditForm1 ); Back()
ImageAccept1 Quan l'usuari seleccioni aquest control, envia els canvis a la font de dades. Definiu la propietat OnSelect a aquesta fórmula:
SubmitForm( EditForm1 )
EditForm1 Si s'accepten els canvis, torna a la pantalla anterior. Definiu la propietat OnSuccess a aquesta fórmula:
Back()
EditForm1 Si no s'accepten canvis, es conserven a la pantalla actual per tal que l'usuari pugui corregir qualsevol problema i tornar a provar d'enviar-los. Deixeu la propietat OnFailure en blanc.
LblFormError1 Si no s'accepten canvis, mostra un missatge d'error. Definiu la propietat Text a aquest valor:
EditForm1.Error

Com a la pantalla Detalls, un control de formulari, anomenat EditForm1, domina la pantalla Edita i crea. A més, la propietat Element d'EditForm1 està definida com a BrowseGallery1.Selected, de manera que el formulari mostra el registre que l'usuari ha seleccionat a BrowseScreen1. Mentre la pantalla Detalls mostra cada camp com a només de lectura, l'usuari pot actualitzar el valor d'un o diversos camps mitjançant els controls a EditForm1. També utilitza la propietat de DataSource per accedir a les metadades sobre aquesta font de dades, com ara el nom de visualització de cada camp i la ubicació on s'han de desar els canvis.

Si l'usuari selecciona la icona "X" per cancel·lar una actualització, la funció ResetForm descarta els canvis que no s'han desat i la funció Back obre la pantalla Detalls. Tant la pantalla Detalls com la pantalla Edita i crea mostren el mateix registre fins que l'usuari en selecciona un de diferent a BrowseScreen1. Els camps d'aquest registre es conserven en els valors que s'han desat més recentment, no els canvis que ha fet l'usuari i després s'abandonen.

Si l'usuari canvia un o diversos valors al formulari i, a continuació, selecciona la icona de la "selecció de marca", la funció SubmitForm envia els canvis de l'usuari a la font de dades.

  • Si els canvis s'han desat correctament, s'executa la fórmula OnSuccess del formulari i la funció Back() obre la pantalla de detalls per mostrar el registre actualitzat.
  • Si els canvis no es desen correctament, s'executa la fórmula OnFailure del formulari , però no canvia res perquè està en blanc. La pantalla Edita i crea segueix oberta per tal que l'usuari pugui cancel·lar els canvis o corregir l'error. LblFormError1 mostra un missatge d'error fàcil d'entendre, al qual es defineix la propietat Error del formulari.

Igual que amb un control Mostra el formulari, un control Edita el formulari conté controls Targeta, que contenen altres controls que mostren diferents camps d'un registre:

Controls d'edició de targeta i targeta seleccionats a l'experiència de creació

A la imatge anterior, la targeta seleccionada mostra el camp AssetID i conté un control Entrada de text per tal que l'usuari pugui editar el valor d'aquest camp. (En canvi, la pantalla de detall mostra el mateix camp en un control Etiqueta, que és només de lectura.) El control Entrada de text té una propietat Per defecte, que està definida com a Parent.Default. Si l'usuari està creant un registre en comptes d'editar-ne un, aquest control mostrarà un valor inicial que l'usuari pot canviar per al registre nou.

A la dreta de la subfinestra, podeu mostrar o amagar cada targeta, reorganitzar-les o configurar-les per mostrar els camps en diferents tipus de controls.

Pantalla d'edició amb la subfinestra d'opcions oberta

Creació d'una aplicació des de zero

En comprendre com el Power Apps genera una aplicació, podeu crear-ne una de vosaltres que utilitzi els mateixos blocs de construcció i les fórmules que s'han esmentat abans en aquest tema.

Identificar les dades de prova

Per treure el màxim profit d'aquest tema, comenceu amb una font de dades amb la qual pugueu experimentar. Hauria de contenir dades de prova que es puguin llegir i actualitzar sense preocupar-se.

Nota

Si utilitzeu una llista creada amb el Microsoft Lists, una biblioteca del SharePoint o una taula de l'Excel que conté els noms de columna amb espais com a font de dades, el Power Apps substituirà els espais amb "_x0020_". Per exemple, "Nom de la columna" al SharePoint o l'Excel es mostrarà com a "Nom_x0020_de_x0020_la_x0020_columna" al Power Apps quan es mostra a la disposició de dades o s'utilitza en una fórmula.

Per seguir la resta d'aquest tema exactament, creeu una llista anomenada "Gelat" que contingui aquestes dades:

Llista de gelats.

  • Creeu una aplicació en blanc, per a telèfons i connecteu-la a la vostra font de dades.

    Nota

    Les aplicacions per a tauletes són molt semblants, però pot ser que vulgueu una disposició de pantalla diferent per aprofitar l'espai addicional de la pantalla.

    Els exemples de la resta del tema es basen en un font de dades anomenada Gelat.

Navegar pels registres

Obteniu un fragment d'informació breu d'un registre cercant-lo en una galeria d'una pantalla de navegació.

  1. Afegiu una galeria Vertical i canvieu la disposició a només Títol.

    Afegir una galeria vertical.

  2. Definiu la propietat Elements de la galeria a Gelat.

  3. Definiu la propietat Text de la primera etiqueta a la galeria a ThisItem.Title si està definida a una altra cosa.

    L'etiqueta mostra ara el valor del camp Títol de cada registre.

    Etiqueta actualitzada

  4. Canvieu la mida de la galeria per omplir la pantalla i definiu-ne la propietat TemplateSize a 60.

    La pantalla s'assembla a aquest exemple, que mostra tots els registres de la font de dades:

    Galeria connectada a la font de dades de gelats

Mostra els detalls

Si la galeria no mostra la informació que voleu, seleccioneu la fletxa d'un registre per obrir la pantalla de detalls. Un control Mostra el formulari a la pantalla mostra més camps, possiblement tots, del registre que heu seleccionat.

El control Mostra el formulari utilitza dues propietats per mostrar el registre:

  • Propietat DataSource. Nom de la font de dades que conté el registre. Aquesta propietat emplena la subfinestra dreta amb els camps i determina el nom de visualització i el tipus de dades (cadena, número, data, etc.) de cada camp.
  • Propietat Element. El registre per mostrar. Aquesta propietat està sovint connectada a la propietat Seleccionat del control Galeria per tal que l'usuari pugui seleccionar un registre al control Galeria i després desglossar el registre.

Quan es defineix la propietat DataSource, podeu afegir i suprimir camps a través de la subfinestra de la dreta i canviar la manera com es mostren.

En aquesta pantalla, els usuaris no poden canviar intencionalment o accidentalment cap valor del registre. El control Mostra el formulari és un control només de lectura, per la qual cosa no modificarà cap registre.

Per afegir un control Mostra el formulari:

  1. Afegiu una pantalla i, a continuació, afegiu un control Mostra el formulari
  2. Definiu la propietat DataSource del control del formulari a "Gelat".

A la subfinestra de la dreta, podeu seleccionar els camps que es mostraran a la pantalla i quin tipus de targeta voleu mostrar per a cada camp. A mesura que feu canvis a la subfinestra de la dreta, la propietat DataField a cada control Targeta es defineix en el camp amb el qual l'usuari interactuarà. La vostra pantalla s'hauria d'assemblar a aquest exemple:

Nova pantalla de gelat

Finalment, necessitem connectar el control Mostra el formulari al control Galeria per tal que puguem veure els detalls d'un registre concret. Tan bon punt completem la propietat Element, el primer registre de la galeria apareixerà al nostre formulari.

  • Definiu la propietat Element del control Mostra el formulari a Gallery1.Selected.

    Els detalls de l'element seleccionat es mostren al formulari.

    Mostrar el formulari per a la font de dades de gelats, connectat al control de galeria.

Fantàstic! Ara ens dirigim a la navegació: com un usuari obre la pantalla de detalls des de la pantalla de la galeria i obre la pantalla de la galeria des de la pantalla de detalls.

  • Afegiu un control Botó a la pantalla, definiu la propietat Text per mostrar Enrere i definiu la propietat OnSelect a Back().

    Aquesta fórmula torna l'usuari a la galeria quan acaba de visualitzar-ne els detalls.

    Mostrar el formulari per a la font de dades de gelats amb el botó Enrere.

Ara, tornem al control Galeria i afegim una mica de navegació a la nostra pantalla de detall.

  1. Canvieu a la primera pantalla, que conté el control Galeria i seleccioneu la fletxa en el primer element de la galeria.

  2. Definiu la propietat OnSelect de la forma a aquesta fórmula:
    Navigate( Screen2, None )

    Mostrar el formulari per a la font de dades de gelats amb el botó enrere amb actualització de navegació.

  3. Premeu F5 i, a continuació, seleccioneu una fletxa a la galeria per mostrar els detalls d'un element.

  4. Seleccioneu el botó Enrere per tornar a la galeria de productes i, a continuació, premeu ESC.

Edició dels detalls

Finalment, la nostra última activitat principal és canviar el contingut d'un registre, que els usuaris poden fer en un control Edita el formulari.

El control Edita el formulari utilitza dues propietats per mostrar i editar el registre:

  • Propietat DataSource. Nom de la font de dades que conté el registre. Com amb el control Mostra el formulari, aquesta propietat emplena la subfinestra dreta amb els camps i determina el nom de visualització i el tipus de dades (cadena, número, data, etc.) de cada camp. Aquesta propietat també determina si cada valor de camp és vàlid abans d'enviar-lo a les font de dades subjacents.
  • Propietat Element. El registre a editar, que sovint està connectat a la propietat Seleccionat del control Galeria. D'aquesta manera, podeu seleccionar un registre del control Galeria , mostrar-lo a la pantalla de detalls i editar-lo a la pantalla Edita i crea.

Per afegir un control Edita el formulari:

  1. Afegiu una pantalla, afegiu-hi un control Edita el formulari i, a continuació, definiu la propietat DataSource del formulari a "Gelat".
  2. Definiu la propietat Element en Gallery1.Selected.

Ara podeu seleccionar els camps que voleu que es mostrin a la pantalla. També podeu seleccionar el tipus de targeta que voleu mostrar per a cada camp. A mesura que feu canvis a la subfinestra de la dreta, la propietat DataField a cada control Targeta es defineix en el camp amb el qual l'usuari interactuarà. La vostra pantalla s'hauria d'assemblar a aquest exemple:

Mostrar el formulari per a la font de dades de gelats.

Aquestes dues propietats són les mateixes que les propietats del control Mostra el formulari. I només amb aquestes, es poden mostrar els detalls d'un registre.

El control Edita el formulari va més enllà oferint la funció SubmitForm per escriure els canvis necessaris a la font de dades. L'utilitzeu amb un botó o un control d'imatge per desar els canvis d'un usuari.

  • Afegiu un control Botó, definiu la propietat Text per mostrar Enrere i definiu la propietat OnSelect a aquesta fórmula:
    SubmitForm( Form1 )

Editar el formulari per a la font de dades de gelats.

Per afegir la navegació des d'aquesta pantalla:

  1. Afegiu un altre control Botó, definiu la propietat Text per mostrar Cancel·la i definiu la propietat OnSelect a aquesta fórmula:
    ResetForm( Form1 ); Back()

    En aquesta fórmula es descarta qualsevol edició no desada i s'obre la pantalla anterior.

    Pantalla actualitzada

  2. Definiu la propietat OnSuccess del formulari a Back().

    Quan les actualitzacions es desen correctament, la pantalla anterior (en aquest cas, la pantalla de detalls) s'obre automàticament.

    Editar el formulari amb la regla "OnSuccess" afegida

  3. A la pantalla Visualització, afegiu un botó, definiu la propietat Text per mostrar Edita i definiu la propietat OnSelect a aquesta fórmula:
    Navigate( Screen3, None )

    S'ha actualitzat la propietat de text.

Heu creat una aplicació bàsica amb tres pantalles per visualitzar i introduir dades. Per provar-la, mostreu la pantalla de la galeria i, a continuació, premeu F5 (o seleccioneu el botó "Visualització prèvia" prop de la fletxa endavant que hi ha a a la cantonada superior esquerra de la pantalla). El punt de color rosa indica on l'usuari fa clic o toca la pantalla en cada pas.

Provar l'aplicació de gelats.

Crear un registre

L'usuari interactua amb el mateix formulari Edita per actualitzar i crear registres. Quan l'usuari vulgui crear un registre, la funció NewForm canvia el formulari al mode Nou.

Quan el formulari està en el mode Nou, el valor de cada camp es defineix al valor per defecte de la font de dades. El registre que es proporciona a la propietat Element del formulari s'ignora.

Quan l'usuari està preparat per desar el registre nou, SubmitForm s'executa. Quan el formulari s'hagi enviat correctament, el formulari torna a EditMode.

A la primera pantalla, afegireu un botó Nou:

  1. A la pantalla amb la galeria, afegiu un control Botó.

  2. Definiu la propietat Text del botó a Nou i la propietat OnSelect en aquesta fórmula:
    NewForm( Form1 ); Navigate( Screen3, None )

    Aquesta fórmula canvia el control Edita el formulari a Screen3 al mode Nou i obre la pantalla de manera que l'usuari el pugui emplenar.

S'ha actualitzat el formulari d'edició.

Quan s'obre la pantalla Edita i crea, el formulari està buit i està preparat perquè l'usuari hi afegeixi un element. Quan l'usuari selecciona el botó Desa, la funció SubmitForm garanteix que es crea un registre en comptes d'actualitzar-se. Si l'usuari selecciona el botó Cancel·la, la funció ResetForm canvia el formulari al mode Edita i la funció Back obre la pantalla per navegar per la galeria.

Suprimir un registre

  1. A la pantalla Mostra, afegiu un botó i definiu la propietat Text per mostrar Suprimeix.

  2. Definiu la propietat OnSelect del botó a aquesta fórmula:
    Remove( 'Gelat', Gallery1.Selected ); Back()

    Suprimir un registre.

Gestió d'errors

En aquesta aplicació, un error es produeix quan el valor d'un camp no és vàlid, un camp obligatori està en blanc, us desconnecteu de la xarxa o apareix qualsevol altre problema.

Si SubmitForm falla per qualsevol raó, la propietat Error del control Edita el formulari conté un missatge d'error per mostrar a l'usuari. Amb aquesta informació, l'usuari hauria de poder corregir el problema i tornar a enviar el canvi o pot cancel·lar l'actualització.

  1. A la pantalla Edita i crea, afegiu un control Etiqueta i desplaceu-lo just a sota del botó Desa. Qualsevol error serà fàcil de veure després que l'usuari seleccioni aquest control per desar-hi els canvis.

  2. Definiu la propietat Text del control Etiqueta per mostrar Form1.Error.

    Mostra el formulari amb el botó "Edita" afegit

En una aplicació que el Power Apps genera a partir de les dades, la propietat AutoHeight d'aquest control es defineix com a certa de manera que no es consumeixi cap espai si no es produeix cap error. Les propietats Alçada i Y del control Edita el formulari també s'ajusten dinàmicament al creixement del control en cas que es produeixi un error. Per obtenir més informació, genereu una aplicació a partir de les dades existents i inspeccioneu aquestes propietats. El control de quadre de text per als errors és molt breu quan no s'ha produït cap error, potser haureu d'obrir la visualització Avançat (disponible a la pestanya Visualització) per seleccionar aquest control.

Aplicació del formulari d'edició de dades amb el control de text d'error seleccionat

Aplicació del formulari d'edició de dades amb el control de formulari seleccionat

Actualitza les dades

La font de dades s'actualitza cada vegada que l'usuari obre l'aplicació, però l'usuari pot voler actualitzar els registres a la galeria sense tancar l'aplicació. Afegiu un botó Actualitza per tal que l'usuari pugui seleccionar actualitzar les dades manualment:

  1. A la pantalla amb el control Galeria, afegiu un control Botó i definiu la propietat Text per mostrar Actualització.

  2. Definiu la propietat OnSelect d'aquest control a aquesta fórmula:
    Refresh( 'Gelat' )

    Actualitzar la font de dades.

A l'aplicació que ha generat el Power Apps a partir de les dades, ens hem oblidat de tractar dos controls a la part superior de la pantalla de navegació. Mitjançant l'ús d'aquests controls, l'usuari pot cercar un o diversos registres, ordenar la llista de registres en ordre ascendent o descendent o tots dos.

Controls d'ordenació i cerca a la pantalla de navegació

Quan l'usuari selecciona el botó d'ordenació, el criteri d'ordenació de la galeria s'inverteix. Per crear aquest comportament, utilitzem una variable de context per fer un seguiment de la direcció en la qual s'ordena la galeria. Quan l'usuari selecciona el botó, la variable s'actualitza i la direcció s'inverteix. La propietat OnSelect del botó d'ordenació es defineix en aquesta fórmula: UpdateContext( {SortDescending1: ! SortDescending1} )

La funció UpdateContext crea la variable de context SortDescending1 si encara no existeix. La funció llegirà el valor de la variable i la posarà en el contrari lògic mitjançant l'ús de l'operador ! . Si el valor és cert, es converteix en fals. Si el valor és fals, es converteix en cert.

La fórmula per a la propietat Elements del control Galeria utilitza aquesta variable de context, juntament amb el text del control TextSearchBox1:

Sort( 
    If( IsBlank(TextSearchBox1.Text),
        Assets,
        Filter( Assets, TextSearchBox1.Text in Text(ApproverEmail) ) 
    ),
    ApproverEmail,
    If(SortDescending1, Descending, Ascending) 
)

Desglossem-ho:

  • A l'exterior, tenim la funció Sort, que té tres arguments: una taula, un camp sobre el qual ordenar i la direcció en la qual s'ha d'ordenar.

    • La direcció d'ordenació es pren a partir de la variable de context que alterna quan l'usuari selecciona el control ImageSortUpDown1. El valor cert/fals es tradueix a les constants Descendent i Ascendent.
    • El camp sobre el qual ordenar està fixat en ApproverEmail. Si canvieu els camps que es mostren a la galeria, també haureu de canviar aquest argument.
  • A l'interior, tenim la funció Filter, que pren una taula com a argument i una expressió per avaluar-la per a cada registre.

    • La taula és la font de dades crua Actius, que és el punt inicial abans del filtratge o de l'ordenació.
    • L'expressió cercarà una instància de la cadena a TextSearchBox1 dins del camp ApproverEmail. Com sempre, si canvieu els camps que es mostren a la galeria, també haureu d'actualitzar aquest argument.
    • Si TextSearchBox1 està buit, l'usuari vol mostrar tots els registres i s'anul·la la funció Filter.

Això és només un exemple; podeu crear la vostra pròpia fórmula per a la propietat Elements, en funció de les necessitats de l'aplicació, mitjançant la composició de Filter, Sort i altres funcions i operadors juntament.

Disseny de la pantalla

Fins al moment, no hem discutit altres maneres de distribuir controls entre pantalles. Això és així perquè teniu moltes opcions i la millor selecció depèn de les necessitats de l'aplicació específica.

Com que l'espai a les pantalles dels telèfons és tan limitat, probablement voldreu navegar, visualitzar i editar/crear en diferents pantalles. En aquest tema, les funcions Navigate i Back obren cada pantalla.

En una tauleta, podeu navegar, visualitzar i editar/crear en dues o fins i tot una pantalla. Per a aquest últim cas, es necessitarà la funció Navigate o Back.

Si l'usuari està treballant a la mateixa pantalla, heu d'anar amb compte que l'usuari no pugui canviar la selecció a la Galeria i potencialment perdre edicions al control Edita el formulari. Per impedir que l'usuari seleccioni un registre diferent quan els canvis en un altre registre encara no s'han desat, definiu la propietat Inhabilitat de la galeria a aquesta fórmula:
EditForm.Unsaved

Nota

Ens podeu dir quines són les vostres preferències d'idioma per a la documentació? Responeu una breu enquesta. (tingueu en compte que l'idioma de l'enquesta és l'anglès)

Trigareu uns set minuts a completar l'enquesta. No es recopilen dades personals (declaració de privadesa).