Xbrowse desde array vacio

User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Post by nageswaragunupudi »

It is much easier to write code in XBrowse than WBrowse. The above code

Code: Select all

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

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
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Post by quique »

Con listbox es mas fácil, con xbrowse tanto usando FIELDS como usando COLUMNS marca error con arrays vacios
Saludos
Quique
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

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
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Post by quique »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
Post Reply