XBROWSE con array

XBROWSE con array

Postby FranciscoA » Wed Mar 28, 2012 9:17 pm

Amigos del foro.
¿Algunos de ustedes han utilizado esta function?
Bueno, el caso es que le he encontrado de mucha utilidad. Con objetos (Xbrowse(oTabla) trabaja de maravilla, pero... con un simple array de una sola columna da este error si el usuario por casualidad arrastra la barra horizontal hasta el final hacia la derecha:

Application
===========
Path and name: H:\FAPSOFT\NEWCONT32_MYSQL\Wcont32.Exe (32 bits)
Size: 2,254,336 bytes
Time from start: 0 hours 1 mins 36 secs
Error occurred at: 28/03/2012, 14:43:11
Error description: Error BASE/1132 Bound error: array access
Args:
[ 1] = A { ... }
[ 2] = N 0

Stack Calls
===========
Called from: XBROWSE.PRG => (b)TXBROWSE:TXBROWSE(499)
Called from: => TXBROWSE:COLATPOS(0)
Called from: XBROWSE.PRG => (b)TXBROWSE:TXBROWSE(501)
Called from: => TXBROWSE:SELECTEDCOL(0)
Called from: XBROWSE.PRG => TXBROWSE:PAINT(1223)
Called from: XBROWSE.PRG => TXBROWSE:DISPLAY(1205)
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1458)
Called from: XBROWSE.PRG => TXBROWSE:HANDLEEVENT(10761)
Called from: .\source\classes\WINDOW.PRG => _FWH(3391)
Called from: => DIALOGBOXINDIRECT(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG(366)
Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS(27)
Called from: XBROWSE.PRG => (b)TXBROWSE:TXBROWSE(499)
Called from: => TXBROWSE:COLATPOS(0)
Called from: XBROWSE.PRG => (b)TXBROWSE:TXBROWSE(501)
Called from: => TXBROWSE:SELECTEDCOL(0)
Called from: XBROWSE.PRG => TXBROWSE:PAINT(1223)
Called from: XBROWSE.PRG => TXBROWSE:DISPLAY(1205)
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1458)
Called from: XBROWSE.PRG => TXBROWSE:HANDLEEVENT(10761)
Called from: .\source\classes\WINDOW.PRG => _FWH(3391)
Called from: => DIALOGBOXINDIRECT(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG(366)
Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS(27)
Called from: XBROWSE.PRG => (b)TXBROWSE:TXBROWSE(499)
Called from: => TXBROWSE:COLATPOS(0)
Called from: XBROWSE.PRG => (b)TXBROWSE:TXBROWSE(501)
Called from: => TXBROWSE:SELECTEDCOL(0)
Called from: XBROWSE.PRG => TXBROWSE:PAINT(1223)
Called from: XBROWSE.PRG => TXBROWSE:DISPLAY(1205)
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1458)
Called from: XBROWSE.PRG => TXBROWSE:HANDLEEVENT(10761)
Called from: .\source\classes\WINDOW.PRG => _FWH(3391)
Called from: => DIALOGBOXINDIRECT(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
Called from: .\source\function\XBROWSER.PRG => XBROWSE(136)
Called from: H:\FAPSOFT\NEWCONT32_MYSQL\wcont32.prg => IMPORTE(168)

Para muestra, este diminuto ejemplo:

include....

Code: Select all  Expand view
Function prueba()
locaL aData:={}
     AADD( aData, "Documento Numero tal... contiene codificacion incompleta, en blanco, o no existe en Catalogo de Cuentas" )
     AADD( aData,"La Cuenta es: xxxxxxxxxx. Revise el documento descrito y modifiquelo.")
     AADD( aData," ")

xBrowse(aData,"Documentacion erronea")

Return nil


A alguien le ha sucedido? Como lo ha solucionado? Mi version en FWH 10.06
Gracias.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2129
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE con array

Postby horacio » Thu Mar 29, 2012 11:12 am

No he usado esa función pero me parece que el Array está mal conformado. He trabajado extensamente xbrowse con vectores y me dá que tendrías que armarlo de esta manera

Code: Select all  Expand view

Function prueba()
locaL aData:={}
     AADD( aData, { "Documento Numero tal... contiene codificacion incompleta, en blanco, o no existe en Catalogo de Cuentas" } )
     AADD( aData,{"La Cuenta es: xxxxxxxxxx. Revise el documento descrito y modifiquelo."})
     AADD( aData,{" "})

xBrowse(aData,"Documentacion erronea")
Return nil
 

No sé si es lo que necesitas, Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: XBROWSE con array

Postby FranciscoA » Thu Mar 29, 2012 3:55 pm

Horacio, gracias por contestar.
¿Probaste mi ejemplo?... ¿Y el tuyo?... Ambos presentan el mismo error. Si arrastras el Scroll horizontal hacia la derecha hasta el limite, verás el error que te digo. Creo que debe haber un pequeño bug en XBROWSER.PRG que esta en la carpeta \SOURCE\FUNCTIONS. (FWH Ver. 10.06)

De la manera en que construyo el array, la function MSGLIST() funciona correctamente, pero he decidido cambiar a xBrowse(aData) por cuestiones de presentación y la posibilidad de ejecutar otras opciones desde el xBrowse().

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2129
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE con array

Postby Francisco Horta » Thu Mar 29, 2012 4:47 pm

Tocayo,
No lo he revisado, pero si mientras quieres salir al quite, haz este pequeño truco a ver si te funciona,

locaL aData:={}
AADD( aData, { "Documento Numero tal... contiene codificacion incompleta, en blanco, o no existe en Catalogo de Cuentas" ,""} )
AADD( aData,{"La Cuenta es: xxxxxxxxxx. Revise el documento descrito y modifiquelo.",""})
AADD( aData,{" ",""})

oBrw := TXBrowse():New( oDlg )

oBrw:SetArray(aData)
oBrw:aCols[2]:lHide := .T.

saludos
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: XBROWSE con array

Postby FranciscoA » Thu Mar 29, 2012 5:15 pm

Hola tocayo. Gracias por tu amabilidad.

Francisco Horta wrote:Tocayo,
No lo he revisado, pero si mientras quieres salir al quite, haz este pequeño truco a ver si te funciona,

locaL aData:={}
AADD( aData, { "Documento Numero tal... contiene codificacion incompleta, en blanco, o no existe en Catalogo de Cuentas" ,""} )
AADD( aData,{"La Cuenta es: xxxxxxxxxx. Revise el documento descrito y modifiquelo.",""})
AADD( aData,{" ",""})

oBrw := TXBrowse():New( oDlg )

oBrw:SetArray(aData)
oBrw:aCols[2]:lHide := .T.

saludos
paco


Estoy de acuerdo contigo, si yo creara el oBrw tal como lo indicas.

El caso es que estoy haciendo uso directo de la Function XBROWSE que viene incluida en \SOURCE\FUNCTIONS.
Como expliqué en el primer post, trabaja muy bien con objetos ( xBrowse(oTabla) ), pero cuando es un array de una sola columna falla. Aquí, parte de la function referida:

Code: Select all  Expand view
#include 'fivewin.ch'
#include 'xbrowse.ch'

// This function supports XBROWSER command
// Can be used directly or through XBROWSER command

//----------------------------------------------------------------------------//

function XBrowse( uData, cTitle, lAutoSort, bSetUp, aCols, bSelect, lExcel, lFastEdit )

   local oDlg, oBrw, oFont, nSaveSelect
   local nWd, nHt
   local cDbf, cAlias
   local lAddCols := Empty( aCols )
   local bInit

   DEFAULT  uData    := Alias(), ;
            cTitle   := If( ValType( uData ) == 'C', uData, ;
                        If( ValType( uData ) == 'O', uData:ClassName(), ;
                        'XBROWSE' ) ), ;
            lAutoSort:= .f., ;
            bSetUp   := { || nil },;
            lExcel   := .t.


En cuanto tenga tiempo voy a revisar esta function, y si encuentro algo lo posteo.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2129
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE con array

Postby horacio » Thu Mar 29, 2012 8:48 pm

Francisco, como te dije no he probado esa funcionalidad. Supongo, tal vez me equivoque, que el funcionamiento debe ser similar si parametrizaras el browser desde el inicio. Cuál es la versión de FWH que utilizas ??? Un Saludo
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: XBROWSE con array

Postby FranciscoA » Thu Mar 29, 2012 9:03 pm

Horacio, gracias por tu interes. Bueno tuve que recurrir a un objeto cargando una sentencia Sql, y asi si funciona.

Code: Select all  Expand view
oDocuError:=oServer:Query("SELECT fechemis,codicont,td,numdoc FROM " + cTbImporte + " WHERE codicont NOT IN (SELECT codicont FROM catalogo);")

xBrowse(oDocuError,"DOCUMENTOS CON CODIFICACION ERRONEA (Tome nota y corrijalos)")


Gracias a todos.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2129
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE con array

Postby nageswaragunupudi » Fri Apr 06, 2012 4:19 pm

There was a bug in xbrowse in older versions. Using Horizontal scroll in a browse with single column was giving runtime error. This was fixed quite sometime back.

Workaround is to either set oBrw:lHScroll := .f. in the older versions.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10317
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: XBROWSE con array

Postby FranciscoA » Sat Apr 07, 2012 3:08 pm

Gracias Nages.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2129
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 116 guests