FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour xBrowse, justificar importe segun sea mayor a 0.
Posts: 55
Joined: Mon Feb 20, 2012 02:56 PM

xBrowse, justificar importe segun sea mayor a 0.

Posted: Thu Jul 19, 2012 05: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.

Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM

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

Posted: Thu Jul 19, 2012 06: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

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM

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

Posted: Thu Jul 19, 2012 07: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=6t=18663p=97788hilit=ndatastralign#p97788

&&&

Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM

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

Posted: Thu Jul 19, 2012 02:10 PM

ruben prueba esto:

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

salu2
paco

____________________

Paco
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM

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

Posted: Thu Jul 19, 2012 02:12 PM

me falto esta line ruben,,

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

saludos
paco

____________________

Paco
Posts: 55
Joined: Mon Feb 20, 2012 02:56 PM

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

Posted: Thu Jul 19, 2012 03: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.

Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM

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

Posted: 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
Posts: 55
Joined: Mon Feb 20, 2012 02:56 PM

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

Posted: Sat Jul 21, 2012 05:04 AM

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

Saludos
Muchas gracias.
Ruben Fernandez

Posts: 55
Joined: Mon Feb 20, 2012 02:56 PM

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

Posted: Sat Jul 21, 2012 05:04 AM

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

Saludos
Muchas gracias.
Ruben Fernandez

Posts: 120
Joined: Wed Mar 11, 2009 07:32 PM

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

Posted: Tue Jul 24, 2012 08: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 (fw): Select all Collapse
@ 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 (fw): Select all Collapse
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

Benjamin Casarrubias Moreno
Cd. Obreg贸n, Sonora, M茅xico
chino72vale@hotmail.com
Fivewin 24.04, Harbour 3.3, xharbour 1.2.1, Fivelinux, Visual Estudio 2022
Oracle Api Rest, SDK Contpaq, Facturaci贸n Electr贸nica, XML DIOT 2025
Posts: 55
Joined: Mon Feb 20, 2012 02:56 PM

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

Posted: Wed Jul 25, 2012 04: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.

Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM

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

Posted: Sat Jul 23, 2016 04:57 PM

nadien a podido hacer esto

saludos

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

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

Posted: Sun Jul 24, 2016 05: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

Continue the discussion