In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

tArrayBrowse y un error que no se por que ocurre

Foro público de Xailer en español
Responder
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

tArrayBrowse y un error que no se por que ocurre

Mensaje por jose.luis »

Hola,
Os dejo un proyecto donde creo un ArrayBrowse desde código en el método
Initialize del formulario.
Este browse no tiene elementos. De hecho, la propiedad aArrayData no ha
sido establecida.
Al hacer click sobre el area cliente del browse arroja el error:
(b)XBROWSE:XBROWSE(187)
Error BASE/1132 Bound error: array access
Argumentos: ( [ 1] = Tipo: A Valor: [ 2] = Tipo: N Valor: 1)
Saludos,
José Luis Capel
--
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

tArrayBrowse y un error que no se por que ocurre

Mensaje por Xevi »

José Luí­s,
Las columnas del ArrayBrowse necesitan un "ancho" (nWidth), sinó se quedan en nWidth a 0... y es como si lVisible fuera .F.. O sea que en tu caso estás creando 5 columnas de ancho 0.
Además el método Create() al crear el objeto columna no se crea de esa manera, necesitas asignarlo al Browse con AddCol..
Prueba cambiar tu OnInitialize por este código, y verás que aunque no existan lí­neas en el Browse, no va a lanzarte ningún error.
METHOD FormInitialize( oSender ) CLASS TForm2
LOCAL nX, oCol
WITH OBJECT ::oMiBrowse := tArrayBrowse():New(Self)
:nAlign := alCLIENT
:Create()
END
FOR nX := 1 TO 5
WITH OBJECT oCol := tBrwColumn():New( ::oMiBrowse )
:cHeader := "Columna "+LTRIM(STR( nX ))
:nWidth := 75
* :Create()
END
::oMiBrowse:AddCol( oCol )
NEXT
::oMiBrowse:Refresh( .T. )
RETURN Nil
Un Saludo,
Xevi.
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje news:[email=43f24511@ozsrvnegro.ozlan.local...]43f24511@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> Os dejo un proyecto donde creo un ArrayBrowse desde código en el método
> Initialize del formulario.
>
> Este browse no tiene elementos. De hecho, la propiedad aArrayData no ha
> sido establecida.
>
> Al hacer click sobre el area cliente del browse arroja el error:
>
> (b)XBROWSE:XBROWSE(187)
> Error BASE/1132 Bound error: array access
> Argumentos: ( [ 1] = Tipo: A Valor: [ 2] = Tipo: N Valor: 1)
>
> Saludos,
> José Luis Capel
>
--
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

tArrayBrowse y un error que no se por que ocurre

Mensaje por Xevi »

José Luí­s,
Perdón, pero he visto que también funciona con el método Create...
FOR nX := 1 TO 5
WITH OBJECT oCol := tBrwColumn():New( ::oMiBrowse )
:cHeader := "Columna "+LTRIM(STR( nX ))
:nWidth := 75
:Create()
END
* ::oMiBrowse:AddCol( oCol )
NEXT
Yo... lo estoy utilizando con AddCol... pero si así­ también funciona!!!
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=43f24bae@ozsrvnegro.ozlan.local...]43f24bae@ozsrvnegro.ozlan.local...[/email]
José Luí­s,
Las columnas del ArrayBrowse necesitan un "ancho" (nWidth), sinó se quedan en nWidth a 0... y es como si lVisible fuera .F.. O sea que en tu caso estás creando 5 columnas de ancho 0.
Además el método Create() al crear el objeto columna no se crea de esa manera, necesitas asignarlo al Browse con AddCol..
Prueba cambiar tu OnInitialize por este código, y verás que aunque no existan lí­neas en el Browse, no va a lanzarte ningún error.
METHOD FormInitialize( oSender ) CLASS TForm2
LOCAL nX, oCol
WITH OBJECT ::oMiBrowse := tArrayBrowse():New(Self)
:nAlign := alCLIENT
:Create()
END
FOR nX := 1 TO 5
WITH OBJECT oCol := tBrwColumn():New( ::oMiBrowse )
:cHeader := "Columna "+LTRIM(STR( nX ))
:nWidth := 75
* :Create()
END
::oMiBrowse:AddCol( oCol )
NEXT
::oMiBrowse:Refresh( .T. )
RETURN Nil
Un Saludo,
Xevi.
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje news:[email=43f24511@ozsrvnegro.ozlan.local...]43f24511@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> Os dejo un proyecto donde creo un ArrayBrowse desde código en el método
> Initialize del formulario.
>
> Este browse no tiene elementos. De hecho, la propiedad aArrayData no ha
> sido establecida.
>
> Al hacer click sobre el area cliente del browse arroja el error:
>
> (b)XBROWSE:XBROWSE(187)
> Error BASE/1132 Bound error: array access
> Argumentos: ( [ 1] = Tipo: A Valor: [ 2] = Tipo: N Valor: 1)
>
> Saludos,
> José Luis Capel
>
--
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

tArrayBrowse y un error que no se por que ocurre

Mensaje por jose.luis »

Xevi,
Gracias!! Era eso... es que como siempre tení­a algún elemento los
browses, no me daba cuenta de que no colocaba un ancho especí­fico a la
columna. Reitero las gracias.
> Perdón, pero he visto que también funciona con el método Create...
>
> FOR nX := 1 TO 5
> WITH OBJECT oCol := tBrwColumn():New( ::oMiBrowse )
> :cHeader := "Columna "+LTRIM(STR( nX ))
> :nWidth := 75
> :Create()
> END
> * ::oMiBrowse:AddCol( oCol )
> NEXT
> Yo... lo estoy utilizando con AddCol... pero si así­ también funciona!!!
Yo me he fijado como lo crea Xailer mirando en el .xfm Y así­ es como lo
hace allí­ (me refiero al WITH/END)
Saludos,
José Luis Capel
Responder