Tras una temporada de descanso y viendo que muchos de los comentarios son en la categoría de App Inventor, añadiré más contenido en esta categoría aunque sin descuidar las demás. Por ello vamos con un nuevo y muy util elemento: TinyDb

Este elemento sirve para guardar datos en la app, es recomendable utilizarlo cuando lo que se quiere guardar no es una gran cantidad de datos. Para las grandes cantidades se recomienda utilizar otro elemento.

En este ejemplo veremos cómo guardar y mostrar un dato introducido por el usuario, su nombre. El funcionamiento sería que el usuario introduce su nombre y pulsa un botón para guardarlo. A continuación puede pulsar otro botón para mostrar el dato en una label.

  1. El primer paso es sacar todos los elementos que vamos a utilizar a la pantalla. En este ejemplo son: 2 label, un textbox, 2 botones y el elemento tinydb. Este último elemento se encuentra en el apartado “Storage” en la columna izquierda.
  2. Configuramos el texto para que sea un poco coherente con lo que vamos a hacer. Quedaría de esta manera:

    pantalla ejemplo tinydb

    pantalla ejemplo tinydb

  3. Lo siguiente ya es ir a los bloques y empezar a sacar piezas para guardar el dato:
    1. De la sección del boton1 que hemos puesto hay que sacar la pieza “when button1.click”.
    2. Dentro introducimos una estructura de control “if then” sacada del grupo “control” que nos servirá para comprobar si el usuario ha introducido algún dato.
    3. En la condición “if” introduciremos una operación lógica con el símbolo distinto en el que el primer parámetro será el texto introducido por el usuario, estos es, “textbox1.text” del bloque del textbox que tenemos. El segundo parámetro será simplemente el texto ” ” obtenido del bloque “text”.
    4. En la parte “then” introduciremos la pieza “callTinydb1.StoreValue” sacada del objeto tinyDb1 (nuestra base de datos). Esta misma pieza requiere 2 más, la primera será un texto con el nombre que le queramos dar al dato que guardamos, en mi caso le he llamado “nombreUsuario”, y la segunda el valor de lo que ha introducido el usuario. Esto es, “textbox1.text”.

      Guardar dato - ejemplo db

      Guardar dato – ejemplo db

  4. Una vez el texto esta guardado falta hacer la parte de mostrarlo por pantalla. Para ello sacamos las siguientes piezas:
    1. De la sección del boton2 que hemos puesto sacamos la pieza “when button2.click”.
    2. Dentro introducimos la pieza “set label2.text” que sacamos del grupo de la label2 y le adjuntamos la pieza “call tinyDb1.GetValue” que obtenemos desde el grupo de nuestra tinyDb.
    3. A esta pieza le añadimos en la parte “tag” el texto con el mismo nombre que hemos llamado al valor que guardamos, esto es, “nombreUsuario”. En caso de que no exista ningún valor podemos mostrar un texto vacío o una frase indicando que no hay dato adjuntando el texto en la parte “valueIfTagNotThere”. En mi caso he dejado vacío pero sería recomendable mostrar un texto indicando que no hay datos guardados.

      Mostrar dato guardado - ejemplo db

      Mostrar dato guardado – ejemplo db

Con estos bloques ya funciona nuestro pequeño ejemplo de guardar y mostrar datos. Algo que hay que tener en cuenta es que los datos que se guardan en un objeto TinyDb NO se borran al salir de la app. Sólo se borran si se borra la cache del móvil desde el panel de administración de aplicaciones.

Para más información, como siempre en la documentación de AppInventor

