FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour XBROWSE con array
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
XBROWSE con array
Posted: Wed Mar 28, 2012 09: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 (fw): Select all Collapse
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
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: XBROWSE con array
Posted: 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 (fw): Select all Collapse
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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBROWSE con array
Posted: Thu Mar 29, 2012 03: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
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: XBROWSE con array
Posted: Thu Mar 29, 2012 04: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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBROWSE con array
Posted: Thu Mar 29, 2012 05: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 (fw): Select all Collapse
#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
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: XBROWSE con array
Posted: Thu Mar 29, 2012 08: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

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBROWSE con array
Posted: Thu Mar 29, 2012 09:03 PM
Horacio, gracias por tu interes. Bueno tuve que recurrir a un objeto cargando una sentencia Sql, y asi si funciona.

Code (fw): Select all Collapse
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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: XBROWSE con array
Posted: Fri Apr 06, 2012 04: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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBROWSE con array
Posted: Sat Apr 07, 2012 03:08 PM

Gracias Nages.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion