Entendre les variables de les aplicacions de llenç

Si heu utilitzat una altra eina de programació, com ara Visual Basic o JavaScript, us preguntareu: On són les variables? El Power Apps és una mica diferent i requereix un enfocament diferent. En lloc de cercar una variable quan creeu una aplicació del llenç, pregunteu-vos: Què faria a l'Excel?

En altres eines, pot ser que hàgiu efectuat explícitament un càlcul i s'emmagatzemi el resultat en una variable. No obstant, el Power Apps i l'Excel tornen a calcular automàticament les fórmules a mesura que canvia la informació d'entrada, de manera que normalment no cal que creeu i actualitzeu variables. Prenent aquest enfocament sempre que sigui possible, podeu crear, entendre i mantenir més fàcilment l'aplicació.

En alguns casos, haureu d'utilitzar variables al Power Apps, que estén al model de l'Excel afegint fórmules de comportament. Aquestes fórmules s'executen quan, per exemple, un usuari selecciona un botó. Dins d'una fórmula de comportament, sovint és útil definir una variable que s'ha d'utilitzar en altres fórmules.

En general, eviteu l'ús de variables. Però, de vegades, només una variable pot permetre l'experiència que voleu. Les variables es creen implícitament i s'escriuen quan apareixen en funcions que defineixen els seus valors.

Traduir l'Excel al Power Apps

Excel

Revisem com funciona l'Excel. Una cel·la pot contenir un valor, com ara un número o una cadena, o una fórmula que es basa en els valors d'altres cel·les. Quan l'usuari introdueix un valor diferent dins d'una cel·la, l'Excel torna a calcular les fórmules que depenen del valor nou. No heu de fer cap programació per habilitar aquest comportament.

A l'exemple següent, la cel·la A3 es defineix a la fórmula A1+A2. Si A1 o A2 canvia, A3 es torna a calcular automàticament per reflectir el canvi. Aquest comportament no requereix cap codi a part de la fórmula en si.

Animació de tornar a calcular la suma de dos números a l'Excel.

L'Excel no té variables. El valor d'una cel·la que conté una fórmula canvia en funció de l'entrada, però no hi ha manera de recordar el resultat d'una fórmula i emmagatzemar-lo en una cel·la o en qualsevol altre lloc. Si canvieu el valor d'una cel·la, el full de càlcul sencer pot canviar i tots els valors calculats prèviament es perdran. Un usuari de l'Excel pot copiar i enganxar cel·les, però això està sota el control manual de l'usuari i no és possible amb fórmules.

Power Apps

Les aplicacions que creeu en el Power Apps es comporten molt com a l'Excel. En lloc d'actualitzar les cel·les, podeu afegir controls allà on vulgueu en una pantalla i anomenar-los per utilitzar-los en fórmules.

Per exemple, podeu reproduir el comportament de l'Excel en una aplicació mitjançant l'addició d'un control Etiqueta, anomenat Label1 i dos controls Entrada de text, anomenats TextInput1 i TextInput2. Si, a continuació, definiu la propietat Text de Label1 a TextInput1+TextInput2, sempre mostrarà la suma dels números a TextInput1 i TextInput2 automàticament.

Càlcul de la suma de dos números al Power Apps

Heu de tenir en compte que el control Label1 se selecciona i que mostra la seva fórmula Text a la barra de fórmules a la part superior de la pantalla. Aquí trobem la fórmula TextInput1+TextInput2. Aquesta fórmula crea una dependència entre aquests controls, de la mateixa forma que es creen dependències entre les cel·les d'un llibre de treball de l'Excel. Canviem el valor de TextInput1:

Animació del càlcul de la suma de dos números al Power Apps

La fórmula per a Label1 s'ha tornat a calcular automàticament i mostra el valor nou.

Al Power Apps, podeu utilitzar fórmules per determinar no només el valor principal d'un control, sinó també les propietats com el format. En el següent exemple, una fórmula per a la propietat Color de l'etiqueta mostrarà automàticament els valors negatius en vermell. La funció If ha de resultar familiar de l'Excel:

