xBrowse, justificar importe segun sea mayor a 0.
xBrowse, justificar importe segun sea mayor a 0.
Hola amigos:
Deseo justificar un importe en un xbrowse según sea o no mayor a 0.
De esta forma los valores menores a 0 los quiero a la izquierda y los mayores a la derecha de una misma columna.
Intente con Transform(), IIF( dato<0, Transform(dato,"99,999.99"), Transform( dato,"999,999,9999,999,999.99") )
Una trampita que funciona a medias porque los numeros negativos o positivos no se alinean entre si.
Alguna idea sera bien recibida, muchas gracias.
Ruben Fernandez.
Deseo justificar un importe en un xbrowse según sea o no mayor a 0.
De esta forma los valores menores a 0 los quiero a la izquierda y los mayores a la derecha de una misma columna.
Intente con Transform(), IIF( dato<0, Transform(dato,"99,999.99"), Transform( dato,"999,999,9999,999,999.99") )
Una trampita que funciona a medias porque los numeros negativos o positivos no se alinean entre si.
Alguna idea sera bien recibida, muchas gracias.
Ruben Fernandez.
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: xBrowse, justificar importe segun sea mayor a 0.
Rubén,
prueba en lugar del transform pones como bColData IF( dato<0, Str( dato, '9,999,999.99' )+Space( 15 ), +Space( 15 )+Str( dato, '9,999,999.99' ) ) y justificas la columna a la derecha, me parece que con eso quedan alineados.
Un saludo
prueba en lugar del transform pones como bColData IF( dato<0, Str( dato, '9,999,999.99' )+Space( 15 ), +Space( 15 )+Str( dato, '9,999,999.99' ) ) y justificas la columna a la derecha, me parece que con eso quedan alineados.
Un saludo
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: xBrowse, justificar importe segun sea mayor a 0.
El truco esta en el nDataStrAlign, algo como esto,
:nDataStrAlign := IF(LEN(aItems) >0, IF( aItems[oBrw:nArrayAt, 7] < 0, AL_LEFT, AL_RIGHT ), oBrw:Refresh() )
creo deberias hacerlo cuando defines la columna, aca te dejo un link donce creo hacen lo que quieres, saludos...
http://forums.fivetechsupport.com/viewt ... ign#p97788
:nDataStrAlign := IF(LEN(aItems) >0, IF( aItems[oBrw:nArrayAt, 7] < 0, AL_LEFT, AL_RIGHT ), oBrw:Refresh() )
creo deberias hacerlo cuando defines la columna, aca te dejo un link donce creo hacen lo que quieres, saludos...
http://forums.fivetechsupport.com/viewt ... ign#p97788
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: xBrowse, justificar importe segun sea mayor a 0.
ruben prueba esto:
obrw:acols[3]:nDataStrAlign := if( VAL(EVAL(oBrw:aCols[3]:bStrData)) > 0, AL_RIGHT, AL_LEFT )
salu2
paco
obrw:acols[3]:nDataStrAlign := if( VAL(EVAL(oBrw:aCols[3]:bStrData)) > 0, AL_RIGHT, AL_LEFT )
salu2
paco
____________________
Paco
Paco
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: xBrowse, justificar importe segun sea mayor a 0.
me falto esta line ruben,,
oBrw:AddCol()
obrw:acols[3]:bStrData := { || TRANSFORM("tuimporte",'999,999.999') }
saludos
paco
oBrw:AddCol()
obrw:acols[3]:bStrData := { || TRANSFORM("tuimporte",'999,999.999') }
saludos
paco
____________________
Paco
Paco
Re: xBrowse, justificar importe segun sea mayor a 0.
Hola amigos:
Gracias Carlos, Gracias Jose Luis, Gracias Paco.
No lo he logrado, pero seguiré viendo por donde lo saco.( Intente con todas las opciones), algo debo estar haciendo mal,
pero va a salir.
Muchas gracias
Saludos Ruben Fernandez.
Gracias Carlos, Gracias Jose Luis, Gracias Paco.
No lo he logrado, pero seguiré viendo por donde lo saco.( Intente con todas las opciones), algo debo estar haciendo mal,
pero va a salir.
Muchas gracias
Saludos Ruben Fernandez.
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: xBrowse, justificar importe segun sea mayor a 0.
Ruben y porque no juegas con los colores ? sugerencia algo asi
oBrw:aCols[5]:bClrStd := { || if( "tuimporte" > 0 , { CLR_BLACK, CLR_WHITE }, { CLR_RED, CLR_WHITE } ) }
saludos
paco
oBrw:aCols[5]:bClrStd := { || if( "tuimporte" > 0 , { CLR_BLACK, CLR_WHITE }, { CLR_RED, CLR_WHITE } ) }
saludos
paco
____________________
Paco
Paco
Re: xBrowse, justificar importe segun sea mayor a 0.
Gracias Paco por la sugerencia, lo implementaré de esa forma ya que no veo otra solución.
Saludos
Muchas gracias.
Ruben Fernandez
Saludos
Muchas gracias.
Ruben Fernandez
Re: xBrowse, justificar importe segun sea mayor a 0.
Gracias Paco por la sugerencia, lo implementaré de esa forma ya que no veo otra solución.
Saludos
Muchas gracias.
Ruben Fernandez
Saludos
Muchas gracias.
Ruben Fernandez
-
- Posts: 113
- Joined: Wed Mar 11, 2009 7:32 pm
- Location: Obregon, Sonora, Mexico
Re: xBrowse, justificar importe segun sea mayor a 0.
Hola buen dia
lo puedes hacer de dos formas
1,, poner dos columnas en la primera columna poner
if(field->ximporte<0,xfield->ximporte," ")
en la segunda columna poner
if(field->ximporte>0,xfield->ximporte," ")
y queda sin problema
pero si quieres ponerla en la misma columna ay te va el codigo
aunque le puse en listbox funciona en xbrowse
la funcion alinea es la que hace a la izquierda o a la derecha segun sea el importe en este cao le puse 40000 ay le pones cero y se hace la machaca y el doce es el tamaño a alinear
funcion de alinea
y ya esta probado anexo imagen en una columa ,, ojo segun el tipo de letra queda alineado otros tipos no alinean bien
lo puedes hacer de dos formas
1,, poner dos columnas en la primera columna poner
if(field->ximporte<0,xfield->ximporte," ")
en la segunda columna poner
if(field->ximporte>0,xfield->ximporte," ")
y queda sin problema
pero si quieres ponerla en la misma columna ay te va el codigo
Code: Select all
@ 1, 1 LISTBOX oLbx FIELDS CFACTURA->MFOLIO,;
DTOC(CFACTURA->MFECHA),;
CFACTURA->MNOMBRE,;
alinea(CFACTURA->MIMPORTE,40000,12),;
CHOLO(CFACTURA->MSTATUS);
FIELDSIZES 40,80,370,190,80;
HEADERS "Folio", "fecha","Nombre","Importe","Estatus";
ON LEFT DBLCLICK (mrec:=recno(),M1016(ODLG,"F", CFACTURA->MFOLIO),Tvamos(mrec));
ON CHANGE ( ASAMPLE:=HOLALA(ODLG,ASAMPLE,"F",CFACTURA->MFOLIO),oBrw:aArrayData := asample, obrw:refresh() );
COLOR "B+/G+,R,B,B,B+" SIZE 420, 150 font oletras OF oDlg
aunque le puse en listbox funciona en xbrowse
la funcion alinea es la que hace a la izquierda o a la derecha segun sea el importe en este cao le puse 40000 ay le pones cero y se hace la machaca y el doce es el tamaño a alinear
funcion de alinea
Code: Select all
Function alinea(ximporte,xnum,mtama)
local dev:="", mlen:=0, mlen2
ximporte:=alltrim(str(ximporte,14,2))
ximporte:=space(mtama-len(ximporte))+ximporte
if val(ximporte)<xnum
dev:=ximporte // esto lo acomoda a la izquierda automaticamente al quitarle todo los espacios
else
dev:=space(mtama)+ximporte // aqui agregarle los espacios que desese de separacion
endif
return dev
Benjamin Casarrubias Moreno
Cd. Obregon, Sonora, Mexico
chino72vale@hotmail.com
Fivewin 16.05, Harbour 3.2, xharbour 1.2.1, Fivelinux, visual estudio 2013
Cd. Obregon, Sonora, Mexico
chino72vale@hotmail.com
Fivewin 16.05, Harbour 3.2, xharbour 1.2.1, Fivelinux, visual estudio 2013
Re: xBrowse, justificar importe segun sea mayor a 0.
Hola benjiben143: Resultó tu formula, quedo muy bien.Gracias.
El Font que me funcionó fue "Courier new", con este alínea correctamente.
Muchas gracias.
Saludos
Ruben Fernandez.
El Font que me funcionó fue "Courier new", con este alínea correctamente.
Muchas gracias.
Saludos
Ruben Fernandez.
Re: xBrowse, justificar importe segun sea mayor a 0.
nadien a podido hacer esto
saludos
saludos
Re: xBrowse, justificar importe segun sea mayor a 0.
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.