Terminal de Consulta

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
m.azevedo
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 19 Ago 2009 14:43
Localização: marituba-PA
Contato:

Terminal de Consulta

Mensagem 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.
Editado pela última vez por m.azevedo em 19 Out 2009 21:55, em um total de 1 vez.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Terminal de Consulta

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
m.azevedo
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 19 Ago 2009 14:43
Localização: marituba-PA
Contato:

Re: Terminal de Consulta

Mensagem 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
 
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Terminal de Consulta

Mensagem 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!
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
m.azevedo
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 19 Ago 2009 14:43
Localização: marituba-PA
Contato:

Re: Terminal de Consulta

Mensagem 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
Responder