Power builder 11.0

Necesito una ayuda tengo este código que es en ue_validar
//**permite autogenerar el numero e la cotizacion, para la cabecera y el detalle
string ls_codigo, ls_mask
long ll_codigo, ll_i, ll_total
ls_mask='0000000000'
select max(codigo)
 into :ls_codigo
from cabecera_cotizacion using SQLCA;
ll_codigo=long(ls_codigo)
if ll_codigo < 1 or isnull(ll_codigo) then
 ll_codigo=1
else
 ll_codigo=ll_codigo+1
end if
ls_codigo=right(ls_mask+string(ll_codigo),10)
 //***inserta codigo a la cabecera de pedido
 dw_1.setitem(1, 'codigo', ls_codigo)
 ///*** inserta codigo al detalle de pedido
 ll_total=dw_2.rowcount()
 FoR ll_i=1 To ll_total
  dw_2.setitem(ll_i, 'codigo', ls_codigo)
Next
Pero cuando corro y le doy a la opción del menu me sale un error y dice
aplication terminated.
error: invalid datawindow row/column specified at line 26 in ue_validar event of object w_cotizacion_ventas

1 respuesta

Respuesta
1
No se cual seria la linea 26... pero ese error ocurre cuando cuando no existe la relación entre fila y columna... es posible que el nombre de la columna ste mal scrita o la fila no exista
dw_1.setitem(1, 'codigo', ll_codigo) esa seria la linea 26.. y cabe destacar que soy como quien dice principiante en este programa asi que eso de lineas y columnas que mencionaste no los entendiiii... Gracias
Aparentemente tu codigo sta bien... derrepente tienes algun codigo mas n esa ventana... derrep en el propio datawindow... pueba en sustituir el 1 x dw_1.getrow()... en vez d poner dw_1.setitem(1,'codigo',ll_codigo) pon sto dw_1.setitem(dw_1.getrow(),'codigo',ll_codigo).
Si no entiendes lo de fila y columna... mmmm... bueno... t doy una explicación un poco extensa para que entiendas...
Los datawindow se usan para mostrar los datos de una tabla de una base de datos(claro .. hay uno que no necesita de una tabla.. pero eso no viene al caso)... las columnas son los campos... x ejemplo de una persona... dni, nombres, apellidos.. esos serian las columnas y una fila(o tupla) son el conjunto de datos de una persona... 44252941, william, mendez... todo eso es una fila...
La función setitem... como la mayoría de funciones de los dw.. stan relacionados con esto... tu tienes esto en tu código... dw_2. setitem(ll_i,'codigo', ls_codigo)..
Donde: ll_i es la fila en donde quieres que se inserte algún dato, código es la columna y ls_codigo
Disculpa tanta molestias... ahora me sale el mismo error pero en esta linea
dw_2.setitem(ll_i, 'codigo', ls_codigo) lo tengo dentro de un for así queda no si pudiera ser de lo mismo
FoR ll_i=1 To ll_total
  dw_2.setitem(ll_i, 'codigo', ls_codigo)
Next
Tu código esta bien... para que no queden dudas he probado tu código y no me surge ningún error... es posible que el problema empienze en otros eventos con código.. derrep en el constructor dl dw o en el open del window
Ok en el open no tengo ningún código todavía te explico estoy utilizando una guía y voy siguiendo los pasos no me había dado error hasta este momento y ya intente lo puse como comentario y corre perfecto no se que seria pero gracias por la ayuda que me estas prestando
De todas maneras... tendrías en el evento open solo esto...
dw_1.settransobject(sqlca)
dw_1.insertrow(0)
dw_2.settransobject(sqlca)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas