EDICION POR COLUMNA

EDICION POR COLUMNA

Postby Marco Augusto » Mon Jul 09, 2007 8:43 pm

COMO PUEDO SIMULAR EL KEYBOARD DE CLIPPER
ALGO ASI COMO KEYBOARD K_ENTER+KEY

LO QUE NECESITO ES PODER EDITAR UNA COLUMNA DE LISTBOX UTILIZANDO LA FUNCION EDITCOL
DE TAL FORMA QUE AL ESCRIBIR SOBRE LA COLUMNA EL NUMERO 85
APAREZCA DIRECTAMENTE
SIN TENER QUE DAR "ENTER" PRIMERO, DESPUES "85" Y "ENTER" AL FINAL

ALGO ASI

oBrw:bkeydown={| nkey |iif(nkey>47 .and. nkey<58,modifica(nkey),nil)}

function modifica(nkey)
xvalor:=cantidad
if oBrw:editcol(3,@xvalor,'99,999',,,,,)
cantidad:=valor
endif
return nil

No se como hacer para que al escribir 8, aparezca el 8 en la columna y el cursor se quede despues del 8, y posteriormente solo escriba el 5 y asi quede grabado el 85

Saludos
Marco Augusto Rodriguez Manzo
FWH January 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
User avatar
Marco Augusto
 
Posts: 144
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Postby Marcelo Via Giglio » Mon Jul 09, 2007 9:46 pm

Hola,

aumente

una data

DATA nkey

luego en el metodo

METHOD KeyChar( nKey, nFlags ) CLASS TWBrowse

:
CASE ::LAutoedit
::edit( :::nColAct,, nKey )

otherwise
:

Luego el metodo queda asi

METHOD Edit( nCol, lModal, nkey ) CLASS TWBrowse
:
::nKey := nKey
:

y por ultimo en el metodo

STATIC Function __Edit(Self, nCol, lModal )
:
:
despues de la linea
oGet:bValid:= {|| ValidlEditCol( Self, oGet, oDlg, bOldValid, bValid, bAction, @lOk ) }

añadi

oGet:bGotFocus := {|| IF( ::nKey != NIL .AND. ::nKey != 13, __keyboard(CHR(::nKey)), ) }

Por ahora no podria publicar la clase ya que hay algunas cosas mas que la hacen dependiente, espero darme tiempo para poder hacerla

Tienes que hacer lo mismo de siempre para asignar los datos a la columna, como lo muestras en tu ejemplo

Espero te sirva

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1065
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Postby Patricio Avalos Aguirre » Mon Jul 09, 2007 9:58 pm

Code: Select all  Expand view  RUN
How can mimic CA-Clipper's Keyboard command?

Use this function:

Function fwKeyboard(oWnd,nKey)

oWnd:SetFocus()
oWnd:PostMsg( WM_KEYDOWN, nKey, 0)

Return NIL


sacado de los tip de CD-Utilidades
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Postby Marco Augusto » Tue Jul 10, 2007 12:50 am

gracias

la funcion __keyboard fue la solucion
Marco Augusto Rodriguez Manzo
FWH January 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
User avatar
Marco Augusto
 
Posts: 144
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Postby Francisco Horta » Tue Jul 10, 2007 4:52 am

Marco,
me pudieras poner un ejemplo de como usas la funcion _keyboard, ya que me gustaria implementarlo en mi edicion con wbrowse.
gracias
salu2
paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Postby Marco Augusto » Wed Jul 11, 2007 12:55 am

FRANCISCO, TE ENVIO EL EJEMPLO, OJALA TE SIRVA

EL PROCEDIMIENTO ES UN POCO ARCAICO, PERO ME FUNCIONO PARA
RESOLVER ESTA NECESIDAD DE EDICION DE UN CAMPO NUMERICO
( SEGURAMENTE SE PUEDE MEJORAR )


1. MODIFIQUE EL METODO LEDITCOL DE LA CLASE WBROWSE.PRG
AÑADIENDO EL ULTIMO RENGLON


@ 0, 0 GET oGet VAR uVar ; // we have to use here uVar to use VALID !!!
SIZE aDim[ 4 ] - aDim[ 2 ] - If( bAction != nil, 12, 0 ),;
aDim[ 3 ] - aDim[ 1 ] OF oDlg ;
FONT aFONT[1] COLOR nClrFore, nClrBack
oGet:oGet:Picture = cPicture
OJO=> oGet:bGotFocus = { || oGet:SetSel( 0, 0 ),__Keyboard( STR(uVar,1) ) }


2. EN MI PROGRAMA LO LLAMO DE LA SIGUIENTE MANERA

REDEFINE LISTBOX oBRW .....
.......ETC

oBRW:bKeyDOWN={ | NKEY | IIF(NKEY>47.AND.NKEY<58,MODRESURM(oBRW,NKEY),NIL) }


FUNCTION MODRESUR(oOBJ,NKEY)
XVALOR1=NKEY-48
IF oOBJ:LEDITCOL(5,@XVALOR1,'99,999',,RGB(0,0,0),RGB(0,250,0),,)
CANTIDADE:=XVALOR1
ENDIF
oOBJ:REFRESH()
RETURN NIL
Marco Augusto Rodriguez Manzo
FWH January 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
User avatar
Marco Augusto
 
Posts: 144
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Postby Francisco Horta » Wed Jul 11, 2007 1:38 am

gracias marco,
lo configuro y pruebo
salu2
paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 56 guests