FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema con TxBrowse
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Problema con TxBrowse
Posted: 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 (fw): Select all Collapse
聽 聽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
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Problema con TxBrowse
Posted: Sat Sep 26, 2009 12:41 PM

Saludos Pedro.

Que version usas?

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Problema con TxBrowse
Posted: Sat Sep 26, 2009 09: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
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Problema con TxBrowse
Posted: Sun Sep 27, 2009 07: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
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Problema con TxBrowse
Posted: Sun Sep 27, 2009 07: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
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Problema con TxBrowse
Posted: Sun Sep 27, 2009 09: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
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Problema con TxBrowse
Posted: Sun Sep 27, 2009 09: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. }

Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Problema con TxBrowse
Posted: 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

Continue the discussion