FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Una ayuda en Xbrowse
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Una ayuda en Xbrowse
Posted: Thu Jan 22, 2009 01:34 PM
Hola a todos
Me estoy quedando perplejo con un tema en un browse.
Para haceros una idea. Una tabla de asientos contables. Campos : Asiento, Fecha, Cuenta, Nombre, documento, Concepto, debe, haber. Tipos N,6,0--D,8,0,--N,8,0--C,30,0--C,12,0,C,40,0--N,10,2--N,10,2
El tema es que cuando termino de general el primer registro, hago un cl贸n del mismo y lo grabo como siguiente registro, lo presento en el browse para que el usuario cambie lo que necesite. Pues bien, suponiendo haber grabado el primero con los siguientes datos : ASIENTO = 1, FECHA = 22/01/2009, CUENTA=700000, NOMBRE= VENTAS DE MERCADERIAS, DOCUMENTO= 4 , CONCEPTO= VENTAS DEL DIA, DEBE= 0, HABER= 2,000.00
En el siguiente registro grabado previamente, quedar铆A igual al anterior excepto el debe y haber, que quedar铆an al reves, es decir, si debe no ten铆a valor, se graba con el valor del haber y el haber se graba con cero, o viceversa. Pues cuando paso por el debe, que ser铆a este caso, y he pulsado intro sin poner cantidad, solo aceptar la que hay grabada, el browse me cambia la cantidad de 2,000.00 por 2.00 . Puse una funci贸n que me informara del valor de la variable y su tipo, y curiosamente, la variable trae el valor de 2,000.00 y su tipo es caracter, cuando voy a grabar lo hago con un Val(variable)
y aqui es cuando el valor se transforma en 2.00.
驴es esto normal? porque no lo veo.
El c贸digo del browse es este
 
   oCol = oBrw:AddCol()
   oCol:bStrData      := { ||Transform( (oBrw:cAlias)->Debe,"9,999,999.99" ) }	 
   oCol:nDataStrAlign := 1 //alineado a la derecha 
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "DEBE" 
   oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, DbAppend(),),;
	 If( nKey == VK_RETURN, ( (miradato(xVal),(oBrw:cAlias)->debe := Val(xVal)),;
   If ( Val(xVal) <> 0, ((oBrw:cAlias)->haber := 0, CUADREDIARIO(VAL(xVal),1,oDlg)),) ,),) }

La funcion miradato s贸lo sirve para informar del tipo de dato y el valor de la variable xVal
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Re: Una ayuda en Xbrowse
Posted: Thu Jan 22, 2009 02:30 PM
Yo entiendo que es un comportamiento normal de val(), al encontrar la coma","(separador de millar), val solo espera +- numeros y punto decimal.

Si quitas la coma creo que te funcionara bien.

(oBrw:cAlias)->debe := Val(StrTran(xVal,','))
Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Una ayuda en Xbrowse
Posted: Thu Jan 22, 2009 04:26 PM

Gracias Biel

Eso funcion贸 bien

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO

Continue the discussion