Inicio > Power Builder > franktwen > Error al extrar nombre y tipo de dw

Error al extrar nombre y tipo de dw

Experto:
Usuario:
Fecha: 10/08/2009
Valoración: (2,00 sobre 5) Categoría: Power Builder
30/07/2009
rmejianejapa, usuario preguntando en Power Builder
Usuario
PREGUNTA
Tengo el siguiente código que me permite leer los nombres de las definiciones de los encabezados de la datawindow y el tipo de datos que devuelve y dependiendo del tipo de dato capturo el valor del registro y lo convierto todo a un solo string, el código me funciona perfectamente, cuando la datawindow tiene 16 campos, pero me da error cuando hace la lectura de 17 campos me da el clasico error de mala asignación "Invalid Datawindow row/columna specified", lo cual no es cierto, pero sin embargo al continuar corriendo la aplicación sigue capturando los demas datos pero generando error a partir de la columna 17 de la definición de la datawindow, revise tambien la definición de la tabla y todo esta correcto, cual seria la solución?
Gracias, te mando el codigo:
String  ls_colcount,ls_col_name,ls_col_type,ls_resultado,ls_long
Integer i
Long    ll_colcount
// EXTRAE EL TOTAL DE COLUMNAS DE LA DATAWINDOW
ls_colcount = tab_1.tabpage_1.dw_3.Object.DataWindow.Column.Count
ll_colcount =Integer(ls_colcount)
String ls_char,ls_date,ls_decimal,ls_numero,ls_time
FOR i=1 TO ll_colcount
// EXTRAE EL NOMBRE DE LA COLUMNA DE LA DATAWINDOW
ls_col_name = tab_1.tabpage_1.dw_3.describe('#'+string(i)+'.name')
// EXTRAE EL TIPO DE LA COLUMNA DE LA DATAWINDOW
ls_col_type = tab_1.tabpage_1.dw_3.describe('#'+string(i)+'.Coltype')
MESSAGEBOX("NOMBRE Y TIPO",ls_col_name+'**---->'+ls_col_type+'--'+STRING(I))
// CONVIERTE A STRING LOS TIPOS DE DATOS: Datetime, Decimal, Number
CHOOSE CASE left(ls_col_type,4)
CASE "char"
ls_char = tab_1.tabpage_1.dw_3.GetitemString(i,ls_col_name)
IF IsNull(ls_char) or trim(ls_char)="" THEN
ELSE
//ls_resultado = ls_resultado+TRIM(ls_char)+','
END IF
CASE    "date"
ls_date = String(tab_1.tabpage_1.dw_3.GetitemDatetime(i,ls_col_name))
IF IsNull(ls_date) or trim(ls_date)="" THEN
ELSE
//ls_resultado = ls_resultado+ls_date+','
END IF
CASE    "numb"
ls_numero = String(tab_1.tabpage_1.dw_3.GetitemNumber(i,ls_col_name))
IF IsNull(ls_numero) THEN
ELSE
//ls_resultado = ls_resultado+ls_numero+','
END IF
CASE    "deci"
ls_decimal = String(tab_1.tabpage_1.dw_3.GetitemDecimal(i,ls_col_name))
IF IsNull(ls_decimal) THEN
ELSE
//ls_resultado = ls_resultado+ls_decimal+','
END IF
END CHOOSE
//messagebox("el total de los registros es ",ls_resultado)
END FOR
06/08/2009
rmejianejapa, experto respondiendo en Power Builder
Experto
A simple vista no parece tener errores de programación.  Qué versión de PowerBuilder estás utilizando? Intenta actualizando al último EBF disponible.
10/08/2009
rmejianejapa, usuario preguntando en Power Builder
Usuario
Gracias por ru respuesta pero el error lo pude encontrar y era el tratamiento de valores nulos que no los habia considerado en el momento de concatenar, esa era el error.
Enlaces patrocinados