Xbrowse desde array vacio

Postby nageswaragunupudi » Sat Aug 30, 2008 12:10 am

It is much easier to write code in XBrowse than WBrowse. The above code
Code: Select all  Expand view
REDEFINE LISTBOX oLbxA ;
FIELDS aDetalle[oLbxA:nAt, 2], ;
aDetalle[oLbxA:nAt, 3], ;
STR(aDetalle[oLbxA:nAt, 4],12,3), ;
STR(aDetalle[oLbxA:nAt, 5],12,3), ;
STR(aDetalle[oLbxA:nAt, 6],12,3) ;
HEADERS "Producto", ;
"Unidad", ;
"Cantidad", ;
"Precio", ;
"Sub Total"

can be written as
Code: Select all  Expand view
REDEFINE XBROWSE oLbxA ;
COLUMNS 2, 3, 4, 5, 6 ;
HEADERS 'Producto','Unidad','Candidad','Precio','Sub Total' ;
OF oLbxA ARRAY aDetalle

for XBrowse.

We get better and more reliable results by using the command facilities provided by xBrowse commands.
Regards

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

Postby quique » Sat Aug 30, 2008 6:24 pm

Con listbox es mas fácil, con xbrowse tanto usando FIELDS como usando COLUMNS marca error con arrays vacios
Saludos
Quique
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Postby Antonio Linares » Sun Aug 31, 2008 6:29 pm

Quique,

No se trata de un error con xBrowse. Es un problema con la forma de escribir la expresión en la lista de campos.

Si escribimos una expresión aData[ oBrw:nArrayAt ][ 3 ], fallará cuando aData esté vacío, porque aData[ 0 ][ 3 ] da error en tiempo de ejecución.
No podemos culpar a xbrowse por ello. Si queremos escribir la cláusula FIELDS nosotros mismos, debemos ser capaces de manejar un array vacío también. La expresión debe ser algo así como If( oBrw: nArrayAt == 0, Space (13), aData[ oBrw:nArrayAt ][ 3 ] ).

Cuando usamos la cláusula COLUMNS, xBrowse automáticamente se encarga de todas esas situaciones.
Last edited by Antonio Linares on Sun Aug 31, 2008 10:32 pm, edited 3 times in total.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41866
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Armando » Sun Aug 31, 2008 7:06 pm

Maestro Antonio:

Con Record Set y COLUMNS tambien xBrowse se encarga de todo ?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3179
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby quique » Sun Aug 31, 2008 8:55 pm

Antonio, estoy conciente de ello, pero lo comentaba porque nageswaragunupudi decía que así lo manejaba el en twbrowse, pero el problema es el hecho de tener un array vacío, como decía mas arriba, tampoco tener un array vació es un error, el poroblema es que la función constructora no es capaz de permitirlo
Saludos
Quique
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Postby Antonio Linares » Sun Aug 31, 2008 10:35 pm

Armando,

Si, así es. El método SetAdo() llama al método SetColFromADO() (de uso interno por xbrowse) y construye las columnas automaticamente.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41866
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 54 guests