by Elias Torres » Fri Nov 10, 2006 10:43 am
Perdona Antonio, se me paso poner el codigo....
Bueno, estas son las dos funciones que estoy utilizando. Lo que pretendo hacer es un inventario, en el que al introducir un codigo muestre la descripcion y las cantidades(estas ultimas se podrán modificar) y asi sucesivamente....
Yo creo que el motivo por el que no funciona el intro (ni en el emulador ni en el teclado) es por el procedimiento de busqueda que realizo, pero mi duda es porque el borrar si lo hace....
Si tienes alguna sugerencia de como realizar la busqueda una vez introducido el codigo, comentamela...te lo agradeceria mucho.
El codigo es el siguiente....
******************
FUNCTION Registros()
******************
local oDlg
LOCAL oGetInventario, oGetNombre, oGetAcumulado, oGetCantidad, LOCAL oGetFecha, cantidad:=0,acumulado:=0, cSearch := "",nombre
SELECT inventario
IF EOF()
c=1
ELSE
inventario->(dbgobottom())
c=val(inventario->numdoc)+1
endif
oGetInventario_cod=RIGHT(STR(1000000+c),6)
oGetFecha=(DTOC(date())+' '+cValToChar((TIME())))
Inventario->(dbappend())
inventario->numdoc:=oGetInventario_cod
inventario->fecha_doc:=oGetFecha
showkeyboard()
(cAliasInventario)->(DbSeek((cAliasArticulos)->cod_art,.t.))
DEFINE dialog odlg resource "Inventario"
redefine group ogrp id 600 of odlg color CLR_RED,RGB(230,184,94)
DEFINE font oFont2 name "Courier New" bold
redefine say id 4001 of odlg color CLR_RED, RGB(230,184,94)
redefine say id 4002 of odlg color CLR_RED, RGB(230,184,94)
redefine say id 4003 of odlg color CLR_RED, RGB(230,184,94)
redefine say id 120 of odlg color CLR_RED, RGB(230,184,94)
redefine say id 4010 of odlg color RGB(1,1,1),RGB(230,184,94)
redefine say id 4011 of odlg color RGB(1,1,1),RGB(230,184,94)
DEFINE FONT oFont NAME "Courier New" SIZE 6, -14
redefine say oSay prompt cSearch id 130 of odlg COLOR CLR_BLACK, CLR_WHITE
oSay:bKeyChar = { | nKey, nFlags | Search_art( nKey, @cSearch),oSay:REFRESH(),oGetNombre:Refresh()}
redefine get oGetAcumulado var acumulado id 4007 of odlg
redefine get oGetCantidad var cantidad id 4005 of odlg
redefine get oGetNombre var articulos->nom_art id 4004 of odlg
redefine get oGetNumDoc var oGetInventario_cod id 4008 of odlg
redefine get oGetFecha_Doc var oGetFecha id 4009 of odlg
odlg:setcolor(RGB(1,1,1),RGB(230,184,94))
inventario->codigo:=articulos->cod_art
inventario->pvp:=articulos->precio
inventario->nombre:=articulos->nom_art
inventario->stock:= acumulado
inventario->cant:= cantidad
ACTIVATE dialog odlg;
on init barra_desplazamiento( odlg)
oFont:End()
RETURN nil
************************************
function Search_art( nkey,cSearch,nombre )
************************************
if nKey = 8 &&equivale a pulsar la tecla de borrar
cSearch = SubStr( cSearch, 1, Len( cSearch ) - 1 )
else
cSearch += Upper( Chr( nKey ) )
ENDIF
IF nKey = 32 &&equivale a pulsar el espacio
articulos->( DbSeek( ALLTRIM(@cSearch)),.t.)
cSearch=""
endif
return nil
Un saludo y gracias.
Elías Torres.