If( Value(Label1.Text) < 0, Red, Black )

Animació de format condicional.

Podeu utilitzar fórmules per a una gran varietat d'escenaris:

  • Utilitzant el GPS del dispositiu, un control de mapa pot mostrar la ubicació actual utilitzant una fórmula que utilitzi Location.Latitude i Location.Longitude. A mesura que us moveu, el mapa automàticament seguirà la vostra ubicació.
  • Altres usuaris poden actualitzar les fonts de dades. Per exemple, altres usuaris de l'equip poden actualitzar els elements d'una llista. En actualitzar una font de dades, les fórmules dependents es tornen a calcular automàticament per reflectir les dades actualitzades. Per ampliar l'exemple, podeu definir la propietat Elements d'una galeria a la fórmula Filter( SharePointList ), que mostrarà automàticament el conjunt de registres acabats de filtrar.

Avantatges

L'ús de fórmules per crear aplicacions té molts avantatges:

  • Si coneixeu l'Excel, ja coneixeu el Power Apps. El llenguatge de models i fórmules és el mateix.
  • Si heu utilitzat altres eines de programació, penseu en la quantitat de codi necessària per aconseguir aquests exemples. Al Visual Basic, heu d'escriure un controlador d'esdeveniments per a l'esdeveniment de canvi en cada control d'entrada de text. El codi per dur a terme el càlcul en cadascun és redundant i podria perdre la sincronització, o hauríeu d'escriure una subrutina comuna. Al Power Apps, ho heu aconseguit tot amb una única fórmula d'una sola línia.
  • Per entendre d'on ve el text de Label1, sabeu exactament on voleu cercar: la fórmula a la propietat Text. No hi ha cap altra manera d'afectar el text d'aquest control. En una eina de programació tradicional, qualsevol controlador d'esdeveniments o subrutina podria canviar el valor de l'etiqueta, des de qualsevol part del programa. Això pot dificultar fer un seguiment de quan i on s'ha canviat una variable.
  • Si l'usuari canvia un control lliscant i després canvia d'opinió, pot canviar el control lliscant al seu valor original. I és com si res no hagués canviat mai: l'aplicació mostra els mateixos valors de control que abans. No hi ha ramificacions per a l'experimentació i preguntar "i si," igual que no n'hi ha a l'Excel.

En general, si podeu aconseguir un efecte mitjançant una fórmula, serà millor. Deixeu que el motor de fórmules del Power Apps funcioni per a vós.

Saber quan utilitzar variables

Canviem la nostra senzilla calculadora per poder funcionar com una màquina de sumar antiga, amb un total d'execució. Si seleccioneu un botó Afegeix, haureu d'afegir un número al total d'execució. Si seleccioneu un botó Esborra, restablireu el total d'execució a zero.

Visualització Descripció
Aplicació amb un control d'entrada de text, una etiqueta i dos botons. Quan s'inicia l'aplicació, el total d'execució és 0.

El punt vermell representa el dit de l'usuari al quadre d'entrada de text, on l'usuari introdueix 77.
El control d'entrada de text conté 77 i el botó Afegeix es manté pressionat. L'usuari selecciona el botó Afegeix.
El total és 77 i s'hi afegeixen 77 més. 77 s'afegeix al total d'execució.

L'usuari selecciona de nou el botó Afegeix.
El total és 154 abans que s'esborri. 77 s'afegirà una altra vegada al total d'execució i donarà com a resultat 154.

L'usuari selecciona el botó Esborra.
El total s'esborra. El total d'execució es restableix a 0.

La nostra màquina de sumar utilitza una cosa que no existeix a l'Excel: un botó. En aquesta aplicació, no podeu utilitzar només fórmules per calcular el total que s'està executant, ja que el seu valor depèn d'una sèrie d'accions que l'usuari realitza. En lloc d'això, el nostre total d'execució s'ha d'enregistrar i actualitzar manualment. La majoria de l'eina de programació emmagatzemen aquesta informació en una variable.

