xBrowse, justificar importe segun sea mayor a 0.

Post Reply
RuFerSo
Posts: 55
Joined: Mon Feb 20, 2012 2:56 pm

xBrowse, justificar importe segun sea mayor a 0.

Post 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.
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: xBrowse, justificar importe segun sea mayor a 0.

Post 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
User avatar
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.

Post 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
Dios no está muerto...

Gracias a mi Dios ante todo!
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: xBrowse, justificar importe segun sea mayor a 0.

Post by Francisco Horta »

ruben prueba esto:

obrw:acols[3]:nDataStrAlign := if( VAL(EVAL(oBrw:aCols[3]:bStrData)) > 0, AL_RIGHT, AL_LEFT )

salu2
paco
____________________
Paco
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: xBrowse, justificar importe segun sea mayor a 0.

Post by Francisco Horta »

me falto esta line ruben,,

oBrw:AddCol()
obrw:acols[3]:bStrData := { || TRANSFORM("tuimporte",'999,999.999') }

saludos
paco
____________________
Paco
RuFerSo
Posts: 55
Joined: Mon Feb 20, 2012 2:56 pm

Re: xBrowse, justificar importe segun sea mayor a 0.

Post 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.
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: xBrowse, justificar importe segun sea mayor a 0.

Post 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
____________________
Paco
RuFerSo
Posts: 55
Joined: Mon Feb 20, 2012 2:56 pm

Re: xBrowse, justificar importe segun sea mayor a 0.

Post by RuFerSo »

Gracias Paco por la sugerencia, lo implementaré de esa forma ya que no veo otra solución.

Saludos
Muchas gracias.
Ruben Fernandez
RuFerSo
Posts: 55
Joined: Mon Feb 20, 2012 2:56 pm

Re: xBrowse, justificar importe segun sea mayor a 0.

Post by RuFerSo »

Gracias Paco por la sugerencia, lo implementaré de esa forma ya que no veo otra solución.

Saludos
Muchas gracias.
Ruben Fernandez
benjiben143
Posts: 113
Joined: Wed Mar 11, 2009 7:32 pm
Location: Obregon, Sonora, Mexico

Re: xBrowse, justificar importe segun sea mayor a 0.

Post 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
Benjamin Casarrubias Moreno
Cd. Obregon, Sonora, Mexico
chino72vale@hotmail.com
Fivewin 16.05, Harbour 3.2, xharbour 1.2.1, Fivelinux, visual estudio 2013
RuFerSo
Posts: 55
Joined: Mon Feb 20, 2012 2:56 pm

Re: xBrowse, justificar importe segun sea mayor a 0.

Post 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.
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: xBrowse, justificar importe segun sea mayor a 0.

Post by jbrita »

nadien a podido hacer esto

saludos
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: xBrowse, justificar importe segun sea mayor a 0.

Post by cnavarro »

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