sig_gilberto Posted August 17, 2010 Report Share Posted August 17, 2010 Olá Desenvolvedores, Boa Tarde! Numa Dialog tenho um GET (entre outros GET´s) onde quero digitar o código do cliente e ao teclar , dar um DBSEEK() no banco e achar ou não o referido cliente pelo código digitado... O problema é que usando o ON CHANGE na linha do GET, ele é acionado automaticamente quando digito um único caracter. E se quando o código do cliente for "752698" ? Como resolver isso ? Como fazer com que o GET aguarde eu pressionar ENTER ou preencher todo, neste caso, todo o conteúdo da PICT de 06 posições, para cionar o ON CHANGE ? @ 02.40,14.0 Get oCDClient VAR vCDClient Pict "@K999999" Of oDLG FONT oFont8 Size 047,14 on change(Proc_Clie_Codi(vCDClient)) COLOR RGB(000,000,255) oCDclient:ctooltip="Informe o Codigo do Cliente..." ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP C# / xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 17/08/2010 12:14:07 Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted August 17, 2010 Author Report Share Posted August 17, 2010 Olá Desenvolvedores, Boa Tarde! Numa Dialog tenho um GET (entre outros GET´s) onde quero digitar o código do cliente e ao teclar , dar um DBSEEK() no banco e achar ou não o referido cliente pelo código digitado... O problema é que usando o ON CHANGE na linha do GET, ele é acionado automaticamente quando digito um único caracter. E se quando o código do cliente for "752698" ? Como resolver isso ? Como fazer com que o GET aguarde eu pressionar ENTER ou preencher todo, neste caso, todo o conteúdo da PICT de 06 posições, para cionar o ON CHANGE ? @ 02.40,14.0 Get oCDClient VAR vCDClient Pict "@K999999" Of oDLG FONT oFont8 Size 047,14 on change(Proc_Clie_Codi(vCDClient)) COLOR RGB(000,000,255) oCDclient:ctooltip="Informe o Codigo do Cliente..." ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP C# / xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 17/08/2010 12:14:07 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 17, 2010 Report Share Posted August 17, 2010 PORQUE ON CHANGE, E NÃO VALID...??? João Santos - São Paulo. kmt_karinha@pop.com.br joao@pleno.com.br Fone: (11) 3106-2832 / 8243-5632 FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted August 17, 2010 Author Report Share Posted August 17, 2010 Kapiaba..boa tarde! Assim: @ 02.40,14.0 Get oCDClient VAR vCDClient Pict "@K999999" Of oDLG FONT oFont8 Size 047,14 Valid(Proc_Clie_Codi(vCDClient)=.t.) COLOR RGB(000,000,255) oCDclient:ctooltip="Informe o Codigo do Cliente..." ***************************************************** /* buscar cliente */ Static Function Proc_Clie_Codi() DbUseArea(.t.,"DBFCDX","DBF\TB_CLIEN","TB_CLIEN",.t.,.f.) DBSelectArea("TB_CLIEN") OrdSEtFocus(1,"TB_CLIEN") DBGoTop() vCDClient:=StrZero(Val(vCDClient),6,0) oCDClient:Refresh() DBSeek(vCDClient) If !Found() MsgStop("Cliente Inexistente!","ERRO: "+vCDClient) Use Return .f. Else MsgStop("Cliente Enexistente!",vCDClient) Use Return .t. EndIf Return ********************************************************** Mas como acionar com o ENTER ou com o TextoBox cheio com o 6 caracteres ? Lembrando que a minha tabela de clientes, o campo CODCLIEN tem 06 posições, preenchidos com zeros a esquerda, "000001","000140",... ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP C# / xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Editado por - sig_gilberto on 17/08/2010 13:38:13 Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted August 17, 2010 Author Report Share Posted August 17, 2010 Funcionou assim na linha do GET : Valid(Proc_Clie_Codi(oCDClient:CTitle)=.t.) VLW!! ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP C# / xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
eevaldo Posted August 17, 2010 Report Share Posted August 17, 2010 Ola, faca o get com variavel numerica dai vc nao precisa se preucupar com o tamanho, depois de um strzero(variavel,6) Claro se sua chave so conter numeros. Obrigado. Evaldo Wagner FiveWin9.07 xHarbour 1.21,BCC55, Pelles C xDev,xHarbour for Linux(console) evaldowl@hotmail.com Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted August 17, 2010 Author Report Share Posted August 17, 2010 Opá...gostei da dica, vou testar tbém! SUCESSO! ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP C# / xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted August 17, 2010 Report Share Posted August 17, 2010 Assim tb. é interessante.. com botão de "Buscar" dentro do get @ 15,15 get oGet var cVar picture "@!" bitmap "c:\buscar.bmp" ; action( BuscaCliente( cVar ) ) ; size 120,15 of oDlg pixel oGet:lAdjustBtn := .t. Procedure BuscaCliente( cVar ) Return .t. id=code>id=code>Vc. mesmo cria seus botões a gosto.. Retorne avisando se a dica funcionouid=red> Luiz Arruda Corumbá - MS ico.corumba@gmai.com Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted August 17, 2010 Author Report Share Posted August 17, 2010 Poxa ICO, que legal heim!!! Vou utilizar também! VLW Povo Porreta! ________________________ Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP C# / xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 9.03 + xDev v0.65 "Não Desenvolvo Software, crio arte Binaria...." Quote Link to comment Share on other sites More sharing options...
marcio1361303176 Posted August 17, 2010 Report Share Posted August 17, 2010 Com Resource seria assim REDEFINE GET oT_NOME_VENDEDOR var T_NOME_VENDEDOR ID 4006 OF oDlg_CD_VALE_VENDEDOR PICTURE "@!" bitmap "B_BRING" ACTION(LOCALIZA_VENDEDOR(),PREENCHE_NOME_VENDEDOR(),ATUALIZA_BROWSE_VALES_VENDEDOR() ) id=code>id=code>Agora uma pergunta ele tem com ser com Teclas de Atalho, tipo o que ocorre com a VGET por exemolo. Nos nossos sistemas a TECLA (F7) Sempre abre o Browse de pesquisa. Em uma dialog de pedidos por exemplo tem vários campos de pesquisa. Tipo (VENDEDOR, CLIENTE, TABELA DE PRECOS, PRODUTOS, FORMAS DE PAGAMENTO, ETC...) Precisariamos que o (F7) Fosse ativo apenas nos campo onde ele estivesse focado. Exemplo. Se Estiver com o Foco no código do vendedor de pressionar F7, abre o browse de pesquisa de Vendedores Se apos o usuario clicar no Código de Cliente de Pressionar F7, abre o browse de pesquisa de clientes. E assim por diante.. Com a VGET é assim E possivel que o (F7) REDEFINE vGET oT_CODI_VENDEDOR var T_CODI_VENDEDOR ID 4015 OF oDlg_DIGITA_PEDIDO PICTURE "999999" FileAction "B_BRING" ACTION( LOCALIZA_VENDEDOR(),PREENCHE_NOME_VENDEDOR() ) TECLA VK_F7 VALID(PREENCHE_NOME_VENDEDOR() ) COLOR CLR_PRETO,CLR_LWHITE Update REDEFINE vGET oT_CODI_FORMAS var T_CODI_FORMAS ID 4052 OF oDlg_DIGITA_PEDIDO PICTURE "999999" FONT O_F_GET FileAction "B_BRING" ACTION(LOCALIZA_FORMAS(),PREENCHE_NOME_FORMAS(),BUSCAR_FORMA_PGTO_VENDA() ) TECLA VK_F7 VALID( PREENCHE_NOME_FORMAS(),BUSCAR_FORMA_PGTO_VENDA() ) COLOR CLR_PRETO,CLR_LWHITE Update id=code>id=code>Notem que é na mesma DIALOG. informaisvrb@gmail.com FWHX 2.6+ SQLLIB + xDev + rpv + MYSQL 5.0 / fwh808+sqllib(atual) Msn.: mastermarvrb@msn.com Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted August 17, 2010 Report Share Posted August 17, 2010 citação:Agora uma pergunta ele tem com ser com Teclas de Atalho, tipo o que ocorre com a VGET Notem que é na mesma DIALOG. id=quote>id=quote>Ola Marcio tem como sim, uso assim no meu sistema. oDlg:bKeyDown:={ |nKey| IF( nKey = VK_F5,tecla_f2(oDlg,@mCampos,mObejto),) } id=code>id=code> static function tecla_f5(oDlg,mCampos,mObjeto) oCtl :=oDlg:oCtlFocus() do case case (oCtl:hWnd = oGet1:hWnd ) // tabela de preço case (oCtl:hWnd = oGet3:hWnd ) // pesquisa vendedores case (oCtl:hWnd = oGet5:hWnd ) // pesquisa clientes case (oCtl:hWnd = oGet11:hWnd ) // pesquisa produtos case (oCtl:hWnd = oGet13:hWnd ) // pesquisa forma de pagto case (oCtl:hWnd = oGet14:hWnd ) // pesquisa tipo de documento endcase return .t. id=code>id=code>a unica coisa que não consegui //assim funciona case (oCtl:hWnd = oGet1:hWnd ) //assim não funciona case (oCtl:hWnd = mObejto[1]:hWnd ) Abraços Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 Quote Link to comment Share on other sites More sharing options...
marcio1361303176 Posted August 18, 2010 Report Share Posted August 18, 2010 obrigado amigo Luiz Fernando por responder... Se mas esta eu teria que Ficar Tratando cada get, com a vget é mais simples de se fazer.. Mas a sua ajuda é valida e funcional tambem. Se alguem tiver algo a mais para compartilhar, ficarei grato... informaisvrb@gmail.com FWHX 2.6+ SQLLIB + xDev + rpv + MYSQL 5.0 / fwh808+sqllib(atual) Msn.: mastermarvrb@msn.com Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.