De vegades, necessitareu una variable perquè l'aplicació es comporti la manera que vulgueu. Però l'enfocament té inconvenients:

  • Heu d'actualitzar manualment el total d'execució. El càlcul automàtic no ho farà per vós.
  • El total d'execució ja no es pot calcular segons els valors d'altres controls. Depèn de quantes vegades l'usuari ha seleccionat el botó Afegeix i quin valor tenia el control d'entrada de text cada vegada. L'usuari ha introduït 77 i ha seleccionat Afegeix dues vegades o ha especificat 24 i 130 per a cadascuna de les sumes? No podeu dir la diferència després que el total hagi assolit 154.
  • Els canvis en el total poden provenir de diferents camins. En aquest exemple, els botons Afegeix i Esborra poden actualitzar el total. Si l'aplicació no es comporta de la manera que espereu, quin botó està causant el problema?

Utilitzar una variable global

Per crear la nostra màquina de sumar, és necessari que hi hagi una variable per conservar el total d'execució. Les variables més simples d'utilitzar al Power Apps són les variables globals.

Com funcionen les variables globals:

  • Definiu el valor de la variable global amb la funció Set. Set( MyVar, 1 ) defineix la variable global MyVar al valor 1.
  • La variable global s'utilitza per fer referència al nom utilitzat amb la funció Set. En aquest cas, MyVar retornarà 1.
  • Les variables globals poden tenir un valor, incloent-hi cadenes, números, registres i taules.

Reconstruïm la nostra màquina de sumar mitjançant una variable global:

  1. Afegiu un control d'entrada de text, anomenat TextInput1 i dos botons, anomenats Button1 i Button2.

  2. Definiu la propietat Text de Button1 a "Afegeix" i definiu la propietat Text de Button2 a "Esborra".

  3. Per actualitzar el total d'execució cada vegada que un usuari selecciona el botó Afegeix, definiu la propietat OnSelect en aquesta fórmula:

    Set( RunningTotal, RunningTotal + TextInput1 )

    La mera existència d'aquesta fórmula estableix RunningTotal com a variable global que conté un nombre a causa de l'operador +. Podeu fer referència a RunningTotal en qualsevol part de l'aplicació. Sempre que l'usuari obri aquesta aplicació, RunningTotal té un valor inicial en blanc.

    La primera vegada que un usuari selecciona el botó Afegeix i executa Set, RunningTotal es defineix amb el valor RunningTotal + TextInput1.

    Propietat OnSelect del botó Afegeix definida a la funció Defineix.

  4. Per actualitzar el total d'execució a 0 cada vegada que un usuari selecciona el botó Esborra, definiu la propietat OnSelect en aquesta fórmula:

    Set( RunningTotal, 0 )

    Propietat OnSelect del botó Esborra definida a la funció Defineix.

  5. Afegiu un control Etiqueta i definiu-ne la propietat Text a RunningTotal.

    Aquesta fórmula es torna a calcular automàticament i mostrarà a l'usuari el valor de RunningTotal quan canviï en funció dels botons que selecciona l'usuari.

    Propietat de text de l'etiqueta definida al nom de la variable.

  6. Previsualitzeu l'aplicació i tenim la nostra màquina de sumar, tal com s'ha descrit anteriorment. Introduïu un número al quadre de text i premeu el botó Afegeix unes quantes vegades. Quan estigueu a punt, torneu a l'experiència de creació mitjançant la tecla Esc.

    El control d'entrada de text conté un valor i l'etiqueta conté el total d'execució.

  7. Per mostrar el valor de la variable global, fes una de les accions següents:

    • Si utilitzeu la versió de previsualització de, seleccioneu Power Apps Studio Variables al menú de creació d'aplicacions.

      Menú de variables i col·leccions.

    • Si utilitzeu la versió clàssica de Power Apps Studio, seleccioneu el menú Fitxer i seleccioneu Variables a la subfinestra esquerra.

  8. Per mostrar tots els llocs on es defineix i s'utilitza la variable, seleccioneu-la a Variables globals.

    Llista d'ubicacions on s'utilitza la variable.

Tipus de variables

El Power Apps té tres tipus de variables:

