Page 1 of 1
xBrowse, justificar importe segun sea mayor a 0.
Posted: Thu Jul 19, 2012 5:42 am
by RuFerSo
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.
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Thu Jul 19, 2012 6:34 am
by Carlos Mora
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
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Thu Jul 19, 2012 7:19 am
by joseluisysturiz
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
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Thu Jul 19, 2012 2:10 pm
by Francisco Horta
ruben prueba esto:
obrw:acols[3]:nDataStrAlign := if( VAL(EVAL(oBrw:aCols[3]:bStrData)) > 0, AL_RIGHT, AL_LEFT )
salu2
paco
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Thu Jul 19, 2012 2:12 pm
by Francisco Horta
me falto esta line ruben,,
oBrw:AddCol()
obrw:acols[3]:bStrData := { || TRANSFORM("tuimporte",'999,999.999') }
saludos
paco
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Thu Jul 19, 2012 3:16 pm
by RuFerSo
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.
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Fri Jul 20, 2012 10:34 pm
by Francisco Horta
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
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Sat Jul 21, 2012 5:04 am
by RuFerSo
Gracias Paco por la sugerencia, lo implementaré de esa forma ya que no veo otra solución.
Saludos
Muchas gracias.
Ruben Fernandez
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Sat Jul 21, 2012 5:04 am
by RuFerSo
Gracias Paco por la sugerencia, lo implementaré de esa forma ya que no veo otra solución.
Saludos
Muchas gracias.
Ruben Fernandez
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Tue Jul 24, 2012 8:45 pm
by benjiben143
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
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
y ya esta probado anexo imagen en una columa ,, ojo segun el tipo de letra queda alineado otros tipos no alinean bien
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Wed Jul 25, 2012 4:24 am
by RuFerSo
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.
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Sat Jul 23, 2016 4:57 pm
by jbrita
nadien a podido hacer esto
saludos
Re: xBrowse, justificar importe segun sea mayor a 0.
Posted: Sun Jul 24, 2016 5:18 pm
by cnavarro