Hacer retrieve desde un dddw a otro dddw

Tengo una ventana de ingreso de mis productos uno de sus campos de llama cod_marca, allí cargo todas las marcas con un dddw y tengo otro campo que se llama cod_modelo que también lo cargo con un dddw. Lo que quiero es que al seleccionar una determinada marca en el campo cod_modelo solo me meustre los modelos de esa marca.
Gracias por la respuesta.
tablaproducto(cod_producto,nom_producto,cod_marca,cod_modelo,descrpcion)
tablamodelo(cod_modelo,cod_marca,nom_modelo)
tablamarca(cod_marca,nom_marca)

1 Respuesta

Respuesta
1
Lo que debes hacer es usar la DDDW como una DataWindowChild, de la siguiente forma.
En el evento ItenChanged copia lo siguiente:
AcceptText()
String ls_marca
ls_marca = object.marca[dw_1.getrow()]
DataWindowChild ldwch_1
dw_1.GetChild("cod_modelo", ldwch_1)
ldwch_1.SetTransObject(SQLCA)
ldwch_1.Retrieve()
ldwch_1.SetFilter("cod_marca = '" + ls_marca + "'")
ldwch_1.Filter()
De esta manera, puedes filtrar la DDDW como un datawindow normal.
Gracias por tu tiempo. Este es el código que pegue en el evento ITEMCHANGED de mi DW pero no filtra nada. Ojala puedas verlo de repente me estoy equivocando en algo.
codigo:
AcceptText()
String ls_marca
ls_marca = dw_1.object.producto_cod_marca[dw_1.getrow()]
DataWindowChild ldwch_1
dw_1.GetChild("producto_cod_modelo", ldwch_1)
ldwch_1.SetTransObject(SQLCA)
ldwch_1.Retrieve()
ldwch_1.SetFilter("producto_cod_marca = '" + ls_marca + "'")
ldwch_1.Filter()
Verifica si los datos están correctos,
1. Verifica que el campo producto_cod_modelo este correctamente escrito
2. Verifica que el dddw sin el filtro, te devuelva todo, tal vez, el dato ls_marca este vacío, o tenga espacios en blanco antes o después.
Otra forma de filtrar un DDDW es creando el dw del dddw con un argumento, por ejemplo, le creas un argumento que se llame a_marca, y en la pestaña del where del dw le pones "where cod_marca = :a_marca"
Luego, en el código del ItemChanged del DW de la Window, le colocas:
DataWindowChild ldwch_1
dw_1.GetChild("producto_cod_modelo", ldwch_1)
ldwch_1.SetTransObject(SQLCA)
ldwch_1.Retrieve(ls_marca)
De esta forma, te recupera solo los registros que cumplan con la marca.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas