Recuperrara filas de un DW

Soy yo de nuevo con el problema de los argumentos. ¿Es mi primera aplicación y bueno? Hay muchas cosas que no entiendo.
Te doy más detalles de mi problema:
Es para un inventario forestal. Que realiza mediciones anuales del crecimiento de árboles.
Existen varios CAMPOS, en cada uno hay varias PARCELAS, y en cada una de ellas se miden cada año 25 árboles(porque se toma una muestra).
O sea:
Campos
Parcela
Árbol
Mediciones por año(una fila por cada año)
Para ver estas mediciones quisiera que el usuario establezca el campo, mediante un DDDW, una vez establecido este quisiera que en otro DDDW (que llamo dw_parcela) estén aquellas parcelas existentes de este campo. Y también todas las mediciones para este campo de todas las parcelas en un tercer DW.
Que hice:
- Un dddw con los campos, dw_campo
- Un dw con las parcelas(dw_parcela), y definí retrieval argument campo
- Un dw con las mediciones (dw_arbolmed), y definí retrieval argument campo y parcela.
Evento itemchanged de dw_campo
string id_campo
int li_null
setNull (li_null)
id_campo=this.GetText()
dw_parcela.settransobject(sqlca)
dw_parcela.Retrieve(integer(id_campo))
dw_arbolmed.SettransObject(sqlca)
dw_arbolmed.Retrieve(integer(id_campo))
Evento itemchanged de dw_parcela
string parcela, id_campo
parcela=this.GetText()
dw_arbolmed.SettransObject(sqlca)
dw_arbolmed.Retrieve(integer(id_campo), string(parcela))
Resultado : cuando elijo el campo me sale el mensaje:
? ¿Expecting 2 argument argument but got 1?
Si especifico solo el campo como retrieval argument para recuperar el dw_arbolmed para ese campo anda bien, ¿pero quisiera lograr con el dw_parcela (y luego por árbol y/o por año) búsquedas? ¿Más finas?.
¿Hay alguna técnica para lograr búsquedas cada vez más finas? ¿Cómo?

1 respuesta

Respuesta
1
Evento itemchanged de dw_campo
string id_campo
int li_null
setNull (li_null) //esto para que esta?
id_campo=integer(data)
dw_parcela. Settransobject(sqlca) //esto ponelo una vez en el open de la ventana no hace falta volver a setearlo a menos que cambies el dataobject de la DW y lleva un costo en tiempo
dw_parcela. Retrieve(id_campo)
dw_arbolmed. SettransObject(sqlca) //esto ponelo una vez en el open de la ventana no hace falta volver a setearlo a menos que cambies el dataobject de la DW y lleva un costo en tiempo
dw_arbolmed. Retrieve(integer(id_campo)) //esto te debe estar tirando el error porque tienes un solo argumento, reemplaza esta linea x:
dw_arbolmed.reset()//asi la limpias
Evento itemchanged de dw_parcela
string parcela, id_campo
parcela=Integer(data)
dw_arbolmed. SettransObject(sqlca) //esto ponelo una vez en el open de la ventana no hace falta volver a setearlo a menos que cambies el dataobject de la DW y lleva un costo en tiempo
dw_arbolmed. Retrieve(integer(id_campo), string(parcela))
-------
Con lo de antes andaría. Ahora si lo quieres mejor tendrías que usar datawindowschild. Entre otras cosas es probable que de la forma en que esta te pida retrieval arguments cuando abrís la ventana.
La idea con datawindowschild es que guardas en variables lo que tienes en el desplegable y las podes manejar por código. Esto te permitiría ademas tener una sola DW en tu ventana y no 3 como parece ser el caso con tu ej. De todos modos si lo que hiciste hasta ahora anda dejalo.
Lo de búsquedas más finas acláramelo un poco más
Hola !
Cuando digo búsquedas más finas me refiero a que cuando ingreso un campo, me aparezcan todos los campos, luego si ingreso la parcela me aparezacn solo los arboles de esa parcela y ese campo y si ingreso el año datos de ese campo, esa parcela y de ese año .
¿Sabes dónde encontrar la opción "autoretrieval" que se supone que esta en la pestaña edit de las propiedades de un DW? ¿Existe en la version 7.0?
¿O sea que puedo hacer un solo DW para todo esto? Voy a probar, ya que estamos aprendiendo.
Gracias!
Marce

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas