cargar enlace maestro por defecto


([N1] atcal_pbas) #1

Tengo un formulario asociado a una tabla x dicha tabla tiene un enlace maestro con una tabla y.
En el formulario quiero cargar datos de dicho enlace por defecto al abrir el formulario pero o logro traer la informacion a mi formulario…

agradezco su colaboracion


([N1] ViperNET) #2

Lo único que necesitas es hacer referencia a la “tabla.campo”

Suponiendo que tienes dos tablas, Tipos de viviendas y Viviendas.

Si lo quieres hacer a nivel de tabla, lo puedes hacer en el “Contenido inicial” del campo. p.e. “Ver imagen 1”

O si lo que quieres es hacerlo en el formulario, usas un evento con lo siguiente:

Modificar campo (VALOR, #DIMENSION*#TIP_VIV.VALOR_M2)

Espero haber ayudado

Victor
[attachment=24660,1927]




([N1] atcal_pbas) #3

ya lo e hecho de las dos formas asociando en la tabla y con el evento en el formulario pero no me funciona…

tengo una tabla llamada empresas en esta tabla tengo solo un registro por el momento este registro es el que deseo se cargue por defecto en un formulario asociado a una tabla factura… necesito que se cargue al abrir el formulario.

agradezco tu ayuda.


([N1] ViperNET) #4

No hay misterio en esto, el proceso es muy simple. Creo que debes tener algún error en el proceso.

Sé que es una tontería pero…¿si estás asignando primero el valor al campo empresa de la tabla facturas?

Porque sino asignas primero ese campo, obviamente no podrás obtener acceso a los datos de la tabla empresa.

Victor


([N1] atcal_pbas) #5

te cuento, en la tabla en el enlace asigne el valor #EMPRESAS.NAME de esta forma no me funciono…
luego en el formulario hice lo mismo. lo cual tampoco funciono. de hay cree un campo llamado empresa en la tabla factura es decir en la tabla factura tenia el enlace con empresa y un campo empresa.
en el formulario cargue el campo empresa y en el evento modifique el campo empresa por #EMPRESAS.NAME y cree una conexión de evento inicializado lo cual tampoco funciono… en otros casos me funciona de maravilla ya que asocio una vista de datos a los campos o mediante un localizador el problema es que deseo que se cargue al abrir el formulario es hay donde tengo el lió.


([N1] ViperNET) #6

A ver, a ver, a ver…

¿¿¿

te cuento, en la tabla en el enlace asigne el valor #EMPRESAS.NAME de esta forma no me funciono…
luego en el formulario hice lo mismo. lo cual tampoco funciono. de hay cree un campo llamado empresa en la tabla factura es decir en la tabla factura tenia el enlace con empresa y un campo empresa.
en el formulario cargue el campo empresa y en el evento modifique el campo empresa por #EMPRESAS.NAME y cree una conexión de evento inicializado lo cual tampoco funciono
???

Si lo que quieres es tener relación entre empresas y facturas, lo primerito y fundamental es hacer un “enlace plural” desde empresas a facturas, con eso, se crea automáticamente un campo “Empresa” en la tabla facturas. Una ves hecho esto, ya tienes acceso a los campos de la tabla empresa desde facturas y viceversa desde cualquier lado, sea a nivel de tablas o de aplicación.

No hay forma de que te falle.


([N1] atcal_pbas) #7

si en efecto ya e revisado y el enlace plural esta perfecto…
no se que mas probar…
la comunicación entre tablas esta perfecta e probado de diferentes formas en la tabla y el formulario pero aun no me trae la información.
como te decía ya me a funcionado en otras ocasiones con un enlace cargo varios campos de ese enlace pero la diferencia es que al enlace cargo una vista de datos o un localizador al desplegar cualquiera de los dos y seleccionar el registro lo carga sin complicación… pero si es posible que me arrastre un registro de una tabla sin indicarle cual es sin hacer una selección.

agradezco tu atención y ayuda.


([N1] ViperNET) #8

Al leer detenidamente tu comentario…

tengo una tabla llamada empresas en esta tabla tengo solo un registro por el momento este registro es el que deseo se cargue por defecto en un formulario asociado a una tabla factura… necesito que se cargue al abrir el formulario.

…se me viene a la mente…

Estás intentando obtener un dato de una tabla maestra “empresa” desde un formulario asociado a la tabla plural “facturas” pero esto lo quieres hacer en el evento inicializado del formulario. Si esto es así, lo que pasa es que todavía no sabes qué empresa es la que estás eligiendo para obtener sus datos. Entonces tienes dos opciones:

  1. Creas una variable global “$EMP_ID@App” y al momento de cargar la aplicación “AUTOEXEC” pides al usuario que seleccione la empresa con la que desea trabajar y el código lo almacenas en la variable global.

En el evento “init” del formulario factura haces:

If (#ID=0)
Modificar campo(EMP, $EMP_ID@App)

  1. Creas una variable local “EMP_ID” en el formulario factura y en el evento “init” haces:

Cargar lista (EMP@App, ID,)
Seleccionar ficha por posición (1)
Leer ficha seleccionada
Set (EMP_ID, #ID)

If (#ID=0)
Modificar campo(EMP, EMP_ID)

Con eso ya tienes enlazada la empresa a la factura y puedes acceder a sus campos.

La mejor opción sería la 2 pero debes analizar tus necesidades.

Victor


([N1] atcal_pbas) #9

Lo he hecho como me lo sugieres quiero saber si esta correcto te adjunto una imagen de el evento.

de esa manera en el campo #EMPRESA al abrir el formulario me carga un “0” pero de querer arrastrar mas información no me muestra nada como por ejemplo el nit o el nombre de la empresa. [attachment=24673,1928]




([N1] ViperNET) #10

Solo te falta la instrucción “Leer ficha seleccionada” después de “Seleccionar ficha por posición (1)” para que lea el registro.


([N1] atcal_pbas) #11

Te agradezco muchísimo ya esta funcionando perfectamente.

mil y mil gracias por tu atención e interés.


([N1] ViperNET) #12

No es nada.

Cuando se puede ayudar se lo hace…

Victor


([N1] ViperNET) #13

Aunque sabes, se me ocurre algo mejor…

Si solo vas a tener un registro en la tabla empresas y sabes que ese registro siempre va a tener el ID = 1, entonces puedes poner en el campo “EMPRESA” de la tabla “Facturas” un valor inicial = 1, en el campo NIT de “Facturas” como valor inicial = “#EMPRESA.NIT” y te evitas de estar programando algo en el formulario.

Victor


([N1] atcal_pbas) #14

Disculpa la molestia una pregunta mas… si el campo que deseo es de tipo dibujo como lo cargo…

no existe una variable de este tipo.

Gracias


([N1] ViperNET) #15

Buena pregunta!!!

Ni idea, jejejeje


([N1] atcal_pbas) #16

agradezco tu ayuda.

alguien tiene idea de como hacerlo.


([N2] romherz) #17

saludos! ViperNET menciona que se debe de poner en el evento “init" del formulario, pero donde se encuentra eso? realice el mismo ejemplo de aca listado, pero ni siquiera lo lee, como no hay depurador, puse un mensaje del sistema, pero nunca se ejecuta, recuerdo que en VB6 estan listados los eventos del formulario, cuando inicia el formulario, cuando se cierra, etc, etc, etc, … pero aca donde encuentro ese evento de init? existe el manejador de eventos, pero como le digo que lo cargue cuando inicia el formulario, me podrian decir donde es? gracias!


([N2] romherz) #18

saludos! ya vi como funciona, revise en el foro y vi que se hace cuando se genera la conexion del evento, ya pude realizar el ejemplo que mencionan, perdon y disculpen la molestia! … gracias …!