Alimentar formulario con varias tablas


([N1] Plastimundo) #1

Mi pregunta es: como puedo alimentar un formulario con información de dos o mas tablas, necesito que cuando se cree el formulario muestre el primer registro de la tabla X y tabla Y, agradezco a quien pueda orientarme, yo no he podido lograrlo.

Mauricio C.


([N1] Giuseppe::Komenco) #2

Si esas tablas no están relacionadas, tendrás que usar un formilario sin tabla de origen y usar procesos (sin origen también) y con destino la tabla a la que pertenecen, haces un cargar lista (de la tabla que quieras) y luego lanzar ese proceso desde el formulario.

Ejemplo de cargar dos registros de dos tablas y mostrarlos en dos rejillas.
Te creas dos rejillas de las tablas en cuestión con los campos que te interesen.
.
PROC_1 (Sin origen, Destino lista Tabla 1)
Cargar Lista (TABLA1) (resuelves el índice para que te cargue el registro que necestias)
Añadir lista a la salida
.
PROC_2 (Sin origen, Destino lista Tabla 2)
Cargar Lista (TABLA2) (resuelves el índice para que te cargue el registro que necestias)
Añadir lista a la salida
.
En el formulario en cuestión, añades dos vista de datos, y ambas, tendrán, como objeto 1 que alimenta, uno de los procesos en cuestión, y como segundo objeto su rejilla en cuestión, y para la otra vista de datos, idem con el otro proceso.
.
Habrán mejores maneras de hacerlo, pero sin más datos......
.
Ésto es para que te hagas una idea de por donde irían los tiros.
.
Un saludo.


([N1] Pepeto) #3

como dice Giussepe, no das mucha informacion sobre las relaciones de tus tablas.

En cualquier caso, si tienes existe una relación entre las tablas de maestro/plural, quiza la mejor forma de hacerlo es con el Puntero Singular de plural por posicion.

Con el, puedes posicionar en cualquiera de los registros de un plural, donde 1 es el primer registro y sysListSize es el ultimo

http://velneo.es/foros/topic/el-modelo-de-base-de-datos-de-velneo-v7

un saludo.
José Luis
http://www.ascsl.com


([N1] Plastimundo) #4

Gracias por su ayuda, me perdonaran, pero apenas estoy iniciando con VELNEO. Les cuento que es lo que quiero.
Lo que tengo es una aplicación que debe facturar metros cúbicos de agua, la idea es que el software mantenga una configuración de metros mínimos consumibles los cuales tendrán un valor fijo hasta X metros, esta información la tengo en una tabla, lo que el sistema debe hacer es cargar los datos del cliente, los cuales se encuentran en otra tabla, comparar lo consumido contra el valor fijo y si el consumo es superior a lo configurado debe cobrar el valor fijo mas el valor de lo excedido y cuando guarde debe cargar el siguiente cliente y así sucesivamente hasta el final.


([N4] mperez) #5

Hola Plastimundo.

No tienes que alimentar nada, en Velneo ya esta alimentado.

Si esta relacionado en base de datos, es accesible tu información desde cualquier punto.

Por ejemplo si en base de datos, tienes desde linea de factura un enlace a Cliente, y de este un enlace a la Ciudad, y de ciudades un enlace a la tabla Pais.

En el formulario, en cualqueir objeto o incluso desde un campo de la tabla Linea de factura, tienes en todo momento acceso por ejemplo al nombre del Pais, pudiendo operar con el, utilizarlo para un campo formula o para calcular el valor inicial de cualquier otro campo en combinacion con otros, o incluso para una funcion que le de valor a este campo.

Y por supuesto sacar simplemente el nombre del país en el formulario de lineas de facturas

O si lo complicamos un enlace a Zona, puedes tener un enlace a Tarifas, cuya clave se componga de Zona, Consumo Minimo, COncumo máximo y el precio a aplicar.

Te aconsejo que antes de empezar con temas complicados, dediques un tiempo a entender "Los fundamentos de Velneo".

Precisamente , lo que Velneo te proporciona es que gracias a sus variados tipos de enlace y al peculiaridad de estos, una vez definidos en la Base de datos, podrás acceder a cualquier información enlazada desde cualquier sitio, sea proceso, dato o como es tu caso Formulario.

Es decir la gran ventaja de Velneo es que va a ser la propia base de datos la que te lo resuelva.

