Retorno de Teclas do Browse

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Retorno de Teclas do Browse

Mensagem por marcos.gurupi »

Caros tenho uma pesquisa incremental:

@ 15, 5 BROWSE oBrwPro DATABASE OF oBuscPro SIZE 660,150 STYLE WS_VSCROLL +
WS_HSCROLL ;
AUTOEDIT ;
ON KEYDOWN {|o,key| BrowseKey3(o, key) };
ON POSCHANGE {|| BrowseMove(oBrwPro, "NIL", oEdGoto, "Dbs") }

Acontece q quando o usuario digita a barra (/) ou mesmo usa o teclado numero
(lado esquerdo do teclado) o mesmo retorna caracteres estranhas. Como faco
para q o retorno seja correto.

USO: HWGUI 2.14 e xhb 0.99.50
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, vc poderia me passar um exmplo de como vc esta usando seu BROWSE ?

Desde Já Agradeço
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mensagem por marcos.gurupi »

Segue abaixo o codigo:

Código: Selecionar todos


Static Function BuscPro(CodPro)

Local oBuscPro, oFont
Local CALIAS:=ALIAS()
Local NORDEM:=INDEXORD()
Local NRECNO:=RECNO()
Local oBrwPro
LOCAL oEdGoto,oTest01
Private gPes,vPes:=""
Private oPrcavista,oPrcaprazo,oGrupo,oUnidade,oEstoque,oDescMax,oPeso,;
        oUltVenda,oMarca,oTransito,oPCusto
Private vPrcavista:="Preco a vista: "+transform(Prod001->_Venda,"@E 999,999.99")
Private vPrcaprazo:="Preco a prazo: "+transform(Prod001->_Venda2,"@E 999,999.99")
Private vGrupo:="Grupo........: "+transform(Prod001->_grupo,"@!")
Private vUnidade:="Unidade......: "+transform(Prod001->_Unidade,"@!")
Private vEstoque:="Estoque......: "+transform(Prod001->_Estoque,"99999.99")
Private vPCusto:="Preco Custo..: "+transform(Prod001->_P_Custo,"@E 999,999.99")
Private vDescMax:="Desconto Maximo: "+transform(Prod001->descmax,"@E 999.99%")
Private vPeso:="Peso...........: "+transform(Prod001->PESO,"9999.99")
Private vUltVenda:="Ultima Venda...: "+dtoc(Prod001->_Uvenda)
Private vMarca:="Marca..........: "+transform(Prod001->_Marca,"@!")
Private vTransito:="Transito.......: "+transform(Prod001->_Transito,"9999.99")

//@  15,180 SAY "Preco a vista: "+transform(_Venda,"@E 999,999.99")        size 400,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@  15,200 SAY "Preco a prazo: "+transform(_Venda2,"@E 999,999.99")       size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@  15,220 SAY "Grupo........: "+transform(_grupo,"@!")                   size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@  15,240 SAY "Unidade......: "+transform(_Unidade,"@!")       size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@  15,260 SAY "Estoque......: "+transform(_Estoque,"99999.99")  size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER

//@ 425,180 SAY "Desconto Maximo: "+transform(descmax,"@E 999.99%")          size 240,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@ 425,200 SAY "Peso...........: "+transform(PESO,"9999.99")          size  80,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@ 425,220 SAY "Ultima Venda...: "+dtoc(_Uvenda)              size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@ 425,240 SAY "Marca..........: "+transform(_Marca,"@!")            size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
//@ 425,260 SAY "Transito.......: "+transform(_Transito,"9999.99")            size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER




