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... :shock:

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

Image

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