PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Tablas Maestro-Detalle
Tablas Maestro-Detalle
Iniciado por Gerardo Sánchez Suárez, 15,jul. 2008 14:09 - 11 respuestas
Publicado el 15,julio 2008 - 14:09
Hola:

Acabo de adquirir WD12 y tengo una duda sobre tablas. Tengo dos tablas,
una muestra el encabezado de documentos (facturas) y la otra debe de
mostrar las partidas (renglones) de cada factura. Ya logre, mediante
QUERY que me muestre los encabezados de las facturas, pero, ¿cómo
consigo, mediante QUERY que me muestre los renglones de cada factura
cuando selecciono algun renglón de la tabla de facturas?; vaya, como
lograr el link/join adecuado. Ya revise mi análisis y ademas no
encuentro un ejemplo de este tipo, estoy un poco perdido por lo que
agradeceré cualquier pista que me oriente a lograr este objetivo

Saludos cordiales

Gerardo
Publicado el 15,julio 2008 - 19:46
que version tienes la xpress o la full
Publicado el 16,julio 2008 - 09:47
Todas las tablas tienen un evento que ROW SELECTION, si en este evento de la tabla principal relacionas, por ejemplo, el numero de factura selececionado en la tabla principal con la tabla detalle, conseguiras lo que quieres

ROW SELECTION tabla principal
tabladetalle..filter = tablaprincipal.col_n_factura (nombre de la columna)
TableDisplay(tabladetalle)


Esta es una de las multiples formas que hay par realizar este proceso.
Publicado el 16,julio 2008 - 09:51
wilmer abreu escribió:
que version tienes la xpress o la full



Full
Publicado el 20,julio 2008 - 11:35
Salvador:

Muchas gracias por tu respuesta, ya había probado eso pero no me
funciono; obviamente algo estoy haciendo mal. Creo que primero necesito
"desaprender" Clarion y aprender WinDev y tomar esto con mas calma. Voy
avanzando paso a paso y en una de estas logro dar en el clavo.

Saludos Cordiales

Gerardo

Salvador Soler escribió:
Todas las tablas tienen un evento que ROW SELECTION, si en este evento de la tabla principal relacionas, por ejemplo, el numero de factura selececionado en la tabla principal con la tabla detalle, conseguiras lo que quieres

ROW SELECTION tabla principal
tabladetalle..filter = tablaprincipal.col_n_factura (nombre de la columna)ar
TableDisplay(tabladetalle)


Esta es una de las multiples formas que hay par realizar este proceso.

Publicado el 21,julio 2008 - 12:13
Hola. Efectivamente debes dejar de pensar como "clarionero". Normalmente en
Windev la solución suele ser mas fácil.

Un saludo de otro "clarionero".

Rubén Sánchez Peña

"Gerardo Sánchez Suárez" <gerardo.sanchez@solucomp.com.mx> escribió en el
mensaje de noticias news:4882092a@news.pcsoft.fr...

Salvador:

Muchas gracias por tu respuesta, ya había probado eso pero no me
funciono; obviamente algo estoy haciendo mal. Creo que primero necesito
"desaprender" Clarion y aprender WinDev y tomar esto con mas calma. Voy
avanzando paso a paso y en una de estas logro dar en el clavo.

Saludos Cordiales

Gerardo

Salvador Soler escribió:
Todas las tablas tienen un evento que ROW SELECTION, si en este evento de
la tabla principal relacionas, por ejemplo, el numero de factura
selececionado en la tabla principal con la tabla detalle, conseguiras lo
que quieres

ROW SELECTION tabla principal
tabladetalle..filter = tablaprincipal.col_n_factura (nombre de la
columna)ar
TableDisplay(tabladetalle)


Esta es una de las multiples formas que hay par realizar este proceso.

Publicado el 04,agosto 2008 - 18:01
Gerardo,
Fíjate en la tabla secundaria para ver en que orden se está accesando. Si
utilizas un campo diferente como filtro simplemente no hará nada.

Si la tabla secundaria usa un query, debes usar un hexecute query en vez del
filtro.

Te aconsejo que hagas un mantenimiento de dos tablas relacionadas usando la
plantilla que trae windev y te fijes como lo hace.

Lo malo con clarion es que uno se acostumbra a rellenar campitos y el "hace
todo", pero con windev te das cuenta que a la larga eso de clarion es una
caja negra que no te permite programar como tu quieres.

No dudes en volver a pedir ayuda.
Saludos.

"Gerardo Sánchez Suárez" <gerardo.sanchez@solucomp.com.mx> escribió en el
mensaje de noticias news:4882092a@news.pcsoft.fr...

Salvador:

Muchas gracias por tu respuesta, ya había probado eso pero no me
funciono; obviamente algo estoy haciendo mal. Creo que primero necesito
"desaprender" Clarion y aprender WinDev y tomar esto con mas calma. Voy
avanzando paso a paso y en una de estas logro dar en el clavo.

