Hola que tal, Primero tienes que quitar el check en el ddw autoretrieve,
Luego hay dos posibilidades, si el primer ddw tiene que estar cargado tienes que crearlo en el open del window, y posteriormente en el itemchange del dw, debes especificar los parametro para el otro ddw.
ItemChanged
String ls_NomCol, parm1,parm2, ls_CodCat
DatawindowChild dwc_SubCat
ls_NomCol = dwo.Name
choose case ls_NomCol
Case 'CodCat'
ls_CodCat = this.object.CodCat[row]
//buscamos los otros dos datos de la tabla categorias
Select Dato1,Dato2 Into :ls_parm1, :ls_parm2
From TablaCategorias
where CodCat = :ls_CodCat;
dw_1.GetChild('CodSubCat', dwc_subcat)
dwc_subcat.settransobject(sqlca)
dwc_subcat.retrieve(ls_parm1,ls_parm2)
end choose
Espero te sirva.