Problema con TxBrowse

Problema con TxBrowse

Postby Pedro » Sat Sep 26, 2009 12:12 pm

Hola a todos
Tengo un pequeño problema con TxBrowse, que no sé si es cosa mía o de la clase.
El caso es que al teclear un código de artículo, si éste es cero, no hace caso y en vez de quedarse en su celda, se va a la siguiente. Este es el código,
Code: Select all  Expand view

   oCol = oBrw:AddCol()
   oCol:bStrData      := { ||TRANSFORM((cAlias1)->codigo,"99999") }
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "CODIGO"
   oCol:bEditValid   =   {|o| if ( VAL(o:value()) == 0 , .f., .t.) }
   oCol:bOnPostEdit   := { | oCol, xVal, nKey | If( RecCount() == 0,( DbAppend(), oBrw:Refresh() ),) ,;
   If( nKey == VK_RETURN, If(Barticulo(oBrw,xVal),oBrw:Refresh(),oBrw:GoleftMost()),),;
   If( nKey == VK_ESCAPE .and. (cAlias1)->codigo=0,( (cAlias1)->(dbDelete()),;
               (cAlias1)->(__dbPack()),(cAlias1)->(dbGoBottom()),oBrw:Refresh() ), ) }
 

Supuestamente en If( nKey == VK_RETURN, If(Barticulo(oBrw,xVal),oBrw:Refresh(),oBrw:GoleftMost()),),; la función BArticulo devuelve falso si el código es cero, debería de hacer un oBrw:GoleftMost() (es decir quedarse en su columna, ya que es la primera y más a la izquierda del browse) en cambio salta a la siguiente columna.
Estoy haciendo algo mal?
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Problema con TxBrowse

Postby Daniel Garcia-Gil » Sat Sep 26, 2009 12:41 pm

Saludos Pedro.

Que version usas?
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Problema con TxBrowse

Postby FranciscoA » Sat Sep 26, 2009 9:12 pm

Pedro: Este trozo de codigo me funciona perfectamente.
Como verás, la única diferencia es que usas el bloque bEditValid, y yo no. Prueba sin éste a ver que pasa.
Saludos.

oCol = oBrw:AddCol()
oCol:bStrData = { || (cAlias)->SSSScta }
oCol:cHeader = "SC4 "
oCol:nEditType = EDIT_GET
oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( DbAppend(), oBrw:Refresh() ),) ,;
If( nKey == VK_RETURN, if(lCtaOK(oBrw),(cAlias)->SSSScta := xVal, oBrw:GoLeftMost()),) }
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2112
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Problema con TxBrowse

Postby Pedro » Sun Sep 27, 2009 7:26 am

Hola Daniel

Uso FWH 9.04
He recompilado todos mis programas a esta versión por el tema del PCODE, que hasta la versión 9.03 era el 9 y desde ésta es el 10
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Problema con TxBrowse

Postby Pedro » Sun Sep 27, 2009 7:29 am

Hola Francisco

El bloque bEditValid lo uso para que si el código es cero no permita seguir. Notarás que es lo que se evalúa en el bloque, pero voy a probarlo sin ese bloque a ver que hace.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Problema con TxBrowse

Postby Pedro » Sun Sep 27, 2009 9:03 am

Hola Francisco

Pues me hace lo mismo, se va a la siguiente columna. Prueba tú a que te devuelva un valor no válido en esa celda.
Por lo que veo ese módulo es algo de contabilidad, prueba con una cuenta de mayor, o una cuenta no existente y si en tu función lCtaOk después de comprobar que no existe, la buscas, prueba a devolver una cancelación de la búsqueda, para que el resultado sea un valor cero, o no existente, a ver si se mueve a la columna siguiente, dejándote el valor de esa celda a cero.

Daniel
En la clase xBrowse, tenéis una interrogación en la línea 2119 Method SelectCol, eso es igual a un mensaje MsgAlert. y sale en la aplicación.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Problema con TxBrowse

Postby Daniel Garcia-Gil » Sun Sep 27, 2009 9:14 am

Hola Pedro...

Te pregunte de la version porque en FWH se introdujo una nueva data en xbrowse llamada nMoveType, que determina el movimento post editcion, revisa el ejemplo xbposte.prg

Te dejo una forma que te podria funcionar

oCols:bEditValid = {|o| if ( Val( o:value() ) == 0 , oBrw:nMoveType := MOVE_NONE, oBrw:nMoveType := MOVE_RIGHT ) , .T. }
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Problema con TxBrowse

Postby Pedro » Sun Sep 27, 2009 10:15 am

Hola Daniel
Lo estaba leyendo detenidamente, pues me había dado la sensación que era para el movimiento automático entre las columnas, pero ya veo que no es así, que se puede asignar el movimiento según la evaluación del bOnPostEdit.
Funcionó perfecto, gracias.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 69 guests