Está en la página 1de 11

Power apps no4

1. Cada tarjeta tiene un origen de datos y una columna y en avanzado es donde le doy la
orden de donde quiero que se almacene esa información el origen de datos que
seleccione en este caso SQL
2. En datacardvalue7 vamos a enviar la propiedad a la base de datos
3. En Power apps vamos a trabajar con muchas funciones una de ellas es la siguiente
 Now(): esta función la usamos dentro de la fecha en la parte de avanzado Update-
para efectos de que la fecha se guarde en el momento que se esta editando el
registro, asi mismo en esa misma tarjeta podemos colocarla visible o no en
propiedades
 User().FullName: Esta función se utiliza para que de manera automática se envie el
tegistro a la base de datos del nombre completo de quien lo esta editando

Nota: No olvidar que cada vez que quiero mirar o evaluar que el registro de las columnas se
guarde debo ingresar a AZURE e ingresar la ip nueva que estoy manejando para ver el contenido
de la table en SQL.

4. SIEMPRE será necesario que al momento de crear una tabla se debe crear una columna
que se llame PRIMARY KEY, puesto que si no se crea va a dar error

PARA INSERTAR IMÁGENES Y GUARDARLAS

1. Desde azure, debemos crear un recurso que se llama Cuenta de almacenamientos


(cuadrados verdes) se encuentra en el Marketplace, allí vamos a crear el recurso
2. Una vez creado el recurso accedemos y creamos un contenedor, un contenedor no es mas
que una carpeta dentro de la base de datos, nada complicado, una vez la creamos
comenzamos
3. Posteriormente ingresamos a powerapps y desde ahí agregamos una nueva fuente de
datos en este caso se llama AZURE BLOB STORAGE, agregamos este recurso y nos va a
pedir el nombre de la cuenta de almacenamiento en este caso se llama (capturados) hay
que estar muy peniente de escribirlo tal y como aparece sin mayúsculas y demás.
4. Nos va a pedir una contraseña entonces vamos azure en el recurso que creamos de
capturados hay una parte en la ventana izquierda que se llama claves de acceso ahí
copiamos la primera y la pegamos
5. Ahora como hacemos para ver imágenes en powerapps? Ingresamos a powerapss y en la
opción insertar vamos a ir a multimedia allí encontramos la opción insertar imagen, la cual
es una función dentro de una función.
6. Una vez cargamos la imagen, regresamos a powerapps y en el formulario le damos la
orden que la envie y la guarde en el origen de datos que tenemos que es SQL mediante la
opción OnSuccess allí tenemos que crear la siguiente función

AzureBlobStorage.CreateFile("fotos";AddMediaButton1.FileName;AddMediaButton1.Medi
a);;

Back();;

7. Comprobamos en el contenedor que se haya guardado la imagen que seleccionamos, y


efectivamente se debe encontrar allí, pero además ingresamos a la imagen en este caso se
llama “ imagen de seguridad “ Y tiene un link si lo copiamos en el explorador deberá estar
restringio el acceso a esa imagen

Como hacemos para que esa imagen se vea en icono de PowerApps

1. Una vez estemos en Powerapss vamos a la primera pantalla hacemos espacio y mediante
la opción insertar colocamos en multimedia pero esta vez solo en “imagen” no “Insertar
imagen”, allí encontramos que la configuración muestra por defecto SAMPLEIMAGE,
borramos y realizamos la siguiente función :

NOTA: Antes de empezar a modificar la función que vamos a hacer nos pide el ID, pero como no lo
habíamos creado vamos a Azure y en editor de consultas agregamos la celda de la siguiente
manera:

ALTER TABLE tblObjetos ADD azureBlobID VARCHAR(120)

La palabra azureBlobID la ponemos nosotros

Para comprobar que quedo creada verificamos mediante

SELECT *FROM tblObjetos

Y en este punto nos podemos enredar un poco

 Como hacemos para obtener ese id? Bueno pues tenemos que ir a la
imagen y la configuración que le dimos en el punto 6 y tenemos que
usar la siguiente función