Saludos Cordiales

Gerardo

Salvador Soler escribió:
Todas las tablas tienen un evento que ROW SELECTION, si en este evento de
la tabla principal relacionas, por ejemplo, el numero de factura
selececionado en la tabla principal con la tabla detalle, conseguiras lo
que quieres

ROW SELECTION tabla principal
tabladetalle..filter = tablaprincipal.col_n_factura (nombre de la
columna)ar
TableDisplay(tabladetalle)


Esta es una de las multiples formas que hay par realizar este proceso.

Publicado el 12,agosto 2008 - 08:56
Muchas gracias Francisco, ya logre avances importantes. Voy a checar lo
que me dices.

Saludos

Francisco J. Acedo M. escribió:
Gerardo,
Fíjate en la tabla secundaria para ver en que orden se está accesando. Si
utilizas un campo diferente como filtro simplemente no hará nada.

Si la tabla secundaria usa un query, debes usar un hexecute query en vez del
filtro.

Te aconsejo que hagas un mantenimiento de dos tablas relacionadas usando la
plantilla que trae windev y te fijes como lo hace.

Lo malo con clarion es que uno se acostumbra a rellenar campitos y el "hace
todo", pero con windev te das cuenta que a la larga eso de clarion es una
caja negra que no te permite programar como tu quieres.

No dudes en volver a pedir ayuda.
Saludos.

"Gerardo Sánchez Suárez" <gerardo.sanchez@solucomp.com.mx> escribió en el
mensaje de noticias news:4882092a@news.pcsoft.fr...
Salvador:

Muchas gracias por tu respuesta, ya había probado eso pero no me
funciono; obviamente algo estoy haciendo mal. Creo que primero necesito
"desaprender" Clarion y aprender WinDev y tomar esto con mas calma. Voy
avanzando paso a paso y en una de estas logro dar en el clavo.

Saludos Cordiales

Gerardo

Salvador Soler escribió:
Todas las tablas tienen un evento que ROW SELECTION, si en este evento de
la tabla principal relacionas, por ejemplo, el numero de factura
selececionado en la tabla principal con la tabla detalle, conseguiras lo
que quieres

ROW SELECTION tabla principal
tabladetalle..filter = tablaprincipal.col_n_factura (nombre de la
columna)ar
TableDisplay(tabladetalle)


Esta es una de las multiples formas que hay par realizar este proceso.


Publicado el 12,agosto 2008 - 11:58
Yo ando con las mismas dudas
si has conseguido resolverlo dime por favor como
Yo he creado un query con las lineas de las facturas que tienen el mismo numero de factura
Luego en el FORM coloco UN TABLE con ese query de las lineas de factura
pero no lo acabo de conseguir
¿explicame como lo has conseguido ?
saludos
Antonio
Madrid
Publicado el 14,agosto 2008 - 11:27
Antonio:

Te voy a comentar un poco mi problemática:

1) Tengo un TAB con 12 pestañas (una por cada mes) y tenia que mostrar
los registros (Archivo Maestro) correspondientes al mes y año
seleccionado; al seleccionar el TAB de Marzo me tiene que mostrar los
registros de ese mes de cierto año y ademas mostrarme el los hijos
(Archivo Detalle) de ese padre

2) Lo primero lo conseguí con el código siguiente (En Filtering the records)

IF Val(QRY_MovInv.Mes) = TAB_MovInv AND Val(QRY_MovInv.Ano) = G_AnoMov THEN
RESULT True
ELSE
RESULT False
END


3) El mostrar los registros hijos, después de varios intentos, lo deje
por la paz porque tengo que hacer unas entregas en Clarion; pero creo
que pudiera funcionar igual (yo también uso QUERYS) sería cuestión de
que lo probaras (realmente estoy presionado por entregar el otro
proyecto en Clarion que no me he metido por el momento con WinDev).

4) Pienso que si ponemos: (en Filtering the record en la tabla detalle)

IF DETALLE.Numero = MAESTRO.Numero THEN
RESULT True
ELSE
RESULT False
END


Pudiera funcionar. Si lo logras avisame

Saludos

Gerardo
antonio escribió:
Yo ando con las mismas dudas
si has conseguido resolverlo dime por favor como
Yo he creado un query con las lineas de las facturas que tienen el mismo numero de factura
Luego en el FORM coloco UN TABLE con ese query de las lineas de factura
pero no lo acabo de conseguir
¿explicame como lo has conseguido ?
saludos
Antonio
Madrid
Publicado el 14,agosto 2008 - 13:16
Hola Gerardo. La manera que planteas no es la mas eficiente, ya que obligas
a leer el fichero completo de Detalles para filtrar los datos de la factura.

Lo mejor es crearte una tabla de detalles con una Query asociada a la que le
pasas el código del Maestro como parámetro. De esta manera la consulta se
hace en el servidor y solo te devuelve los registros que cumplen.

Yo he estado 14 años programando en Clarion y he tenido que "desaprender" a
hacer las cosas del modo Clarion. En Windev todo es mas simple.

Un saludo

Rubén Sánchez Peña


"Gerardo Sánchez Suárez" <gerardo.sanchez@solucomp.com.mx> escribió en el
mensaje de noticias news:48a33d88@news.pcsoft.fr...

Antonio:

Te voy a comentar un poco mi problemática:

1) Tengo un TAB con 12 pestañas (una por cada mes) y tenia que mostrar
los registros (Archivo Maestro) correspondientes al mes y año
seleccionado; al seleccionar el TAB de Marzo me tiene que mostrar los
registros de ese mes de cierto año y ademas mostrarme el los hijos
(Archivo Detalle) de ese padre

2) Lo primero lo conseguí con el código siguiente (En Filtering the
records)

IF Val(QRY_MovInv.Mes) = TAB_MovInv AND Val(QRY_MovInv.Ano) = G_AnoMov
THEN
RESULT True
ELSE
RESULT False
END


3) El mostrar los registros hijos, después de varios intentos, lo deje
por la paz porque tengo que hacer unas entregas en Clarion; pero creo
que pudiera funcionar igual (yo también uso QUERYS) sería cuestión de
que lo probaras (realmente estoy presionado por entregar el otro
proyecto en Clarion que no me he metido por el momento con WinDev).

4) Pienso que si ponemos: (en Filtering the record en la tabla detalle)

IF DETALLE.Numero = MAESTRO.Numero THEN
RESULT True
ELSE
RESULT False
END


Pudiera funcionar. Si lo logras avisame

Saludos

Gerardo
antonio escribió:
Yo ando con las mismas dudas
si has conseguido resolverlo dime por favor como
Yo he creado un query con las lineas de las facturas que tienen el mismo
numero de factura
Luego en el FORM coloco UN TABLE con ese query de las lineas de factura
pero no lo acabo de conseguir
¿explicame como lo has conseguido ?
saludos
Antonio
Madrid
Publicado el 14,agosto 2008 - 19:09
Rubén:

Gracias por el consejo, en la primera oportunidad voy a intentarlo de
esa manera.

Gracias


Rubén Sánchez Peña escribió:
Hola Gerardo. La manera que planteas no es la mas eficiente, ya que obligas
a leer el fichero completo de Detalles para filtrar los datos de la factura.

Lo mejor es crearte una tabla de detalles con una Query asociada a la que le
pasas el código del Maestro como parámetro. De esta manera la consulta se
hace en el servidor y solo te devuelve los registros que cumplen.

Yo he estado 14 años programando en Clarion y he tenido que "desaprender" a
hacer las cosas del modo Clarion. En Windev todo es mas simple.

Un saludo

Rubén Sánchez Peña


"Gerardo Sánchez Suárez" <gerardo.sanchez@solucomp.com.mx> escribió en el
mensaje de noticias news:48a33d88@news.pcsoft.fr...
Antonio:

Te voy a comentar un poco mi problemática:

1) Tengo un TAB con 12 pestañas (una por cada mes) y tenia que mostrar
los registros (Archivo Maestro) correspondientes al mes y año
seleccionado; al seleccionar el TAB de Marzo me tiene que mostrar los
registros de ese mes de cierto año y ademas mostrarme el los hijos
(Archivo Detalle) de ese padre

2) Lo primero lo conseguí con el código siguiente (En Filtering the
records)

IF Val(QRY_MovInv.Mes) = TAB_MovInv AND Val(QRY_MovInv.Ano) = G_AnoMov
THEN
RESULT True
ELSE
RESULT False
END


3) El mostrar los registros hijos, después de varios intentos, lo deje
por la paz porque tengo que hacer unas entregas en Clarion; pero creo
que pudiera funcionar igual (yo también uso QUERYS) sería cuestión de
que lo probaras (realmente estoy presionado por entregar el otro
proyecto en Clarion que no me he metido por el momento con WinDev).

4) Pienso que si ponemos: (en Filtering the record en la tabla detalle)

IF DETALLE.Numero = MAESTRO.Numero THEN
RESULT True
ELSE
RESULT False
END


Pudiera funcionar. Si lo logras avisame

Saludos

Gerardo
antonio escribió:
Yo ando con las mismas dudas
si has conseguido resolverlo dime por favor como
Yo he creado un query con las lineas de las facturas que tienen el mismo
numero de factura
Luego en el FORM coloco UN TABLE con ese query de las lineas de factura
pero no lo acabo de conseguir
¿explicame como lo has conseguido ?
saludos
Antonio
Madrid