xBrowse, justificar importe segun sea mayor a 0.

xBrowse, justificar importe segun sea mayor a 0.

Postby RuFerSo » Thu Jul 19, 2012 5:42 am

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

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

Postby Carlos Mora » Thu Jul 19, 2012 6:34 am

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

Postby joseluisysturiz » Thu Jul 19, 2012 7:19 am

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:

viewtopic.php?f=6&t=18663&p=97788&hilit=ndatastralign#p97788
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

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

Postby Francisco Horta » Thu Jul 19, 2012 2:10 pm

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.

Postby Francisco Horta » Thu Jul 19, 2012 2:12 pm

me falto esta line ruben,,

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

saludos
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.

Postby RuFerSo » Thu Jul 19, 2012 3:16 pm

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

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

Postby Francisco Horta » Fri Jul 20, 2012 10:34 pm

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

Postby RuFerSo » Sat Jul 21, 2012 5:04 am

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.

Postby RuFerSo » Sat Jul 21, 2012 5:04 am

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.

Postby benjiben143 » Tue Jul 24, 2012 8:45 pm

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  Expand view
@ 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  Expand view
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
benjiben143
 
Posts: 114
Joined: Wed Mar 11, 2009 7:32 pm
Location: Obregon, Sonora, Mexico

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

Postby RuFerSo » Wed Jul 25, 2012 4:24 am

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

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

Postby jbrita » Sat Jul 23, 2016 4:57 pm

nadien a podido hacer esto

saludos
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

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

Postby cnavarro » Sun Jul 24, 2016 5:18 pm

Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: cmsoft and 11 guests