Set (: Lo que hace es crea una variable, o un lugar donde vamos a


guardar información que posteriormente usaremos

Set(_AzureBlobID;AzureBlobStorage.CreateFile("fotos";AddMediaButton1.FileName;AddM
ediaButton1.Media);;

Back();;
PATCH (: lo que logramos con patch es arrastar la informacion a donde
queremos
LOOK UP (: Luego ingresamos la función Look up que en Excel es como
buscar.v
ID: Aca lo que le decimos es que queremos que de la pantalla editform
saque el id del ultimo registro

AzureBlobStorage.GetFileContent(ThisItem.azureBlobID)

Set(_azureBlobID;
AzureBlobStorage.CreateFile("fotos";AddMediaButton1.FileName;AddMediaB
utton1.Media).Id);;
Patch( '[dbo].[tblObjetos]'; LookUp('[dbo].[tblObjetos]'; id
=EditForm1.LastSubmit.id); {azureBlobID: _azureBlobID});;
Back();;

ELIMINAR ERRORES

Funcion IF: Cual es la prueba lógica que queremos evaluar y es mirar si el parámetro esta vacio o
tiene algún contendido

IsBlank: Nos dice si en una celda hay algo vacio o tiene algun contenido

Entonces si queremos poner una imagen por defecto y que se elimine el error que muestra por no
tener una imagen se aplica la siguiente formula:

If(IsBlank(ThisItem.azureBlobID); SampleImage;
AzureBlobStorage.GetFileContent(ThisItem.azureBlobID))

Ahora en la pantalla Detail Screen vamos a agregar una imagen, y de igual manera tenemos que
realizar una función que nos detalle que queremos introducir una imagen de azureblobstorage, la
cual se contiene en la pantalla inicial browsegallery1 y necesitamos seleccionar una imagen de ahí.
Pero si la columna esta vacía, va a colocar una imagen por defecto

If(IsBlank(BrowseGallery1.Selected.azureBlobID);SampleImage;
AzureBlobStorage.GetFileContent(BrowseGallery1.Selected.azureBlobID))
ELIMINAR UNA FOTO Y UN REGISTRO

Nos desplazamos al icono de eliminar pero de acuerdo a la configuración que tiene OnSelect, la
función que cumple es muy simple y es solo eliminar la imagen y si no tiene errores regresa a la
pantalla, lo que queremos ademas de eso es que una vez eliminado el registro lo elimine también
de AzureBlobStorage mediante la siguiente función

Remove([@'[dbo].[tblObjetos]']; BrowseGallery1.Selected);;

If (

IsEmpty(Errors([@'[dbo].[tblObjetos]']; BrowseGallery1.Selected));

AzureBlobStorage.DeleteFile(BrowseGallery1.Selected.azureBlobID);;

Back()

COLOCAR IMAGEN QUE ESTA POR DEFECTO SAMPLEIMAGE

Cuando entramos a la pantalla de ingreso de registros nos aparece la imagen por defecto tenemos
que cambiarla.

En la pantalla de creación y edición de registro por mas que hibiese imagen colocaba imagen por
defecto y en esa función lo único que hacia si estaba en blanco coloca el sample image y si no si
poneme la imagen que esta en la propieda media del selectro de imágenes.

Pero no s interesa corrobar si estamos editando un registro o creando un registro y como lo


hacemos? Se crea con la propiedad Mode, Y cada uno tiene un modo

CREANDO REGISTRO O EDITANDO REGISTRO

Para llegar a la pantalla de creación podemos acceder de dos maneras desde la primera pantalla a
través del +, y en la segunda pantalla a través del lápiz

A través del mas le vamos a colocar _creandoRegistro, y en el lápiz le vamos a colocar,


_creandoRegistro False
EditForm(EditForm1);;

Set(_creandoRegistro; false);;

Navigate(EditScreen1; ScreenTransition.None)

CAMBIAR MODO EDICION Y CREACION DE REGISTRO

Vamos a tener que usar esta función cuando tengamos que cambiar el modo de edición o de
creación de un registro ingresando desde el + o desde el Lapiz

If(

IsBlank(AddMediaButton1.Media)&& _creandoRegistro;

SampleImage;

IsBlank(AddMediaButton1.Media)&& !_creandoRegistro && !IsBlank


(BrowseGallery1.Selected.azureBlobID);

AzureBlobStorage.GetFileContent(BrowseGallery1.Selected.azureBlobID);

AddMediaButton1.Media

Creand un registro en la aplicación y actualizar todas las fotos en las pantallas

If(_creandoRegistro;

Set(_azureBlobID;
AzureBlobStorage.CreateFile("fotos";AddMediaButton1.FileName;AddMediaButton1.Media).Id);;

Patch( '[dbo].[tblObjetos]'; LookUp('[dbo].[tblObjetos]'; id =EditForm1.LastSubmit.id);


{azureBlobID: _azureBlobID});;

AzureBlobStorage.UpdateFile(BrowseGallery1.Selected.azureBlobID; AddMediaButton1.Media));;

Refresh('[dbo].[tblObjetos]');;

Navigate(BrowseScreen1;ScreenTransition.Fade);;
VARIABLES

Existen dos tipos de variables, variables de contexto: Son aquellas que solo existen en el contexto
que son creadas y en powerapps son las pantallas y están las variables globales que podemos
modificarlas en cualquier parte

Iniciamos con UpdateContext esta función es la encargaada de crear las variables de contexto de
cada pantalla eso quiere decir que esa variable solo podrá funcionar en esa pantalla

Ahora viene la función SET() que nos sirve de manera global para toda las pantallas.

El uso que se le da a las variables de contexto puede ser para organizar el orden de una
determinada galería, ascendente o descente dependiendo de un clic que le demos a un icono

FORMULARIOS

Nos permite comunicarnos con un origen de datos de tipo tabular es decir de tipo tablas y se
puede solo un registro a la vez, interactua de un regisro a la vez: share Excel sql azure

Crear registro

Editar registro

O visualizar registro

Eso es lo que nos permite hacer power apps y debemos señalar cuando lo hagamos. Y nos ofrece
tres funciones

ORIGEN DATOS FUNCION DESCRIPCION OTRAS FUNCIONES

Origen de datos NewForm Estado de creación


SQL EXCEL SHARE (Formname)

Origen de datos EditForm Estado de edición ITEM


SQL EXCEL SHARE (Formname)

Origen de datos ViewForm Estado de ITEM


SQL EXCEL SHARE (Formname) visualizacion

Nota: en estado de edición o visualización tenemos que indicarle cual de los registros es al que me
refiero
APLICACIÓN A REALIZAR PARA SOLUCION DE RECOLECCION DE INFORAMCION DE CAPTURADOS
EN LAS ESTACIONES DE POLICIA

Custodio o
Responsable

Capturado 1

Estaciones Capturado 2
de Policía
Capturado 3

Estaciones/

Capturados/

CREANDO LA APLICACIÓN

Inicialmente tenemos que definir las diferencias entre DELETE y DROP TABLE, con DELETE, lo que
hacemos es eliminar una fila de la columna, y con drop table, eliminamos toda la tabla.

Se debe realizar la tabla:

CREATE TABLE tblComercios (

Id INT PRIMARY KEY IDENTITY (1,1)

,nombreFantasia VARCHAR (10)

,azureBlobId VARCHAR (40)

,rubro VARCHAR (20)


,lat DECIMAL (10,7)

,long DECIMAL (10,7)

,fechaCreacion DATETIME DEFAULT GETDATE ()

,usuarioCarga VARCHAR (20)

CREATE TABLE tblProductos (

Id INT PRIMARY KEY IDENTITY (1,1)

,idComercio INT

,idTipo INT

,azureBlobId VARCHAR (40)

,lat DECIMAL (10,7)

,long DECIMAL (10,7)

,fechaCreacion DATETIME DEFAULT GETDATE ()

,usuarioCarga VARCHAR (20)

,ancho INT

,alto INT

,profundidad INT

Creando Aplicación Final

Una vez creados los cuadros comenzamos a realizar el diseño y estética de los cuadros que
queremos que queden en editar campos decidimos que campos queremos que queden y cuales
no, asi mismo como ya hay código que en una aplicación usamos para mostrar imágenes borrar,
eliminar y demás, lo podemos copiar y pegar.

De otra parte tenemos que empezar a realizar la creación de una nueva ventana, esta ventana es
la que vamos a llamar capturados, y allí vamos a comenzar a diseñar los datos que queremos
ingresar, teniendo en cuenta lo que queremos que aparezca.
Iniciamos en el cuadro de texto que insertamos en la función “HINTEXT” vamos a dejar un texto de
guía o ayuda para
ese recuadro

LISTA DESPLEGABLE PREDETERMINADA

En este punto lo que vamos a hacer es crear otra aplicación basada en la misma base de datos y en
La tabla que necesitamos que sea desplegada. Por esta razón la creamos en sql fundamentado en
este caso en la tabla de delitos la creamos e insertamos los delitos que queremos que aparezcan
en la lista desplegable. Una vez creada actualizamos en nuestra app base, y ya nos aparecen los
valores

CREANDO UNA COLECCIÓN

Collect(colCapturadosACargar; con esta conexión tenemos que crear un registro en la base de


datos SQL, imagen en azureblobstorage y unirla con azure blob id

RAND () Numero aleatorio entre 0 y 1


ROUND () Redondea con el numero de decimales que quiero

Mediante el siguiente código lo que le estamos diciendo a la maquina es que comience a mostrar
los elementos en el listado y que coloque la imagen. Para eso además en la función de la galería
debemos seleccional la Colección que creamo colCapturACargar, y en la imagen que esta como
SampleImage coloca ThisItem.image

Collect(colCapturACargar;

{
idEstacion:BrowseGallery1.Selected.id;
idDelitos:Dropdown2.Selected.id;
imagen: AddMediaButton2.Media;
nombreImagen: BrowseGallery1.Selected.id & Now();
nombreCapturado: tinombreCapturado.Text;
cedula: tiCedula.Text;
edad: tiEdad.Text

NOTA: Para cambiar el tipo de datos de una columna se usa la siguiente función
Funcion para cambiar de int a varchar
ALTER TABLE [dbo].[tblMedidaAseguramiento] ALTER COLUMN medida VARCHAR (50)
Funcion para agregar nueva Columna en tabla

ALTER TABLE [dbo].[tblunidadResponsable] ADD NombreAgcaptor


VARCHAR (120)
RESETEAR UNA VENTANA

Dato: En la función AllowEmpty Selection debemos ponerla en true para que se


resetee el menú desplegable

Y para resetear los demás campos de texto este código

Collect(colCapturACargar;

{
idEstacion:BrowseGallery1.Selected.id;
idDelitos:Dropdown2.Selected.id;
imagen: AddMediaButton2.Media;
nombreImagen: BrowseGallery1.Selected.id & Now();
nombreCapturado: tinombreCapturado.Text;
cedula: tiCedula.Text;
edad: tiEdad.Text

);;

Reset(Dropdown2);;
Reset(AddMediaButton2);;
Reset(tinombreCapturado);;
Reset(tiCedula);;
Reset(tiEdad);;

FUNCION FORALL

Una vez creada la colección donde se van a observar todos los registros realizados necesitamos
conectar esa información para que quede almacenada en SQL y en Azureblobstorage, de esta
manera tenemos que ordenarle que mediante la función FORALL busque cada uno de los registros
a guardar y los almacene

ForAll(colCapturACargar;

Patch(
tblCapturados;
Defaults(tblCapturados);
{
idEstacion: ThisRecord.;
idDelitos: Value(ThisRecord.Delitos);
nombreCapturado: Value(ThisRecord.nombreCapturado);
cedula: Value(ThisRecord.cedula);
tiEdad: Value(ThisRecord.edad);
lat: Location.Latitude + 10,3494 +5 * Rand();
long: Location.Longitude - 5,65 - 5 * Rand();
usuarioCarga: _usuario;
azureBlobId:
AzureBlobStorage.CreateFile("capturados";ThisRecord.nombreImagen;ThisRecord.imagen).Id

ETAPA 4 CREANDO TABLAS DESDE CERO

CREATE TABLE tblcapturados (


id INT PRIMARY KEY IDENTITY (1,1)
,nombreCapturado VARCHAR (40)
,cedula INT
,fechaCaptura DATETIME
,edad INT
,genero VARCHAR (10)
,azureBlobId VARCHAR (40)
,fechaCreacion DATETIME DEFAULT GETDATE ()
,usuarioCarga VARCHAR (20)
)
P

También podría gustarte