PREPARE FONT oFont NAME "Courier New" WIDTH 0 HEIGHT -14
SELECT 8
Ordsetfocus(1)
dbseek(CodPro)
IF !FOUND()
   Ordsetfocus(6)
   dbseek(CodPro)
   IF !FOUND()
      INIT DIALOG oBuscPro CLIPPER NOEXIT TITLE "Busca Produtos.";
      FONT oFont ;
      AT 0, 0 SIZE 700, 425 ;
      STYLE DS_CENTER + WS_VISIBLE + WS_POPUP + WS_VISIBLE +WS_CAPTION + WS_SYSMENU

      ordsetfocus(2)

      @ 15, 5 BROWSE oBrwPro DATABASE OF oBuscPro SIZE 660,150 STYLE WS_VSCROLL + WS_HSCROLL ;
      AUTOEDIT ;
      ON KEYDOWN {|o,key| BrowseKey3(o, key) };
      ON POSCHANGE {|| BrowseMove(oBrwPro, "NIL", oEdGoto, "Dbs") }
   

      ADD COLUMN FieldBlock(Fieldname(3) ) TO oBrwPro ;
      HEADER  "Codigo" ;
      PICTURE "99999" ;
      JUSTIFY HEAD DT_CENTER ;
      JUSTIFY LINE DT_LEFT

      ADD COLUMN FieldBlock(Fieldname(18) ) TO oBrwPro;
      HEADER  "Descricao do Produto" ;
      PICTURE "@!" ;
      JUSTIFY HEAD DT_CENTER ;
      JUSTIFY LINE DT_LEFT

      @  10,160 GROUPBOX "Dados do Produto." SIZE GetDesktopWidth()-360,150

      @  15,180 SAY oPrcaVista   CAPTION vPrcaVista       size 400,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @  15,200 SAY oPrcaPrazo   CAPTION vPrcaPrazo       size 400,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @  15,220 SAY oGrupo       CAPTION vGrupo           size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @  15,240 SAY oUnidade     CAPTION vUnidade         size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @  15,260 SAY oEstoque     CAPTION vEstoque         size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @  15,280 SAY oPCusto      CAPTION vPCusto          size 400,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER

      @ 425,180 SAY oDescMax     CAPTION vDescMax         size 240,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @ 425,200 SAY oPeso        CAPTION vPeso            size  80,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @ 425,220 SAY oUltVenda    CAPTION vUltVenda        size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @ 425,240 SAY oMarca       CAPTION vMarca           size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @ 425,260 SAY oTransito    CAPTION vTransito        size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER


      @  10,360 say "Pesquisa:" size 70,20
      @  80,360 SAY gPes CAPTION vPes size 200,20 STYLE WS_BORDER COLOR 10485760 BACKCOLOR 12507070 //SS_CENTER
      @ 290,360 BUTTON oButton CAPTION "Ok"   SIZE 100, 20 ON CLICK {||vRef:=_Ref01,vDescricao:=_Descricao,vPreco:=_Venda,EndDialog()} STYLE WS_TABSTOP + BS_DEFPUSHBUTTON
      ACTIVATE DIALOG oBuscPro
   ENDIF
ENDIF
DBSELECTAREA(CALIAS)
DBSETORDER(NORDEM)
DBGOTO(NRECNO)
vRef:=iif(empty(Prod001->_Ref02),Prod001->_Ref01,Prod001->_Ref02)
vDescricao:=Prod001->_Descricao
vPreco:=Prod001->_Venda
oDescricao:SetText(vDescricao)
oPreco:SetText(vPreco)
oRef:SetText(vRef)
Return Nil

Static Function BrowseKey3( oBrowse, key )

IF key == VK_BACK .or. key == VK_LEFT
   If len(vPes) > 0
      //vPes := UPPER(CHR(vPes - 48))
      vPes := substr(vpes,1,len(vPes)-1)
   EndIf
