Página 1 de 1
Terminal de Consulta
Enviado: 19 Out 2009 18:41
por m.azevedo
saudações a todos
Sou novo aqui no forum, tenho alguns programas feitos em clipper, agora estou tentando migrar para Xharbour-hwgui 2.15, mas estou com uma dificuldade.O programa que eu tenho é um simples terminal de consulta "são tomé", a minha dificuldade esta em como dar o comando para que o programa comece a pesquisa no banco de dados, o programa que eu consegui desenvolver só começa a pesquisa se for acionado um botão com o mouse para que a função "pesquisa()" seja chamada algo totalmente inviavel se tratando de um terminal consulta aonde se utiliza apenas um leitor de codigo de barras.
Se aguém quiser me ajudar ficarei muito agradecido
obrigado à todos.
Re: Terminal de Consulta
Enviado: 19 Out 2009 21:23
por alxsts
Olá!
Saudações M.Azevedo. Seja bem-vindo ao fórum. Esteja certo de que queremos ajudar. Estamos aqui para isto.
Existem leitoras de código de barras que enviam automaticamente um CR (carriage return) após o último caracter lido. Creio que a sua leitora faça isto. De qualquer forma, informe este detalhe e, se possível, poste o código onde você trata o READ e a chamada da rotina Pesquisa(). Minha praia é Clipper mas, certamente os colegas que entendem de xHarbour-hwgui te auxiliarão.
Re: Terminal de Consulta
Enviado: 19 Out 2009 22:09
por m.azevedo
Obrigado Alxsts
este é uma parte do meu código,
Código: Selecionar todos
*---------------------------------------------------------------------------------------
Function Consulta()
*---------------------------------------------------------------------------------------
Local Tel_Ferramentas, oPanel, oFontBtn, oFontBtn2, Titulo:="Produtos"
Private Gt_Cod, Gt_Codbarra, Gt_Cdprod, Gt_Descricao, Gt_Referencia, Gt_Depto, Gt_Termvenda, Gt_Termprom, Gt_WCdprod, Gt_Cdprodass
Private oCod, oCodbarra, oCdprod, oDescricao, oReferencia, oDepto, oTermvenda, oTermprom, oCdprodass Private oBotNew
SET PATH TO F:\MAGBR
PREPARE FONT oFontBtn NAME "Arial" WIDTH 0 HEIGHT -30
INIT DIALOG Tel_Ferramentas CLIPPER NOEXIT TITLE Titulo SIZE GetDesktopWidth(), GetDesktopHeight() - 28 Font oFontBtn
OpenDbf()
Select TabDbf
Set Order to 1
Go Top
GetVars() //Inicializa as variaveis
CreateGets()
CreateVariable()
@ 700,35 OWNERBUTTON oBotNew OF Tel_Ferramentas ON CLICK {|| pesquisa(), Gt_Cod:SetFocus() } ;
SIZE 44,38 FLAT ;
TEXT "OK"
Tel_Ferramentas:Activate()
return nil
*---------------------------------------------------------------------------------------
Function OpenDbf()
*---------------------------------------------------------------------------------------
Local vTab:={}
Local vArq:=oDir+"Bank1.DBF"
Local vInd1:=oDir+"bnkinter.NTX"
Use (vArq) Shared Alias TabDbf
If !File(vInd1)
fLock()
Index on CdPROD to (vInd1)
Unlock
Else
Set Index to (vInd1)
EndIf
Return Nil
*---------------------------------------------------------------------------------------
Function Pesquisa()
*---------------------------------------------------------------------------------------
//CloseGets()
Select TabDbf
oCod:=Str(val(oCod),20)
Seek oCod
If Found()
GetVars() //Inicializa as variaveis
//CreateVariable()
GetRefresh()
oCod:=0
else
MsgInfo("Codigo Interno "+oCod+" Não Cadastrado","Mensagem")
Endif
Return Nil
*---------------------------------------------------------------------------------------
Function CreateGets()
*---------------------------------------------------------------------------------------
@ 220,30 Say "Código" SIZE 200, 40
@380,30 Get Gt_Cod VAR oCod PICTURE "99999999999999999999" STYLE WS_DLGFRAME ;
SIZE 270, 40 COLOR Vcolor("FF0000")
///@ 220, 90 Say "Código de Barra" SIZE 300,35
@ 210,100 GROUPBOX "Código de Barra" SIZE 320, 80
@220, 130 Say oCodbarra SIZE 300, 40 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070
@ 560,90 Say "Código Interno" SIZE 200, 35
@560,130 Say oCdprod SIZE 270, 40 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070
@ 220,200 Say "Descrição" SIZE 200, 32
@220,230 Say odescricao SIZE 765, 40 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070
@ 220,300 Say "Referência" SIZE 200, 32
@220,330 Say oreferencia SIZE 765, 40 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070
@ 220,400 Say "Departamento" SIZE 200, 32
@220,430 Say odepto STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070
@220,430 Say oCdprodass SIZE 400, 40 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070
@ 550,490 Say "Preço Normal" SIZE 200, 405
@550,520 Say otermvenda SIZE 280, 65 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 Font oFontBtn
@ 220,490 Say "Preço Oferta" SIZE 200, 40
@220,520 Say otermprom SIZE 300, 65 STYLE WS_BORDER COLOR 65535 BACKCOLOR 255 Font oFontBtn
RETURN NIL
*---------------------------------------------------------------------------------------
Function GetVars()
*---------------------------------------------------------------------------------------
oCodbarra:=TabDbf->Codbarra
oCdprod:=TabDbf->Cdprod
oDescricao:=TabDbf->Descricao
oReferencia:=TabDbf->Referencia
oDepto:=TabDbf->Depto
oTermvenda:=TabDbf->TERMVENDA
oTermprom:=TabDbf->Termprom
oCdprodass:=TabDbf->Cdprodass
Return Nil
*---------------------------------------------------------------------------------------
Function OpenGets()
*---------------------------------------------------------------------------------------
Gt_Codbarra:Enable()
Gt_Cdprod:Enable()
Gt_Descricao:Enable()
Gt_Referencia:Enable()
Gt_Depto:Enable()
Gt_Termvenda:Enable()
Gt_Termprom:Enable()
Return Nil
*---------------------------------------------------------------------------------------
Function GetRefresh()
*---------------------------------------------------------------------------------------
Local oDlg:=GetModalHandle()
Gt_Cod:Refresh()
Gt_Codbarra:Refresh()
Gt_Cdprod:Refresh()
Gt_Descricao:Refresh()
Gt_Referencia:Refresh()
Gt_Depto:Refresh()
Gt_Termvenda:Refresh()
Gt_Termprom:Refresh()
Gt_Cdprodass:Refresh()
Return Nil
*---------------------------------------------------------------------------------------
Function CreateVariable()
*---------------------------------------------------------------------------------------
oCod:=0
oCodbarra:=SPACE(20)
oCdprod:=SPACE(20)
oDescricao:=SPACE(40)
oReferencia:=SPACE(40)
oDepto:=0
oTermvenda:=0
oTermprom:=0
oCdprodass:=SPACE(20)
*---------------------------------------------------------------------------------------
Function CloseGets
*---------------------------------------------------------------------------------------
Gt_Codbarra:Disable()
Gt_Cdprod:Disable()
Gt_Descricao:Disable()
Gt_Referencia:Disable()
Gt_Depto:Disable()
Gt_Termvenda:Disable()
Gt_Termprom:Disable()
Return Nil
Re: Terminal de Consulta
Enviado: 20 Out 2009 07:40
por Toledo
M.Azevedo, é só colocar um VALID neste seu GET, chamando a mesma função do botão.
Código: Selecionar todos
@380,30 Get Gt_Cod VAR oCod PICTURE "99999999999999999999" ;
VALID {|| pesquisa(), Gt_Cod:SetFocus() } ;
STYLE WS_DLGFRAME ;
SIZE 270, 40 COLOR Vcolor("FF0000")
Obs.: eu não testei, mas acho que o Gt_Cod:SetFocus() dentro do GET vai funcionar. Caso não dê certo, deixe no VALID apenas {|| pesquisa() } e troque o "Return Nil" da função Pesquisa() por "Return .F.".
Abraços e seja bem-vindo ao fórum!
Re: Terminal de Consulta
Enviado: 22 Out 2009 02:47
por m.azevedo
Toledo fiz o que você falou, e deu certo, deixei no VALID apenas {|| pesquisa() } e troque o "Return Nil" da função Pesquisa() por "Return .F.".Show de bola você me ajudou muito,
muito obrigado!! e Parabéns pelo Forum.
:-Y