Tipus de variables Scope Descripció Funcions que estableixen
Variables globals App Més senzilles d'utilitzar. Conté un número, una cadena de text, un booleà, un registre, una taula, etc. als quals es pot fer referència des de qualsevol part de l'aplicació. Defineix
Variables de context Pantalla Ideals per passar valors a una pantalla, igual que els paràmetres d'un procediment en altres llenguatges. Només s'hi pot fer referència en una pantalla. UpdateContext
Navega
Col·leccions App Conté una taula a la qual es pot fer referència des de qualsevol part de l'aplicació. Permet modificar el contingut de la taula en comptes de definir-la com un conjunt. Es pot desar al dispositiu local per utilitzar-se més endavant. Collect
ClearCollect

Crear i suprimir variables

Totes les variables es creen implícitament quan apareixen en una funció Set, UpdateContext, Navigate, Collect o ClearCollect. Per declarar una variable i el seu tipus, només cal que la inclogueu en qualsevol d'aquestes funcions a qualsevol part de l'aplicació. Cap d'aquestes funcions crea variables; només omplen els valors de les variables. No declareu explícitament les variables com podríeu en una altra eina de programació i tots els tipus són implícits.

Per exemple, pot ser que tingueu un control de botó amb una fórmula OnSelect igual a Set( X, 1 ). Aquesta fórmula defineix X com una variable amb un tipus de número. Podeu utilitzar X a les fórmules com a número i aquesta variable té un valor en blanc després d'obrir l'aplicació però abans de seleccionar el botó. Quan seleccioneu el botó, donareu a X el valor 1.

Si afegíssiu un altre botó i definíssiu la propietat OnSelect a Set( X, "Hola" ), es produiria un error perquè el tipus (cadena de text) no coincideix amb el tipus al Set anterior (nombre). Totes les definicions implícites de la variable han de coincidir en tipus. Una vegada més, tot això ha succeït perquè heu esmentat X en fórmules, no perquè cap d'aquestes fórmules s'executi en realitat.

Suprimiu una variable suprimint-ne totes les funcions Set, UpdateContext, Navigate, Collect o ClearCollect que estableixen implícitament la variable. Sense aquestes funcions, la variable no existeix. També heu de suprimir qualsevol referència a la variable perquè causarà un error.

Vida de les variables i valor inicial

Totes les variables es mantenen a la memòria mentre s'executa l'aplicació. Després de tancar l'aplicació, els valors que les variables contenien es perden.

Podeu emmagatzemar el contingut d'una variable en un font de dades mitjançant les funcions Patch o Collect. També podeu emmagatzemar valors en col·leccions en el dispositiu local mitjançant la funció SaveData.

Quan l'usuari obre l'aplicació, totes les variables tenen un valor inicial en blanc.

Llegir variables

Utilitzeu el nom de la variable per llegir-ne el valor. Per exemple, podeu definir una variable amb aquesta fórmula:

Set( Radius, 12 )

A continuació, podeu utilitzar Radi en qualsevol lloc on pugueu utilitzar un número i se substituirà per 12:

Pi() * Power( Radius, 2 )

Si doneu a una variable de context el mateix nom que una variable global o una col·lecció, la variable de context té prioritat. Tanmateix, encara podeu referenciar la variable global o la col·lecció si utilitzeu l'operador de desambiguació[@Radius].

Utilitzar una variable de context

Vegem com es crearia la nostra màquina de sumar mitjançant una variable de context en comptes d'una variable global.

Com funcionen les variables de context:

  • Heu d'establir i definir implícitament les variables de context mitjançant la funció UpdateContext o Navigate. Quan s'inicia l'aplicació, totes les variables de context tenen un valor inicial en blanc.
  • Actualitzeu variables de context amb registres. En altres eines de programació, normalment utilitzeu "=" per a l'assignació, com a "x = 1". Per a les variables de context, utilitzeu { x: 1 }. Quan utilitzeu una variable de context, utilitzeu el nom directament sense la sintaxi del registre.
  • També podeu definir una variable de context quan utilitzeu la funció Navigate per mostrar una pantalla. Si penseu en una pantalla com un tipus de procediment o subrutina, aquest mètode s'assembla a la transmissió de paràmetres en altres eines de programació.
  • A excepció de Navigate, les variables de context es limiten al context d'una única pantalla, que és on reben el seu nom. No podeu utilitzar ni definir-les fora d'aquest context.
  • Les variables de context poden tenir un valor, incloent-hi cadenes, números, registres i taules.

