Luiz Fernando Posted September 22, 2009 Report Share Posted September 22, 2009 Pessoal ve se alguém poder me ajudar, queria fazer o seguinte, conforme estou numa celula na forma de edicao , se o usuario digitar uma letra e não numero ,ele ira para uma rotina externa, tentei de varias forma aqui mais não estou conseguindo. oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( DBAPPEND(),oBrw_pro:Refresh() ),), ; if( nkey == VK_F2, minhafuncao(),) , ; If( nKey == VK_RETURN, etiqueta->codigo := xVal,) } id=code>id=code>a parte que esta em negrito era tentativa que estava tentando, tipo qdo estou editando se eu apertar o F2 não acontece nada Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 22, 2009 Author Report Share Posted September 22, 2009 Pessoal ve se alguém poder me ajudar, queria fazer o seguinte, conforme estou numa celula na forma de edicao , se o usuario digitar uma letra e não numero ,ele ira para uma rotina externa, tentei de varias forma aqui mais não estou conseguindo. oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( DBAPPEND(),oBrw_pro:Refresh() ),), ; if( nkey == VK_F2, minhafuncao(),) , ; If( nKey == VK_RETURN, etiqueta->codigo := xVal,) } id=code>id=code>a parte que esta em negrito era tentativa que estava tentando, tipo qdo estou editando se eu apertar o F2 não acontece nada Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 Quote Link to comment Share on other sites More sharing options...
sambomb Posted September 23, 2009 Report Share Posted September 23, 2009 If (Upper(Asc(nKey)) $ "AÃÄÃÀBCÇDEÉÈËFGHIÃÃŒÃJKLMNOÓÒÖÕPQRSTUÚÙÜVWXYZ", Alert("Letra"),Alert("Não é letra)) Obs.: Editado para incluir caracteres acentuados MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 Editado por - sambomb on 24/09/2009 10:19:15 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 23, 2009 Author Report Share Posted September 23, 2009 citação:If (Upper(Asc(nKey)) $ "ABCDEFGHIJKLMNOPQRSTUVWXYZ", Alert("Letra"),Alert("Não é letra)) MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 id=quote>id=quote>Samir obrigado pela resposta, mais o problema que no seu exemplo como no meu acima com o F2 ele só executa depois de eu dar enter, precisava durante a edição, pois apos o enter eu posso usar o oCol:bEditValid, mais dai nao da certo para minhas finalidade aqui... 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 Quote Link to comment Share on other sites More sharing options...
sambomb Posted September 24, 2009 Report Share Posted September 24, 2009 Então eu entendi errado... citação:...se o usuario digitar uma letra e não numero ,ele ira para uma rotina externa... id=quote>id=quote>Tentei resolver essa parte para você, tente explicar melhor... MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 24, 2009 Author Report Share Posted September 24, 2009 citação:Então eu entendi errado... citação:...se o usuario digitar uma letra e não numero ,ele ira para uma rotina externa... id=quote>id=quote>Tentei resolver essa parte para você, tente explicar melhor... MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 id=quote>id=quote>Ok amigo deixa eu explicar melhor então. tenho uma browse que abro ele com um arquivo dbf temporario, para a finalidade do usuario incluir algumas mercadorias e depois fazer a impressão de etiquetas, entro nesta browse já na forma de edição com um dbappend() para abrir um registro novo em branco e preencher este registro com a a mercadoria informada, a primeira coluna é aonde o usuario digita o código da mercardoria, se no lugar de numero ele digitar uma letra, automaticamente eu iria abrir uma outra browse com pesquisa sensitiva...tipo para ficar prático mesmo e rápido o processo... Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 Quote Link to comment Share on other sites More sharing options...
sambomb Posted September 24, 2009 Report Share Posted September 24, 2009 No caso não te serviria para verificar se foi adicionada uma letra ou número a função que eu passei? O que você NÃO está conseguindo fazer? MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 24, 2009 Author Report Share Posted September 24, 2009 citação:No caso não te serviria para verificar se foi adicionada uma letra ou número a função que eu passei? O que você NÃO está conseguindo fazer? MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 id=quote>id=quote>Samir da forma que vc mencionou da o seguinte erro: PARAMETROS ASC se tirar o ASC passa a da o erro PARAMETROS UPPER mais tudo bem qdo a isto é so substrituir o nKey por xVal ou oGet:Value, mais estes erro sempre ocorre apos eu apertar o enter e não durante a digitação, o que estou tentando explicar que mesmo que acho a formula certa para ser colocado na sua linha , isto só ira acontecer apos o enter, e eu preciso durante a digitacao sem dar enter, pois como já dize se for apos o enter uso oCol:bEditValid... Mesmo assim agradeco sua atenção 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 Quote Link to comment Share on other sites More sharing options...
sambomb Posted September 25, 2009 Report Share Posted September 25, 2009 citação: citação:No caso não te serviria para verificar se foi adicionada uma letra ou número a função que eu passei? O que você NÃO está conseguindo fazer? MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 id=quote>id=quote>Samir da forma que vc mencionou da o seguinte erro: PARAMETROS ASC se tirar o ASC passa a da o erro PARAMETROS UPPER mais tudo bem qdo a isto é so substrituir o nKey por xVal ou oGet:Value, mais estes erro sempre ocorre apos eu apertar o enter e não durante a digitação, o que estou tentando explicar que mesmo que acho a formula certa para ser colocado na sua linha , isto só ira acontecer apos o enter, e eu preciso durante a digitacao sem dar enter, pois como já dize se for apos o enter uso oCol:bEditValid... Mesmo assim agradeco sua atenção 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 id=quote>id=quote>Utilize o bKeyDown ao invés do bOnPost edit e chame a função assim: oBrw:bKeyDown := {|nKey| If(VerificaLetra(nKey), Alert("É letra"), Alert("Não é letra")) } Function VerificaLetra(nKey) Local lLetra := .T. Try If Upper(Asc(nKey)) $ "AÃÄÃÀBCÇDEÉÈËFGHIÃÃŒÃJKLMNOÓÒÖÕPQRSTUÚÙÜVWXYZ" lLetra := .T. else lLetra := .F. end catch lLetra := .F. end Return lLetra id=code>id=code>MSN: samirabreu@hotmail.comid=black> Skype: Samirid=red>Abreuid=black> xHarbour 1.1.0 + FwXh 8.02 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.