ElseIf key == VK_UP .or. key == VK_DOWN
   oPrcAvista:SetText("Preco a vista: "+transform(Prod001->_Venda,"@E 999,999.99"))
   oPrcAprazo:SetText("Preco a prazo: "+transform(Prod001->_Venda2,"@E 999,999.99"))
   oGrupo:SetText("Grupo........: "+transform(Prod001->_grupo,"@!"))
   oUnidade:SetText("Unidade......: "+transform(Prod001->_Unidade,"@!"))
   oEstoque:SetText("Estoque......: "+transform(Prod001->_Estoque,"99999.99"))
   oPCusto:SetText("Preco Custo..: "+Transform(Prod001->_P_Custo,"@E 999,999.99"))

   oDescMax:SetText("Desconto Maximo: "+transform(Prod001->descmax,"@E 999.99%"))
   oPeso:SetText("Peso...........: "+transform(Prod001->PESO,"9999.99"))
   oUltVenda:SetText("Ultima Venda...: "+dtoc(Prod001->_Uvenda))
   oMarca:SetText("Marca..........: "+transform(Prod001->_Marca,"@!"))
   oTransito:SetText("Transito.......: "+transform(Prod001->_Transito,"9999.99"))
   return .t.
Else
   if key =190.or.key=194.or.key=255
      vPes += [.]
   elseif key=188.or.110
      vPes += [,]
   elseif key=96
      vPes += [0]
   elseif key=33
      dbskip(-10)
      return .t.
   elseif key=34
      dbskip(+10)
      return .t.
   elseif key=97
      vPes += [1]
   elseif key=98
      vPes += [2]
   elseif key=99
      vPes += [3]
   elseif key=100
      vPes += [4]
   elseif key=101
      vPes += [5]
   elseif key=102
      vPes += [6]
   elseif key=103
      vPes += [7]
   elseif key=104
      vPes += [8]
   elseif key=105
      vPes += [9]
   elseif key=106
      vPes += [*]
   elseif key=107
      vPes += [+]
   elseif key=109
      vPes += [-]
   elseif key=193.or.key=191.OR.Key=111
      vPes += [/]
   elseif key=105
      vPes += [9]
   elseif key=189
      vPes += [-]
   elseif key=187
      vPes += [=]
//   elseif key>=96 .and. key<=105
//      key := key -48
   else
      //MsgInfo(str(key))
      IF IsCapsLockActive() .or. Key=16
      ELSE
         if key>=65 .and. key <=90
            key := key+32
         endif
      ENDIF
      vPes += chr(key)
   endif
EndIf
gPes : SetText(vPes)
gPes : SetFocus()
dbseek(vpes)
oBrowse:Refresh()
oPrcAvista:SetText("Preco a vista: "+transform(Prod001->_Venda,"@E 999,999.99"))
oPrcAprazo:SetText("Preco a prazo: "+transform(Prod001->_Venda2,"@E 999,999.99"))
oGrupo:SetText("Grupo........: "+transform(Prod001->_grupo,"@!"))
oUnidade:SetText("Unidade......: "+transform(Prod001->_Unidade,"@!"))
oEstoque:SetText("Estoque......: "+transform(Prod001->_Estoque,"99999.99"))
oPCusto:SetText("Preco Custo..: "+Transform(Prod001->_P_Custo,"@E 999,999.99"))
oDescMax:SetText("Desconto Maximo: "+transform(Prod001->descmax,"@E 999.99%"))
oPeso:SetText("Peso...........: "+transform(Prod001->PESO,"9999.99"))
oUltVenda:SetText("Ultima Venda...: "+dtoc(Prod001->_Uvenda))
oMarca:SetText("Marca..........: "+transform(Prod001->_Marca,"@!"))
oTransito:SetText("Transito.......: "+transform(Prod001->_Transito,"9999.99"))
Return .T.



Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

marcos.gurupi:
USO: HWGUI 2.14 e xhb 0.99.50
Tche, jah tentou atualizar o xharbour e o Hwgui ?

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mensagem por marcos.gurupi »

:)

O problema eh q quando c atualiza resolve alguns problemas e aparece outros varios. :)

Mas eh assim mesmo, vamos caminhando q chegamos lah.

Marcos Roberto.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

O problema eh q quando c atualiza resolve alguns problemas e aparece outros varios.
Mas eh assim mesmo, vamos caminhando q chegamos lah.
Tche, se tiver problema posta ai e nos tentamos resolver... e é bem como vc colocou....caminhando chegamos lah...de graça até a injeção na testa....hehehe

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder