Crear datawindows en tiempo de ejecución
Tengo una ventana en la cual muestro el estado de unas máquinas (apagada/encendida) a través de consultas a la BD. Para mostrar el estado, utilizo un datawindow. En cada dw muestro el estado de una única maquina. El problema es que el número de máquinas es variable y por lo tanto, en esta ventana tengo que crear tantos datawindows como maquinas tenga. El código que he creado es este, que se ejecuta en el evento Open:
(...)
OPEN cur_pesadoras;
FETCH cur_pesadoras INTO :li_pesadoraid;
do while sqlca.sqlcode=0
ldw_tmp=create u_dw
ldw_tmp.visible=true
ldw_tmp.x=50+(680*li_i)
ldw_tmp.y=84
ldw_tmp.width=660
ldw_tmp.height=300
ldw_tmp.taborder=100+li_i
ldw_tmp.dataobject="dw_estado"
ldw_tmp.settransobject(sqlca)
ldw_tmp.retrieve(li_pesadoraid)
idw_pesadoras[li_i]=ldw_tmp
li_i++
FETCH cur_pesadoras INTO :li_pesadoraid;
loop
CLOSE cur_pesadoras;
(...)
Tengo dos problemas: el primero, la llamada a settransobject me devuelve siempre -1; y por otra parte al hacer la asignación al array de dw:
idw_pesadoras[li_i]=ldw_tmp
siempre me salta el error de Array Boundary Exceded, aunque li_i=0.
(...)
OPEN cur_pesadoras;
FETCH cur_pesadoras INTO :li_pesadoraid;
do while sqlca.sqlcode=0
ldw_tmp=create u_dw
ldw_tmp.visible=true
ldw_tmp.x=50+(680*li_i)
ldw_tmp.y=84
ldw_tmp.width=660
ldw_tmp.height=300
ldw_tmp.taborder=100+li_i
ldw_tmp.dataobject="dw_estado"
ldw_tmp.settransobject(sqlca)
ldw_tmp.retrieve(li_pesadoraid)
idw_pesadoras[li_i]=ldw_tmp
li_i++
FETCH cur_pesadoras INTO :li_pesadoraid;
loop
CLOSE cur_pesadoras;
(...)
Tengo dos problemas: el primero, la llamada a settransobject me devuelve siempre -1; y por otra parte al hacer la asignación al array de dw:
idw_pesadoras[li_i]=ldw_tmp
siempre me salta el error de Array Boundary Exceded, aunque li_i=0.
1 respuesta
Respuesta de aldob
1