dic 2

Instalando soluciones

Cuando vamos a instalar o crear soluciones en Velneo V7 tenemos varias posiblidades:

Partimos de la idea, de que para hacer esto, ya tenemos una solución creada y los que deseamos es, realizar una copia de la misma en otro servidor (vServer V7)

Y ahora mismo, que yo recuerde, se me ocurren 3 formas de hacerlo:

  1. Si el servidor de origen esta en la nube y el servidor de destino esta en local, podemos hacer una copia de seguridad e instalar las soluciones manualmente, copiando la carpeta y creando las soluciones con vAdmin y vDevelop.

    Es un método complicado pero sirve en casos puntuales. Esta forma de copiar soluciones es para usuarios avanzados y necesitaría un artículo dedicado exclusivamente a explicar como realizar esta operación, pero eso será en otro momento.

  2. Con vInstallBuilder, como todos conocemos. Haciendo una copia en un archivo .VIN desde el servidor de origen e instalando con vAdmin en el servidor de destino.

    Este es quizá el método más sencillo y más usado por todos, entre otras razones porque es el componente de Velneo V7 destinado a realizar esta tarea.

  3. Con la opción “Importar componentes” de vDevelop, conectando al servidor de origen y copiando soluciones completas.

    Para realizar esta operación, ejecutamos vDevelop y nos conectamos al servidor de destino, luego elegimos el menú Soluciones y la opción Importar componentes, y en este momento se nos piden los datos del servidor de origen, donde están instaladas las soluciones que queremos copiar.

    Después, sólo tenemos que seleccionar las soluciones que queremos importar a nuestro servidor y finalizar el proceso. De este modo, si la solución ya existe en el destino, será modificada y actualizada, y si no existe, simplemente, será copiada a nuestro servidor.

.

Create PDF    Enviar artculo en formato PDF   
comments: 1 »
may 24

Cambia el chip

Que puedo decir, acabo de enterarme por el blog oficial de Velneo, y parece que se refieren a mi, mejor deberiais leer el post original antes de continuar…

Leer la noticia completa…

Espero que ahora podais entender porque he tenido un poco abandonado el blog, como podeis ver, no he dejado de escribir, todo lo contrario, he escrito aún más y con más ilusión.

Han sido varios meses de duro trabajo en el que he gastado la tinta de cientos de boligrafos y una cantidad indecente de oleo para dibujar las imágenes. :)

Espero que el resultado sea del agrado de la mayoría, y sobre todo, que este manuscrito cumpla su objetivo principal, que es:

¡¡¡ Cambiar el chip !!! y ayudar a entender la filosofia de Velneo V7 como herramienta que consigue que algo tan abstracto como puede llegar a ser la programación, sea divertido y ameno.

Espero que reserveis con tiempo vuestro ejemplar, para que así me de tiempo a realizar las copias necesarias para cada uno de los interesados. Además necesitare realizar un pedido de plumas,  oleos y papiros que determinaré en función de los pedidos realizados.

Nos vemos en el evento, 😉

¡LIFE IS SOFT!

PDF Printer    Enviar artculo en formato PDF   
comments: 15 »
dic 15

Encuentra las diferencias entre V6 y V7

Posted in foro, vDevelop

Para los que venimos de V6, el cambio a V7 puede ser mas sencillo que para otros desarrolladores que se inician y tienen que cambiar totalmente “El Chip”, pero ese camino de “rosas” que debemos recorrer los mas avanzados en este aspecto, tambien esta lleno de “espinas” que debemos evitar.

Aqui voy a esponer algunas de las principales diferencias que hay entre V6 y V7, y esta vez no para criticar, sino para que los usuarios de V6 no pierdan gran cantidad de tiempo en averiguar esas pequeñas “tonterias” que nos amargan el dia

  1. Una de las diferencias entre V6 y V7 es la forma en que podemos sumar y restar dias a una fecha determinada. En V6 podiamos hacerlo sumando directamente los dias a la fecha “fHoy() + 10” o “fHoy() – 30” en la expresión, para obtener la fecha resultante. Ahora debemos hacerlo mediante la función “AddDays( currentDate() , 10)” para sumar y “AddDays( currentDate() , -30)” para restar
  2. Otra pequeña “gran” diferencia es la edición de campos en formularios, mientras en V6 un campo numérico o alfanumérico se podia editar con el mismo EDIT, en V7 necesitamos un control de “Edición” para campos alfanuméricos y un “Microscroller” para campos numéricos, ya que si ponemos un campo numérico en un “Edit” se convierte en texto automáticamente, al menos cuando se trabaja con variables locales.
  3. No busques las funciones de NumeroEnLetras() y FechaDiasFijos() porque en V7 no exiten y te las tienes que definir tu mismo. Y la función para calcular el DC de un número de cuenta bancario, tampoco está. Entiendo que estas funciones no han sido incluidas debido a la internacionalización de la herramienta y a que son funciones que varian dependiendo del idioma o pais, aunque esta excusa no es aplicable a la función FechaDiasFijos().
  4. Tambien han desaparecido todas las funciones que habia en V6 en el grupo de Códigos de Barras.
  5. En V6 disponiamos de una función de proceso “ExtraerDato()” para parsear cadenas de texto y tenias que copiarla en todos los mapas donde era necesaria. En V7 no la busques, tenemos una función del sistema que realiza la misma tarea de manera mas eficiente: “StringSection()”
  6. En V6, para indexar un indice condicionado, necesitabamos obligatoriamente un campo “Check” o “Booleano” para usarlo en la condición del indice. En V7 podemos indicar la exprexión directamente sobre la condición del indice, si bien esto puede penalizar el rendimiento de la base de datos.
  7. Otra diferencia importante, es la conexión entre vClient y vServer en las versiones V6 y V7, ya que mientras V6 consume una única licencia de usuario por maquina (aún teniendo varias aplicaciones en ejecución), en V7 se consume una licencia de usuario por cada aplicación o instancia que se ejecuta (incluso en la misma maquina), lo cual es un inconveniente, ya que se necesitan muchas mas licencias en V7.
  8. En V6, para cambiar la clave de acceso del usuario, se hace desde el menu de vClient directamente. En V7 es necesario crear una accion “Archivo: cambiar contraseña de usuario” y ejecutar dicha acción desde algun lugar de la aplicación.
  9. Jorge Velasco, me dice que no puede usar mas de 10 parametros en las funciones de V7, mientras que las funciones de V6 no tienen limite de parametros (aparentemente) (editado el 16-dic-2010) y esta es una la solución que yo utilizo para resolver este problema: Parametros en funciones.

Espero que podamos mejorar este articulo entre todos y añadir todas aquellas cosas que puedan llevar a error o confusión.

De momento dejo aqui una pequeña lista, pero ire completandola a medida que vayan apareciendo esos pequeños detalles.

Create PDF    Enviar artculo en formato PDF   
comments: 16 »
oct 1

El control Multivista

Posted in vDevelop

Se plantea una duda razonable sobre la usabilidad o no de un control multivista, sobre su poca flexibilidad, ya que solo puede ser generado verticalmente a modo de filas, y horizontalmente a modo de columnas.

¿Que es un multivista?

Es un objeto pensado para encadenar otros objetos mediante conexiones de salida y entrada entre ellos, asi es, la Salida de un objeto debe ser la entrada del siguiente.

p.e. veamos como seria el multivista clasico de vBase, como visualizar el contenido de 3 tablas: Paises , Provincias y Poblaciones , de forma sicronizada para que al pulsar en la rejilla de paises, se visualizan unicamente las provincias de ese pais, y al pulsar sobre una provincia, se visualicen solo las poblaciones de esa provincia.

Para este ejemplo, necesitamos 3 rejillas (una para cada tabla) , un proceso para cargar la lista de Paises, y 2 procesos para sincronizar las 3 rejillas, uno para la salida de Paises (ficha) y entrada de provincias (lista), y el segundo para sincronizar Provincias (ficha) con Poblaciones (lista)

Todo esto, lo metemos en la coctelera, lo agitamos, y voila, tenenmos un multivista, funcionando

Y a pesar de su aparente potencia, ¿porque no se usa?, asi es, he realizado ya algunas aplicaciones, y aunque no en demasiadas ocasiones, pero he necesitado sincronizar objetos, y aunque el multivista esta disponible desde las primeras versiones, aun no lo he utilizado en ningun proyecto, es mas, (casi me averguenza decirlo) no se como es el editor si es que lo tiene, y tampoco las propiedades del mismo, aunque deduzco que no debe ser complicado enlazar unos cuantos objetos entre si.

La respuesta a esta pregunta, es muy sencilla, con toda la potencia que tiene el multivista, no es nada si hacemos uso de un simple formulario y sincronizamos varios controles objeto.

Y ¿porque?, muy simple, porque para definir la sincronizacion con el formulario y controles objeto, se necesitan exactamente los mismos objetos que para el multivista, y unicamente un formulario (con o sin origen) para sincronizar los controles.

Pero ademas, disponemos de toda la potencia de los Layouts que nos permiten posicionar los controles en cualquier parte del formulario, y no dependemos solo de Horizontal o Vertical como el multivista, y porque llegados a este punto, incluso, el formulario que contiene los controles sincronizados, podriamos incluirla tambien dentro de otro control objeto, si fuera necesario.

Quiza el formulario con controles sincronizados, tenga algo mas de dificultad al definirlo, pero no mucha mas, que el Multivista, pero sus posibilidades son, con diferencia, mucho mayores.

Vale, me dicen que el multivista se puede amalgamar dentro de un formulario, en un control objeto, y … pues eso, que mas razon aun, necesitamos el control objeto para tal operacion, y ya puestos, yo usaria solo controles objeto.

Ante esta situacion, el Multivista, para a ser un objeto de 2ª division, para principiantes, porque, cuando pruebas a sincronizar los controles en el formulario, cuando has estado en 1ª division, ya no quieres volver a 2ª.

Aqui tienes mas informacion oficial sobre el objeto Multivista y tambien puede ver mas en la zona Info de Velneo

Pero, como no espero que hagas un acto de fe y creas todo lo que digo, puedes probar la sincronizacion de controles objeto, en la OpenApp Comic Reader puedes ver como se sincroniza la rejilla con el visor de paginas del comic para realizar la misma tarea, pero mucho mas elegante.

Tambien puedes descargarla de la web de velneo: Comic Reader 1.0

PDF Printer    Enviar artculo en formato PDF   
comments: Comentarios desactivados en El control Multivista
sep 28

Pack: La receta del dia

Posted in analisis, packs, vDevelop

Aqui os dejo todos los platos del menu, por si alguien quiere repetir:

Ahora, que ya has descansado de la comilona, ¿que piensas?

¿Te gusto el post?

¿Te parece posible o probable esta estructura para V7?

¿Crees que Velneo nos diria cuanto me he acercado?

¿O crees simplemente que ya no tengo neuronas?

😀

PDF Creator    Enviar artculo en formato PDF   
comments: 4 »
sep 27

El chupito (La receta del dia – y VI)

Posted in analisis, vDevelop

el chupito

el chupito

El chupito de hiervas que no falte, aunque estemos “a reventar”

¿Has prestado mucha atencion a los POST anteriores relacionados?, si la respuesta es afirmativa, ¿serias capaz de decir que es lo que falta en el grafico presentado en el postre?, porque ¡esta incompleto!, y no me refiero a los cambios realizados para abstraer la tabla de objetos. Si lo sabes, haz el favor de ilustrarnos, que ya perdi la neurona por completo.

Y ahora que tenemos una idea de como podria funcionar V7, parece todo tan facil.

Pues no, no es tan facil, ahora hay que conseguir que todos los objetos funcionen correctamente, y que se representen graficamente segun sus propiedades y atributos.

La verdad, no estoy seguro de cuanto me he podido acercar a lo que seria el diseño de V7, eso si, sin profundizar demasiado para no complicarlo mas.

Pero si solo me hubiera acercado un poquito, ahora el chupito, deberia ser una invitacion por parte de Velneo, ¿como?

Pues creando una API que nos permitiera cambiar algunas de las propiedades de los objetos “en caliente”, y ¿para que?

Pues ahora imaginad que queremos crear un casillero, pero no se cuantas columnas debe tener, porque el nº de columnas va a depender del nº de registros que hay en una tabla. Si pudieramos cambiar esta propiedad en el objeto casillero, en caliente, seria un puntazo. Claro que esto tambien se podria solucionar con un campo formula en la propiedad “Nº de columnas”.

Ahora solo falta imaginar que otras propiedades de objetos deberian estar abiertas al desarrollador, (pero no todas) que luego surgen los problemas.

Yo me pongo a imaginar, y se me ocurre, ¿por que no?

Y si pudieramos exportar las propiedades de los objetos en algun formato estandar como XML, CSV, LML :) , JSON.

Y si ademas pudieramos importar los objetos y sus propiedades en alguno de estos formatos, esto nos permitiria crear objetos en caliente (he dicho “objetos”, no “clases”)

Sigo soñando … 😀

Y luego me despierto … :(

Lo dicho, al final para que sirve todo esto que os he contado, ¡para nada!, solo era una chifladura mia, o ¿si sirve?

PDF Creator    Enviar artculo en formato PDF   
comments: 3 »
sep 24

El postre (La receta del dia: y V)

Posted in analisis, vDevelop

Y para finalizar, un postre helado, nata con nueces y un poquito de caramelo liquido, “uhmm”

Y de postre, como quedaria el esquema completo de lo visto hasta el momento,

Esquema completo
Esquema completo

Pero esto no es lo que habiamos visto en los platos anteriores, bueno, el primer plato si, pero el segundo ha cambiado,

¡CIERTO!, el segundo plato lo hemos cambiado, pero ha sido para mejorar.

Por eso es el postre, he llevado la abstraccion al limite, y eso significa que “OBJETOS” permite definir cualquier tipo de objeto, una solucion, un proyecto (de cualquier tipo), un objeto de un proyecto (una tabla, un formulario, un informe, una variable, un tubo de ficha, etc.)

Y ¿como podemos hacer esto?, pues utilizando las clases. Si ya hemos definido clases para cada tipo de objeto, ahora solo tenemos que crear un objeto y decirle a que clase pertenece.

Ademas, los proyectos, son objetos ¿no?, tienen propiedades, y los Objetos, pues tambien tienen propiedades, y por supuesto, los Controles (sub-objetos), tambien tienen propiedades.

Pues fijate en el grafico, y veras como “Clases” hereda de si misma, para permitir sub-clases, y del mismo modo, Objetos, puede heredar de si misma para tener sub-objetos o “controles”. De este modo un INDICE es un sub-objeto de TABLA, y pertenece a una sub-clase “tabla.indice” que hereda de “tabla

Y ahora que nos hemos comido el postre y ha finalizado el banquete, espero que esteis saciados y quiza necesiteis una siesta para reposar tanta comilona , pero no olvideis una cosa,

hay que lavarse los dientes, 😀

¿alguien quiere un chupito? …

PDF Printer    Enviar artculo en formato PDF   
comments: 3 »
sep 23

El segundo plato (La receta del dia IV)

Posted in analisis, vDevelop

Objetos

Objetos

Por fin, ya tenemos el entrecot a la pimienta, aunque si alguien desea pescado, que lo diga …

Ahora si, vamos a crear nuestros primeros objetos, y para eso teniamos la estructura inicial, que combinada con el primer plato, nos va a permitir crear cualquier objeto

¿Como?

Sencillo, ahora creamos un objeto y le indicamos que pertenece a la clase “variable“, y como esta clase ya sabe mucho, nos muestra unicamente las propiedades que podemos asignar al objeto.

Pero, si estamos dentro de un proyecto de datos, como sabemos que objetos podemos crear. Pues sencillo, solo tenemos que hacer una consulta de todas las sub-clases que heredan de proyecto y que tengan la propiedad de_datos = True, asi tenemos como resultado: Variables, Tablas, Tablas estaticas, Constantes, Funciones, etc.

Y ahora que ya hemos creado el objeto, este hereda todas las propiedades de la clase a la que pertenece y ¡voila!, ahora ya solo queda modificar los parametros de esas propiedades para conseguir un objeto unico y diferente al resto.

Entre las propiedades del objeto tenemos el Identificador, el Nombre o descripcion, Comentarios, Tipo de variable, etc.

Pero que nadie se levante, que aun nos queda el postre.

PDF Download    Enviar artculo en formato PDF   
comments: 4 »
sep 22

El primer plato (La receta del dia III)

Posted in analisis, vDevelop

Ahora que ya tenemos los ingredientes y hemos puesto unos entrantes para hacer la espera mas llevadera,veamos que tal guisa el cocinero,

de primero, una sopita de marisco, rica y facil de digerir, 😉

Clases y propiedades

Clases y propiedades

Ahora necesitamos definir las diferentes propiedades que necesitamos para cada objeto, y creamos una tabla para este efecto.

Las clases, pues de lo mas importante que vamos a necesitar:

Cada clase nos va a permitir definir un tipo de objeto, y a cada una de estas clases definidas, le vamos a asignar un grupo de propiedades, p.e.:

  • Si definimos la clase “proyecto“, podriamos asignarle las propiedades: de_datos (que admitiria los valores True/False) y la propiedad de_aplicacion (tambien con los valores True/False)
  • Podriamos definir una sub-clase “variable” (proyecto.variable), esto significa que tendria las propiedades de la clase principal “proyecto” y ademas, sus propios atributos. Asi una variable global, podriamos saber si puede pertenecer a un proyecto de datos, a uno de aplicaciones, o incluso a ambos. Y como atributos propios, podemos saber si la variable es Numerica, Alfabetica, Booleana, etc, ademas de si es Array (True/False), y si lo es, el numero de elmentos.
  • Podriamos definir tantas clases como objetos tengamos disponibles, y a cada uno, darle unas propiedades diferentes.

Podria incluir mas ejemplos con otros objetos, pero no quiero hacer el articulo mas pesado de lo absolutamente necesario y es para todos los objetos igual, definir sus propiedades.

Las clases, ademas son perfectas para transmitir los genes, como hemos visto al crear la clase “variable”, que hereda de su progenitor mas cercano, el “proyecto”.

Pero claro, hasta ahora, aun no hemos creado ningun objeto, lo unico que podemos hacer es: definir las propiedades que tendra cada objeto, pero no tenemos los objetos, aun no.

Se va abriendo el apetito, eh!

Voy pidiendo el entrecot a la pimienta, 😀

Create PDF    Enviar artculo en formato PDF   
comments: 6 »
sep 21

Los entrantes (La receta del dia II)

Posted in analisis, vDevelop

Antes de empezar a cocinar nuestra receta, tenemos que preparar los ingredientes, y porque no decirlo, el comensal tiene que esperar un poco, y asi tendra mas apetito y sera mas permisivo ante posibles excesos o carencias en los condimentos.

Pero si no deseais esperar, se preparan unos entrantes y a picar, 😉

Asi pues, voy a plantear un ejemplo:

Imaginad que debemos desarrollar un proyecto con V7, o un mapa con V6 (da igual), y la mision es permitir crear los diferentes objetos (tablas, formularios, informes, etc) que luego vamos a necesitar para nuestro interfaz.

¿Que es lo primero que necesitariamos?

La respuesta es sencilla, lo primero que hacemos en todos los proyectos es definir las estructuras de datos, tablas, campos, indices, etc, definimos “el proyecto de datos”. Y si usamos V6, pues definir la parte izquierda del editor.

Y como seria esta estructura para V6:

Esquema del editor en V6

Esquema del editor en V6

Al menos asi es como hice el esquema de datos para los objetos de la V6, pero esto es pura ficcion, a menos que alquien de Velneo lo ratifique.

Y ahora que todo es mucho mas fino, esta mas pulido y mejorado (al menos en teoria), en V7 seria:

Esquema de vDevelop V7

Esquema de vDevelop V7

La diferencia es clara, la abstraccion de V7 es mucho mas eficiente.

Con estas estructuras de tablas, ya seriamos capaces de definir practicamente cualquier objeto, ¿no?, pues va a ser que ¡NO!

Y es que, aun falta mucho para llegar al postre, aun estamos en los entrantes, 😀 (no olvideis lavaros los dientes al finalizar )

¿vamos a por el primer plato?

Create PDF    Enviar artculo en formato PDF   
comments: 5 »