Reconstruïm la nostra màquina de sumar mitjançant una variable de context:

  1. Afegiu un control d'entrada de text, anomenat TextInput1 i dos botons, anomenats Button1 i Button2.

  2. Definiu la propietat Text de Button1 a "Afegeix" i definiu la propietat Text de Button2 a "Esborra".

  3. Per actualitzar el total d'execució cada vegada que un usuari selecciona el botó Afegeix, definiu la propietat OnSelect en aquesta fórmula:

    UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )

    La mera existència d'aquesta fórmula estableix RunningTotal com a variable de context que conté un nombre a causa de l'operador +. Podeu fer referència a RunningTotal en qualsevol part d'aquesta pantalla. Sempre que l'usuari obri aquesta aplicació, RunningTotal té un valor inicial en blanc.

    La primera vegada que l'usuari selecciona el botó Afegeix i executa UpdateContext, RunningTotal es defineix amb el valor RunningTotal + TextInput1.

    Propietat OnSelect del botó Afegeix amb updatecontext

  4. Per actualitzar el total d'execució a 0 cada vegada que un usuari selecciona el botó Esborra, definiu la propietat OnSelect en aquesta fórmula:

    UpdateContext( { RunningTotal: 0 } )

    Una vegada més, UpdateContext s'utilitza amb la fórmula UpdateContext ( { RunningTotal: 0 } ).

    Propietat OnSelect del botó Elimina amb updatecontext

  5. Afegiu un control Etiqueta i definiu-ne la propietat Text a RunningTotal.

    Aquesta fórmula es torna a calcular automàticament i mostrarà a l'usuari el valor de RunningTotal quan canviï en funció dels botons que selecciona l'usuari.

    Propietat de text de l'etiqueta

  6. Previsualitzeu l'aplicació i tenim la nostra màquina de sumar, tal com s'ha descrit anteriorment. Introduïu un número al quadre de text i premeu el botó Afegeix unes quantes vegades. Quan estigueu a punt, torneu a l'experiència de creació mitjançant la tecla Esc.

    El control d'entrada de text mostra un valor i l'etiqueta mostra el total d'execució.

  7. Podeu definir el valor d'una variable de context mentre navegueu fins a una pantalla. Això és útil per passar "context" o "paràmetres" des d'una pantalla a una altra. Per demostrar aquesta tècnica, inseriu una pantalla, inseriu un botó i definiu la propietat OnSelect en aquesta fórmula:

    Navigate( Screen1, None, { RunningTotal: -1000 } )

    Propietat OnSelect d'un botó

    Manteniu premuda la tecla Alt mentre seleccioneu aquest botó per mostrar Screen1 i definiu la variable de context RunningTotal a -1000.

    Screen1 és obert.

  8. Per mostrar el valor de la variable de context, fes una de les accions següents:

    • Si utilitzeu la versió de previsualització de Power Apps Studio, seleccioneu Variables al menú de creació d'aplicacions.

    • Si utilitzeu la versió clàssica de Power Apps Studio, seleccioneu el menú Fitxer i, a continuació, seleccioneu Variables a la subfinestra esquerra.

  9. Per mostrar on es defineix i s'utilitza la variable de context, seleccioneu-la a Variables de context.

Utilitzar una col·lecció

Finalment, vegem la creació d'una màquina de sumar amb una col·lecció. Com que una col·lecció conté una taula que és fàcil de modificar, farem que aquesta màquina de sumar mantingui una "cinta de paper" de cada valor a mesura que s'introdueixi.

Com funcionen les col·leccions:

  • Crear i definir col·leccions mitjançant la funció ClearCollect. Podeu utilitzar la funció Collect en el seu lloc, però requerirà de manera efectiva una altra variable en comptes de la substitució de l'antiga.
  • Una col·lecció és un tipus de font de dades i, per tant, una taula. Per accedir a un valor únic d'una col·lecció, utilitzeu la funció First i extraieu un camp del registre resultant. Si heu utilitzat un valor únic amb ClearCollect, aquest serà el camp Valor, com en aquest exemple:
    First( VariableName ).Value

Recreem la nostra màquina de sumar mitjançant una col·lecció:

  1. Afegiu un control Entrada de text, anomenat TextInput1 i dos botons, anomenats Button1 i Button2.

  2. Definiu la propietat Text de Button1 a "Afegeix" i definiu la propietat Text de Button2 a "Esborra".

  3. Per actualitzar el total d'execució cada vegada que un usuari selecciona el botó Afegeix, definiu la propietat OnSelect en aquesta fórmula:

    Collect( PaperTape, TextInput1.Text )

    La mera existència d'aquesta fórmula defineix PaperTape com una col·lecció que conté una taula d'una sola columna de cadenes de text. Podeu fer referència a PaperTape en qualsevol part de l'aplicació. Cada vegada que un usuari obre aquesta aplicació, PaperTape és una taula buida.

    Quan s'executa aquesta fórmula, s'afegeix el valor nou al final de la col·lecció. Com que estem afegint un valor únic, Collect l'afegeix automàticament en una taula d'una sola columna i el nom de la columna és Valor, que utilitzareu més endavant.

    Propietat OnSelect del botó Afegeix amb collect

  4. Per esborrar la cinta de paper quan l'usuari selecciona el botó Esborra, definiu la propietat OnSelect en aquesta fórmula:

    Clear( PaperTape )

    Propietat OnSelect del botó Elimina amb clear

  5. Per mostrar el total d'execució, afegiu una etiqueta i definiu la propietat Text en aquesta fórmula:

    Sum( PaperTape, Valor )

    Propietat de text de l'etiqueta

  6. Per executar la màquina de sumar, premeu F5 per obrir la visualització prèvia, introduïu els números al control d'entrada de text i seleccioneu els botons.

    El control d'entrada de text mostra un valor i l'etiqueta mostra el total d'execució.

  7. Per tornar a l'àrea de treball per defecte, premeu la tecla Esc.

  8. Per mostrar la cinta de paper, inseriu un control Taula de dades i definiu la propietat Elements en aquesta fórmula:

    PaperTape

    A la subfinestra dreta, seleccioneu Edita els camps i seleccioneu Afegeix un camp, seleccioneu la columna Valor i seleccioneu Afegeix per mostrar-lo.

    Taula de dades que mostra els valors afegits a la col·lecció

  9. Per veure els valors de la col·lecció, fes una de les accions següents:

    • Si utilitzeu la versió de visualització prèvia de, seleccioneu Variables al menú de creació d'aplicacions Power Apps Studio i, a continuació, seleccioneu Col·leccions .

    • Si fas servir la versió clàssica de Power Apps Studio, selecciona Col·leccions al menú Fitxer .

  10. Per emmagatzemar i recuperar la vostra col·lecció, afegiu dos controls addicionals de botó i definiu les seves propietats Text a Carrega i Desa. Definiu la propietat OnSelect del botó Carrega a aquesta fórmula:

    Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )

    Heu d'esborrar primer la col·lecció perquè LoadData afegirà els valors emmagatzemats al final de la col·lecció.

    Propietat OnSelect del botó Carrega

  11. Definiu la propietat OnSelect del botó Desa a aquesta fórmula:

    SaveData( PaperTape, "StoredPaperTape" )

    Propietat OnSelect* del botó Desa

  12. Premeu F5 per tornar a obrir la visualització prèvia, introduïu els números al control d'entrada de text i seleccioneu els botons. Seleccioneu el botó Desa. Tanqueu i torneu a carregar l'aplicació i, a continuació, seleccioneu el botó Carrega per recarregar la col·lecció.

Nota

Les funcions SaveData i LoadData funcionen amb el Power Apps Mobile però no amb el Power Apps Studio ni el reproductor web del Power Apps.

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).