47 Thoughts on “TinyDB en App Inventor

  1. Julian on 28 octubre, 2015 at 12:53 said:

    Buenos dias te hago una consulta, tengo varios textbox ( 7 aproximadamente), y quiero guardarlos en la base de dato? como deberia hacer? Espero tu respuesta. Gracias.

    • Hola Julian,
      Tendrías que repetir el ejercicio que he descrito aquí una vez por cada textbox que tengas. Supongo que cada textbox representa un dato distinto (nombre, apellido, etc) y por ello cuando guardas cada dato tendrías que darle un nombre distinto en el campo “tag”.

      El paso 3 es la clave. Intenta seguirlo, si tienes dudas me comentas.

      Saludos!

  2. miguel on 2 noviembre, 2015 at 8:29 said:

    para guardar grandes cantidades de datos que se recomienda

    • Hola Miguel,

      Otra opción es utilizar TinyWebdb pero eso ya es más complicado. Es más para poder comunicarte con un servicio web donde guardes los datos. En ese caso no guardarías los datos en el móvil sino en la nube, que es lo recomendable si quieres guardar muchos datos. No tiene sentido que en una app se guarden grandes cantidades de datos.

      Saludos!

  3. Andrew on 11 noviembre, 2015 at 18:25 said:

    Buen día! Tengo una duda: De qué forma se pueden extraer los valores en una Tinydb, uno a uno, sin conocer la etiqueta ni la cantidad las mismas? Me explico: Una simple BD con Codigo (número de 4 digitos) y un Texto por cada una. La BD puede tener, por ejemplo, 5 tag no secuenciales (0101, 0215, 0108, 0005, 0301) cada uno con su texto. Necesito una forma de extraer los tag, sin saber la cantidad que posee (pueden ser 5, 11 o 26). Probé haciendo una lista, pero me daba como resultado sólo una lista de 1 item con todos los códigos. ¿Qué podría hacer?

    • Hola Andrew,

      Entiendo que entonces guardarás cada código y texto en un tag distinto (por ejemplo Codigo1=>0101, Codigo2=>0215, etc.). Lo que puedes hacer es lo siguiente:
      – Obtener toda la lista de tags de la base de datos con la pieza de “obtenerEtiquetas” que la puedes encontrar en el apartado de la base de datos.
      – Tras obtener el listado, lo recorres con una pieza de “por cada elemento de la lista, ejecutar” que encontrarás en el apartado de control.
      – Mientras vas recorriendo la lista de tags puedes comprobar y contabilizar los tags que contengan la palabra Codigo en su nombre. Para esto puedes usar la pieza de “si…entonces…” (que encontrarás en el apartado de control) y añadir la pieza de “contiene texto cadena” para incluir el texto “Codigo”.
      – En la parte de “entonces…” puedes añadir un contador para que vaya incrementando su valor.

      No se si me he explicado bien, te dejo aquí un ejemplo de lo que sería.

      http://aprenderaprogramarapps.es/wp-content/uploads/2015/11/ejemplo_contar_tags_tinydb.jpg

      Espero haberte ayudado, saludos!

  4. Victor on 2 diciembre, 2015 at 8:00 said:

    Gracias por la página ya que me ha ayudado mucho
    Yo tengo una duda que es que me gustaría guardar una base de datos para cada usuario que inicie sesión en la aplicación una base de datos web
    Gracias

  5. Carol on 22 febrero, 2016 at 0:49 said:

    Muchísimas gracias de verdad, me has salvado de un trabajo que tengo que realizar de tecñología, un beso

  6. Facu on 4 marzo, 2016 at 22:51 said:

    Hola!

    Quisiera saber como guardar los datos de una persona ( Nombre, Apellido, Fecha Nacimiento, DNI, etc.) y luego recuperar todos esos datos, en otra pantalla de busqueda!
    En realidad, mi duda es como recuperar ese “objeto” persona, osea todos los datos correspondientes a esa persona. (Se usan claves?)

    • Iker on 5 marzo, 2016 at 9:45 said:

      Buenas Facu,

      En Tinydb no se pueden guardar objetos. Está hecho más que nada para guardar algún que otro dato suelto.

      De todas formas he visto que muchísima gente lo utiliza para guardar gran cantidad de datos. Simplemente igual que en el ejemplo de este tutorial se guarda el nombre de usuario en la clave “nombreUsuario”, podrías hacer eso mismo por cada dato que quieras guardar. Lo que tendrías que hacer para diferenciar qué dato es de cada usuario es añadir a cada clave una coletilla indicando un id de usuario.
      Por ejemplo: nombreUsuario_1, apellidoUsuario_1, nombreUsuario_2, apellidoUsuario_2, etc.

      Mándame un email si tienes dudas o si no te sirve e intentaré ayudarte.

      Gracias y saludos!

  7. Jan Karczewski on 1 abril, 2016 at 15:58 said:

    Hola!
    Tengo un “List view” y quiero guardar los datos que escribo para poder volver ponerlos en la pantalla, una vez reiniciando la aplicación.
    Como se puede hacer?
    Gracias!

    • Iker on 2 abril, 2016 at 19:00 said:

      Hola Jan,

      Para lo que quieres hacer no es recomendable utilizar un objeto “tinyBD” ya que eso solo está pensado para guardar algún que otro dato suelto. Para cantidades algo más grandes como es tu caso recomiendo que utilices un objeto llamado “Archivo”.

      La idea es que por ejemplo cada vez que un usuario escriba y pulse un botón se guarde el texto escrito en un archivo. Según escribe más textos, estos se añaden al final del archivo con lo que tendrías una lista de lo que quieras guardada en el fichero.

      La lógica de funcionamiento sería esa y los bloques son muy similares a los de “tinyBD”.

      Si tienes más dudas me dices e intentaré ayudarte más.

      Gracias y saludos!

  8. carol Cabezas on 12 abril, 2016 at 23:39 said:

    Hola Iker,
    mis compañeros y yo desarrollamos una aplicación que visualiza un vídeo captado remotamente por la cámara de un celular pero para introducir la ip se realizaba directamente en el código.

    no se si me puedas guiar, necesito obtener la ip y el puerto que en este caso serán introducidos por el usuario en textbox y enviados… en el siguiente screen en pantalla se debe mostrar la visión de la cámara…

    Gracias amigo espero puedas guiarme :)

    • Iker on 13 abril, 2016 at 22:10 said:

      Hola Carol,

      Entiendo que lo que necesitas es guardar el contenido que el usuario introduzca desde 2 textbox (uno la ip y el otro el puerto). Para ello puedes seguir el ejemplo de TinyDb donde se guarda un dato utilizando el tag “nombreUsuario” solo que en lugar de utilizar un tag utilizarías 2: “ip” y “puerto” y en cada uno guardarías el valor de cada textbox.

      No se si me he explicado bien. Inténtalo y si no me mandas pantallazos e intentaré guiarte.

      Saludos!

  9. crisarr on 13 junio, 2016 at 19:42 said:

    Necesito realizar un programa que al ingresar datos de usuario los envie a un servidor en este caso wampserver, pero en caso que no haya conexion a internet lo almacene en tiny DB y cuando se establezca la conexion envie los datos almacenados, he buscado tutoriales pero no he encontrado nada parecido ojala me puedan ayudar de antemano muchas gracias.

    • Iker on 19 junio, 2016 at 11:37 said:

      Hola crisarr,

      Perdón por la tardanza en responder. Entiendo que si en el momento de enviar los datos no dispone de conexión, la idea es que la app esté comprobando cada rato si existe conexión para poder enviar los datos. Bien, con respecto a esto hay un problemilla. Actualmente no es posible hacer apps con AppInventor que se ejecuten en segundo plano, es decir, no es posible que se quede activa la aplicación mientras tu estás usando otra por lo que no podría estar comprobando la conexión cada momento. Quizás en un futuro mejore AppInventor y permita hacer eso pero de momento no es posible. No si si eso hace que te replantees lo que quieres conseguir y buscar otra alternativa o no.

      Me comentas cualquier cosa.

      Gracias!

      • crisarr on 20 junio, 2016 at 1:04 said:

        Gracias por tu respuesta IKER creo que buscare otra alternativa al proyecto.Realizas un muy buen trabajo ayudando a los que comenzamos a integrarnos en esta área.Saludos y sigue asi.

  10. PulidoCarlos on 14 julio, 2016 at 17:07 said:

    Buenas, muchas gracias por la información. me ayudo mucho.
    Una consulta el tinyDb solo guarda un solo nombre?, Le doy a guardar con diferentes nombres, cuando le doy ver datos guardados solo me sale el ultimo que escribí.

    Como se puede condicionar para que verifique si los datos ya escritos anteriormente me avise si están repetidos?.

    • Iker on 16 julio, 2016 at 9:54 said:

      Hola buenas Carlos,

      Para guardar datos y que no se sobreescriban tienes que guardarlos con distintos nombres. Puedes guardar tantos datos como quieras pero cada uno con distinto nombre para que no se pisen.

      Para la comprobación que me pides lo que puedes hacer es justo antes de guardar un dato, comprobar si ya existe ese dato guardado. Para ello obtén el dato guardado y compruebas si es igual a lo que vas a guardar. Si no es igual ya sabes que se va a sobreescribir si lo guardas ahí y lo anterior lo perderás.

      Espero haberte ayudado, si no me he explicado muy bien dime.

      Gracias y saludos!

      • PulidoCarlos on 21 julio, 2016 at 4:53 said:

        Buenas Iker.

        Si entiendo lo que me dices, es la lógica que tengo sobre el programa.

        Te explico lo que necesito hacer:

        Una app donde el usuario ingrese un numero de identificación, la app verifique el numero de identificación con los anteriores ingresados, Si es un usuario nuevo validar acceso, en caso de ser un usuario repetido negar el acceso.

        Es muy sencillo lo que se necesita hacer, pero la parte de verificar me tiene muy confundido a nivel de correr el programa.

        Muchas gracias Iker, muy agradecido por la respuesta.

        Si puedes escribirme al correo carpul400@Gmail.com

        Saludos y muchas gracias.

  11. Joaquin on 20 agosto, 2016 at 16:30 said:

    Buenas.
    Una consulta. Lo que yo quiero hacer es una aplicación donde alguien entre y haya un buscador, con distintas categorias (ej pizzerias, bares, etc), y donde al seleccionar determinada categorìa te lleve a una pantalla con todos los lugares correspondientes a esa categoria. esto es posible? para esto puedo usar tinydb?=
    Gracias

    • Iker on 21 agosto, 2016 at 11:29 said:

      Hola Joaquin,

      Es posible hacer lo que dices pero no lo recomiendo hacer con TinyDB. TinyDB se debe utilizar para guardar muy poca cantidad de datos puntuales como por ejemplo el hombre de usuario. En tu caso tendrías que utilizar otro sistemas como por ejemplo ficheros o fusionTables. Guardarías ahí una lista de lugares con sus categorías y de esta forma al seleccionar la categoría en el buscador, podrías cargar esa lista de lugares.

      No se si me explico bien, si necesitas más datos coméntame.

      Saludos!

  12. SERGIO MELEAN on 27 agosto, 2016 at 3:08 said:

    buenas amigos quiero hacer una aplicacion donde pueda buscar documentos pdf , como me recomiendas que haga para acceder a los documentos

    • Iker on 28 agosto, 2016 at 11:04 said:

      Hola Sergio,

      Entiendo que esos documentos que quieres buscar están en el propio dispositivo. Con appInventor y siempre que en el dispositivo haya instalado un explorador de archivos, puedes buscar documentos o ficheros.

      En ese caso te puedo indicar un poco por donde empezar:

      Utilizando “ActivityStarter” y definiendo el “action” como “android.intent.action.GET_CONTENT” indicas que quieres buscar contenido. Luego indicas que el “dataType” sea “text/plain” para que lo que busque sea archivos de texto.

      Prueba y a ver si te sirve con eso. Si tienes más dudas me dices o si no es lo que buscabas pues también y te ayudaré en lo que pueda.

      Saludos!

  13. Hola, estoy haciendo una app que lleva el TinyDb y necesito saber si este permite tag duplicados como por ej: el TAg vendría a ser el nombre del cliente el cual concurre varias veces al negocio y después necesito buscar el dato con su nombre, además hay alguna forma de buscar datos no siendo el TAG?. Gracias

    • Hola Juce,

      TinyDB no permite guardar datos en tags duplicados porque no se podría diferenciar.

      De todas formas, para guardar tanta cantidad de datos no recomiendo utilizar TinyDB. Aunque realmente no es que sean muchos datos, TinyDB sirve más que nada para guardar muy poquita cosa como por ejemplo un número, un dato y poco más. Para guardar aunque sea 1 dato pero de cada persona ya suman muchos datos, por lo que es más recomendable utilizar otras opciones como TinyWebDB por ejemplo.

      Saludos!

  14. hola! estoy haciendo una app para la facultad, en la cual cargo un pedido a través de distintas pantallas cada pedido con su id, nombre, tipo, cantidad, y precio. Luego en otra pantalla me muestra una tabla con los distintos productos seleccionados, cada fila son las características de un mismo producto (lo hice con list view)… desde esa misma pantalla puedo borrar o modificar alguno…
    En cada pantalla inicializo las listas de las variables con la base de datos para que los datos nuevos que pueda cargar en la base de datos no pisen a los anteriores, y cada vez que paso de una pantalla a otra antes de salir tambien hago una nueva carga de la tinyDB para actualizar los cambios que haya hecho en esa pantalla… esto lo hice con tinyDB y funciona correctamente pero al correrla con el celular al volver entre una pantalla y otra me larga un error que dice la aplicación se ha detenido, le doy aceptar y sigue funcionando incluso hasta se ha cargado la ultima modificación,pero es realmente molesto el cartes y no logro encontrar el error. Tendrás idea que puede estar pasando???
    desde ya muchas gracias!!! saludos

    • Iker on 1 octubre, 2016 at 10:46 said:

      Hola seba,

      Ese error puede ser por muchos motivos pero por si acaso, comprueba cómo haces la parte de abrir pantallas nuevas. Los dispositivos móviles son muy sensibles con el tema de abrir nuevas pantallas ya que consumen mucha memoria y puede llevarte a ese tipo de errores. En cuanto abres una nueva pantalla tienes que asegurarte de que cierras la anterior para liberar memoria (no se si esto puede afectar a tu lógica de funcionamiento o a tinyDB, aunque no debería).

      Te dejo aquí un enlace a una entrada que hice donde explico cómo abrir nuevas pantallas cerrando las anteriores por si puede servirte de algo (es de la versión anterior de app inventor pero bueno la idea es bastante clara).
      http://aprenderaprogramarapps.es/2013/05/29/navegando-entre-pantallas-con-app-inventor/

      Gracias y saludos!

  15. Marisa Ródenas on 22 octubre, 2016 at 1:18 said:

    Hola, muchas gracias por tu aporte.
    Yo tengo un listado ya creado que quisiera que cuando se seleccione por ejemplo un día de la semana me aparezcan los correspondientes a ese día, que debo utilizar?
    Muchas gracias

    • Hola Marisa,

      No he comprendido muy bien tu problema, ¿podrías aclararme un poco qué es lo que necesitas? Entiendo que tienes un listado de algo y quieres que al seleccionar una opción… ¿te aparezca el qué? ¿El listado que tienes es siempre el mismo, o puede variar?

      Gracias!

  16. JORGE ALDAZ on 3 febrero, 2017 at 1:30 said:

    Buenas tardes.
    en un screen tengo varios cuadros de texto en los cuales solo ingreso numeros.
    en el mometo que cambio de screem y regreseo a donde tengo los cuadros de texto ya no estan y tengo que esbribirlos de nuevo . pregunta.
    como puedo hacer que no se pierdan cuando cambio de screen?

    • Iker on 4 febrero, 2017 at 11:06 said:

      Hola Jorge,

      Tendrías que usar TinyDB para almacenar esos números. Prueba a guardar esos datos tal y como indico en este post. Tendrías que guardarlos antes de cambiar de screen y luego cada vez que vuelvas a esa pantalla comprobar si hay datos guardados para mostrarlos donde corresponden.

      Espero que te sirva esa solución, si no es así envíame un email a ivillarroel.programarapps@gmail.com con toda la información de cómo tienes los bloques y los diseños para que pueda ayudarte mejor.

      Gracias y saludos!

  17. Juan on 25 febrero, 2017 at 2:52 said:

    hola:
    quiero crear una base de datos de animales con sus fotos donde haya campos como nombre color tamaño, pelo, etc, el usuario buscara el animal de acuerdo algunos criterios como nombre , tamaño, color, si tiene pelo o plumas, que objetos recomiendas para crear la base de datos para unos 300 registros mas o menos

    • Hola Juan,

      Normalmente las apps no deberían guardar tantos datos. Lo normal es que se guarden datos muy básicos y de configuración. Esto es así porque los dispositivos móviles tienen características muy limitadas y guardando mucha cantidad de información terminarías saturando el dispositivo de cada persona que use la app.

      Por ello, hay 2 posibles componentes que podrías usar:
      – TynyWebDb: Sirve para poder conectarte a una base de datos externa donde almacenar los datos y consultarlos.
      – FusionTalbesControl: Este componente es más nuevo y no he tenido la ocasión de utilizarlo de momento. En teoría está más preparado para lo que necesitas hacer y también se trata de alojar los datos en un servicio externo, en este caso de Google.

      Yo te recomiendo que utilices FusionTablesControl porque seguro que funcionará mejor y se adaptará mejor a lo que necesitas. No te puedo guiar más porque aun desconozco todo su potencial. No obstante te agradecería que me dijeses qué tal te va si lo utilizas.

      Muchas gracias y mucho ánimo!

  18. Ana on 7 marzo, 2017 at 18:56 said:

    Hola Iker,
    estoy creando una app que abre una página WEB en la que se introduce un logeo.
    La WEB ya existe y lo que necesito es una app que en el móvil abra directamente esa WEB y que tras logearse la primera vez en la web te capture los datos (nombre, contraseña, etc) y los almacene en TinyBD para posteriormente que al abrir la web los rellene automáticamente. Lo puedo hacer con la app o al ser una WEB externa a la app se tiene que hacer directamente sobre la WEB?
    Espero haberme explicado bien sobre lo que necesito.
    Muchas gracias por tus aportes y el gran trabajo que realizas para todos.

    • Iker on 11 marzo, 2017 at 9:11 said:

      Hola Ana,

      Si tienes acceso al código de la web, ya sea porque la has hecho tu o alguien que conoces, podrías hacer lo que planteas a pesar de que la web sea algo externo y totalmente independiente de la app. Si no es así me temo que ya es mucho más complicado y además no lo recomendaría porque si por cualquier motivo esa web se renueva y cambia ya no te serviría lo que has hecho en tu app.

      Espero haberte aclarado las dudas. Si sigues queriendo hacer envíame un email con más información (cómo tienes la app hecha, qué web es, etc) y te ayudaré en lo que pueda.

      Muchas gracias y saludos!

  19. Disculpa, tengo que hacer una busqueda de alumnos y mostrarlos todos, ya los tengo un host la base de datos con los alumnos, y dichos alumnos al darle clic a un boton, los quiero obtener de la base y mostrarlos en pantalla, ¡se podrá?

    • Iker on 9 abril, 2017 at 21:04 said:

      Hola Abiam Raí,

      Para hacer lo que quieres deberás programar en el host donde tienes la base de datos una API para poder acceder a esos datos. De manera que al acceder a una dirección web (donde tengas esos datos guardados) te lo muestre y la app los pueda visualizar en pantalla.

      Si quieres puedes enviarme por email más datos de cómo tienes todo montado y te ayudaré en lo que pueda.

      Muchas gracias!

  20. Marc on 21 abril, 2017 at 7:25 said:

    Muy buenos días, antes de nada felicitarte por la gran labor divulgativa que realizas.
    Tengo las siguientes dudas:
    1-Las fotos, imágenes y videos, que pueda tomar con una APP en Appinventor las quiero grabar en local, perfecto lo hago con TinyDB
    2-Cuando tenga conectividad WiFi, querría enviar estos registros hacia TinyWebDB

    Problemas:
    1- ¿como se si estoy conectado via WiFi o vía 3G? debido a que este envío de información, solo lo quiero realizar si estoy vía WiFi
    2- ya existe algun ejemplo de leer registros de TinyDB y guardarlos en TinyWebdb?
    3- ¿que diferencia hay entre TinyWebDB y FusiontablesControl y FirebaseDB? o sea cual de las 3 utilizo si quiero tener en el servidor tablas relaciones, integridad referencias, triggers, procedures, etc….¿cual da más flexibilidad y es más potente a nivel de escalabilidad?

    Muchas gracias por todo

  21. Alejandro on 1 mayo, 2017 at 7:26 said:

    Hola,
    Antes que nada, muy bien explicado, me ayudó. Ahora la pregunta: ¿Cómo hago que lo que se guarde, se muestre en un Listpicker?

    • Iker on 21 mayo, 2017 at 10:07 said:

      Hola Alejandro,

      Si utilizas TinyDb tendrás cada elemento que quieres mostrar en el listpicker guardado de manera individual. Lo que tienes que hacer es obtener cada elemento de uno en uno e ir añadiendolo a la listpicker para que se muestre. Para ello utiliza el bloque de “set listpicker.elements to” y ahí incluyes un elemento. Si este proceso lo introduces dentro de un bloque “foreach number from 1 to numeroTotalDeElementos by 1” harás que se incluyan los elementos desde el primero hasta el número de elementos que tengas guardados (algo que tendrías que saber de antemano de lo contrario no te funcionará).

      Espero haberte ayudado. Si no me he explicado bien o tienes más dudas puedes enviarme capturas a mi correo electrónico.

      Saludos y gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Post Navigation

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies