10 Nov Sabías que (1) …
Hoy os propongo un «juego»…
Se sincero…
El juego se llama «Sabías que?
¿Sabías que se puede añadir un campo nuevo a una tabla que ya contiene datos y rellenarlo con un valor inicial para los registros que ya existen?
- Crear el nuevo campo con el valor inicial si es necesario.
- Añadir un subobjeto Traspaso de campo seleccionando el nuevo campo y rellenando la fórmula con el valor que tendrá inicialmente en los registros existentes.
¿Sabías que los campos Alfa 256 se pueden ordenar sin tener en cuenta mayúsculas/minúsculas, acentos y signos de puntuación?
- Crear un índice por el campo Alfa 256 con el Modo igual a Campo porción. Establecer la longitud del texto que se incluirá en el índice y la conversión a Alfa 40 para no tener en cuenta mayúsculas/minúsculas, acentos y signos de puntuación.
¿Sabías que no es necesario usar vInstallBuilder si solo queremos actualizar la Aplicación y no es necesario copiar nuevas tablas con datos iniciales?
- Copiar los ficheros actualizados de los proyectos de aplicación (vca) y de datos (vcd) a la carpeta cajas de vServer (en un sistema Windows 64 es C:/Windows/SysWOW64/config/systemprofile/Velneo/cajas). La subcarpeta donde copiamos los ficheros vca y vcd tiene el mismo nombre que la solución a la que pertenecen.
- Reinicar la solución desde vAdmin teniendo en cuenta que no puede haber enganches activos en el proyecto de aplicación principal ni en todos los proyectos heredados por la solución.
¿Sabías que el servidor vServer desconectará automáticamente aquellos componentes clientes de edición (vDevelop, vTranslator) y de administración (vAdmin) tras 12 horas sin uso?
- En el caso de clientes de edición (vDevelop y vTranslator), no se deshará la desprotección de los proyectos, con el fin de permitir enviar los cambios realizados en esa sesión de edición que se ha mantenido abierta e inactiva durante más de 12 horas. En ese caso, para guardar los cambios simplemente deberíamos ejecutar la opción de conexión con el servidor y, una vez restablecida, guardar el proyecto que estábamos editando.
¿Sabías que si un enganche de vClient se ha perdido (por ejemplo un fallo de conexión), el enganche quedará activo en el servidor durante 5 minutos? Este tiempo es configurable.
- El tiempo de desconexión del enganche es configurable mediante una entrada en el registro o archivo de configuración del servidor. La entrada se llama ConnectionExpiredSeconds y el valor por defecto es 300 segundos. El tiempo debemos indicarlo en segundos y la clave se lee en el arranque del servidor.
Por ejemplo, en Windows la clave se guarda en HKEY_USERS/.DEFAULT/Software/Velneo/vServer/ConnectionExpiredSeconds para el usuario system.
¿Sabías que cuando instanciamos un Objeto mediante un manejador de objeto podemos dispararlo las veces que queramos en el mismo proceso?
- El manejador de objeto es local al proceso o manejador en el que se haya declarado.
- Una vez declarado el manejador, podemos asignar valores a las Variables locales y Disparar el Objeto las veces que queramos.
Por ejemplo, queremos obtener todos los pedidos de las zonas geográficas donde el Usuario es responsable:
Rem ( Declaramos el manejador del objeto Búsqueda ) Crear manejador de objeto ( hBuscar, Búsqueda BUS_PEDIDOS@MiApp_app ) Rem ( Asignamos valor a las variable locales del Objeto) Set variable local de objeto ( oBuscar, NPERIODO, NPERIODO ) Set variable local de objeto ( oBuscar, NID_TIPO_PED, NID_TIPO_PED ) Rem ( Solo se buscan los pedidos de las Zonas geográficas del Usuario conectado ) Cesta: Crear cesta local ( PEDIDOS@MiApp_dat, cesPedidos ) Rem ( Obtenemos las Zonas geográficas del Usuario ) Cargar lista ( ZONAS_USUARIOS@MiApp_dat, ZONA_USU, NID_USUARIO, , , ) Rem ( Disparamos la búsqueda tantas veces como Zonas geográficas tenga asignadas el Usuario ) Rem ( Acumulamos el resultado de las búsquedas en una cesta ) Recorrer lista sólo lectura Set variable local de objeto ( oBuscar, CID_ZONA, #ZONA ) Disparar objeto ( oBuscar, No aplicable, ) Cesta: Agregar lista a la cesta ( cesPedidos ) Rem ( Devolvemos la lista de pedidos ) Cesta: Procesar ( cesPedidos ) Ordenar lista ( #FECHA_ALTA, , , , , ) Invertir lista Añadir lista a la salida
¿Sabías que las cestas declaradas en un manejador son compartidas con los manejadores que éste llama?
- Las cestas declaradas en un Manejador del formulario son visibles también desde los Manejadores que se ejecutan desde el Manejador inicial.
- Hay que ser conscientes de este hecho y en su caso evitar usar el mismo nombre de Cesta en los manejadores de un formulario.
En este ejemplo la cesta cesEmpleados es compartida por el manejador SECUNDARIO llamado por el manejador PRINCIPAL.
Rem ( Manejador PRINCIPAL ) Rem ( ----------------------------------- ) Rem ( Una Cesta creada en un manejador es compartida con los manejadores que éste llama ) Cesta: Crear cesta local ( EMPLEADOS@MiApp_dat, cesEmpleados ) Cargar lista ( EMPLEADOS@MiApp_dat, NAME_TROZOS, "jos", , , ) Cesta: Agregar lista a la cesta ( cesEmpleados ) Cesta: Procesar ( cesEmpleados ) Crear manejador de objeto ( oLisEmplados, Rejilla GRD_EMPLEADOS@MiApp_app ) Añadir lista al objeto ( oLisEmplados ) Disparar objeto ( oLisEmplados, No aplicable, ) Rem ( Ejecuta un Manejador secundario ) Interfaz: Ejecutar manejador de evento ( SECUNDARIO, ) Rem ( Manejador SECUNDARIO ) Rem ( ----------------------------------- ) Rem ( Si el manejador cesEmpleados ¡¡ya existe!! la cesta en lugar de crearse se reutiliza con los registros que tenga ) Cesta: Crear cesta local ( EMPLEADOS@MiApp_dat, cesEmpleados ) Cargar lista ( EMPLEADOS@MiApp_dat, NAME_TROZOS, "luis", , , ) Cesta: Agregar lista a la cesta ( cesEmpleados ) Cesta: Procesar ( cesEmpleados ) Rem ( Aquí obtenemos los Empleados "jos" más los empleados "luis" ) Crear manejador de objeto ( oLisEmplados, Rejilla GRD_EMPLEADOS@MiApp_app ) Añadir lista al objeto ( oLisEmplados ) Disparar objeto ( oLisEmplados, No aplicable, )
Y ahora confiesa… ¿cuántas sabías?
Déjame un comentario mas abajo y comenzamos el debate.
Gabri
Posted at 18:29h, 10 noviembrePues….. 3 de 7.
Muy buena la de disparar varias veces el mismo objeto.
Este tipo de «tips» enriquecen…
Os felicito por las publicaciones.
Saludos
Francisco José Vila Martín
Posted at 18:33h, 10 noviembreGracias por la parte que me toca… en este caso poca.
El mérito es del «maestro» Satué que ha aceptado compartir su conocimiento.
Gracias también por participar.
edgardo
Posted at 18:32h, 10 noviembresabia poco
Francisco José Vila Martín
Posted at 18:37h, 10 noviembreYa sabes mas…
Gracias por pasarte por aquí.
Fernando
Posted at 18:44h, 10 noviembreAhora se porque a la mañana siguiente tengo el vDevelop desconectado.
Un saludo.
Miguel
Posted at 19:17h, 10 noviembreMuy bueno, necesitamos 300 o 400 ¿Sabias que…? mas.
Gracias.
Oscar Juárez
Posted at 19:38h, 10 noviembreGenial el aporte, muchas gracias
Un saludo
Oscar
Jose Manuel
Posted at 21:44h, 10 noviembreMuy bueno, de gran utilidad
Julio Hoyos Vise
Posted at 22:36h, 10 noviembreAl fin comprendí las Cestas compartidas, GRACIAS!!!
Paco Satué
Posted at 00:41h, 11 noviembreMe alegro que os hayan gustado.
Por supuesto habrá más ….
Saludos
Paco Satué
Antonio Osorio
Posted at 01:18h, 11 noviembreMuy buenas todas las aportaciones, gracias Paco por compartir conocimiento y a Vila por la página.
Jordi Mas
Posted at 09:48h, 11 noviembreGenial Vila!! Muchas Gracias
Curiosidades sobre Velneo 20 con nuestro juego ¿Sabías que?
Posted at 09:03h, 26 enero[…] Por si te perdiste la primera parte del juego y quieres ganar el primer “quesito” del trivial, aquí te dejo el enlace ¿Sabías que?… Parte 1 […]
Eladio Madrigal Azofeifa
Posted at 16:43h, 21 julioMuchas gracias Paco, en readlidad casi todos los puntos son nuevos para mi, me han ayudado mucho a saber porque en algunas ocasiones ocurren algunos eventos que me han parecido extraños.
Saludos y gracias por compartir tus conocimientos
VictorGT
Posted at 12:22h, 05 octubreEn el truco de rellenar un campo nuevo con un valor usando «Traspaso de campo», falta decir que debes poner el nombre del nuevo campo en los dos sitios, «Nombre campo nuevo» y «Nombre campo viejo». Si lo pones solo en «Nombre campo nuevo» NO funciona. Yo añadiria esto.
Je, je, acabo de probarlo. Uso la v 18.1.
Saludos
Francisco José Vila Martín
Posted at 13:07h, 05 octubreHola Víctor:
Gracias por tu puntualización.
Un saludo
Paco Satué
Posted at 22:51h, 11 octubreHola Víctor.
En las versiones 2x solo es necesario rellenar el «Nombre campo nuevo».
Comprobado.
Saludos
Paco Satué
Ricardo Orts
Posted at 14:34h, 07 diciembrePues yo sabia 5 de 7, la de los tiempos nunca he conseguido saberlo a ciencia cierta como funcionaban. Gracias