Me consta que este apartado, lo tenemos un poco abandonado, ya que hasta ahora nos hemos centrado demasiado en explicar V7 a los que ya conocen Velneo y su Base de Datos, Explicar estos fundamentos a los nuevos es una asignatura pendiente, pero te recomiendo encarecidamente http://velneo.es/tutor-de-analisis/ . Mirate la solucion de Tarifas, por ejemplo, es parecido pero lógicamente un poco mas complicado.

Vamos a publicar unos vídeos oficiales en esa linea y en mi Blog http://mpoliver.wordpress.com/ , si tengo tiempo y de forma particular, sacar una serie de articulos sobre ese tutor, que creo maravilloso , olvidado y que si lo trabajamos aporta mucho mas de lo que a primera vista pueda parecer.

Esa es la gran ventaja de Velneo, no tienes que hacer cientos de procesos para calcular a la hora de hacer el formulario o en el momento de faturar todos esos procesos, la base de datos lo debe tener hecho por ti.

En Velneo tendrás que pensar en la Base de Datos, y podrás tener resuelta tu aplicación sin necesidad de crear un solo objeto de interface. De esta manera en tu ejemplo si tienes una Tabla con una linea de detalle con lo que tienes que facturar a un cliente por su consumo de agua, en esa tabla, puedes tener una serie de calculos y enlaces en función de Clientes, Zonas, tarifas, consumos mes o años o cuanto lo queiras complicar, pero al final resuelto en un campo de tu base de datos y accesible desde cualquier punto. .

Si no puedes calcularlo en la base de datos, es por que tus tablas , campos enlaces, no son los correctos. De esta manera lo que es resuelto en edicion o diseño es resuelto despues en ejecución. No se vuelve a resolver.

Aunque siempre te quedará el camino tradicional, hacerlo de foma similar a como lo hacias en Visual Basic, .net o lo que sea , mediante procesos, pero con el paso de los meses o años cuando vuelvas a tus primeros programas, descubrirás la cantidad de trabajo inutil que realizaste para cosas que entones te resultarán obvias.

No te agobies tampoco pasa nada, pero eso no quiere decir que no te aconseje empieces por ver todas las posibilidades que te brinda la base de datos (La combinación de todos los tipos de punteros, eventos, campos formula, Actualizaciones y funciones incluidas en la base de datos)

Empieza por casos mucho más sencillos, descubre esa dinamica y al final avanzaras a la velocidad de la luz si aasimilas la potencia de ese paradigma

Bueno, menudo rollo te he soltado, se ve que ando relajado , sin trabajo y de día de fiesta.


([N4] mperez) #6

Después del rollo que te he echado he dedidido ponerte un ejemplo práctico con lo que comentas.

Tienes una Tabla de tarifas maestra, que para complicarlo la haremos por Pozos, de esa manera en la tabla de tarifas tendrás Pozo 1, Pozo 2, etc . Para nuestro ejemplo nos basta que contenga un campo nombre

Ya que consideramos que cada Pozo tiene un precio, y en cada pozo el precio depende ademas del consumo.

Ahora tienes una tabla Submaestra o Maestra, me da igual, pero que es plural de la anterior, y que denominaremos Tarifas por consumo.

Esta segunda tabla, tendrá
- Un campo que sera un puntero al pozo
- Un campo que sera el CONSUMOHASTA , numerico
- Un Campo Precio por Metro cúbico

y tendrá un indice para crear el plural o relacion uno a muchos, un pozo, todas sus tarifas, compuesto de POZO y CONSUMOHASTA

Ahora solo te queda crear un enlace Singular del Plural por indice en la tabla Tarifas, con la particularidad que le diras que apunta al registro calculado o al inmediatamente anterior. Resolviendo el campo Consumohasta, por una variable o uncampo de la misma tabla

Listo, ya puedes enlazar o utilizar como valor inicial el precio por consumo de un pozo en concreto de cualquier campo de tu linea de tarifas.

No se si es la mejor solución, ya que tampoco le he dedicado mucho tiempo, es posible que con punteros virtuales sea mas directo, pero en cualquier caso, ya tendrás para siempre el precio por consumo de cualqueir pozo en cualqueir sitio de la base de datos donde necesites calcular algo más y despues visualizarlo en formularios, informes o en otros procesos.

Se trata solo de que veas las posibilidades


([N1] Plastimundo) #7

Muchas gracias por tu orientación, creo que iniciare con el tutor y luego con el ejemplo que me haz dado, creo que la mayor dificultad es tratar de abordar los problemas como lo hacia en un ambiente visual, creo que centrare mas mi aprendizaje a las bases de datos por ahora.