Luiz Fernando Posted December 28, 2010 Report Share Posted December 28, 2010 COlegas tenho uma tela de entrada de mercadorias aonde digito os itens direto na xbrowse, mais estou com o seguinte problema, se o usuario ter um enter no codigo da mercadoria,abre uma outra browse para consulta de produtos, o problema é que apos isto a browse de edição de entrada perde o focus,VEJAM O CÓDIGO ABAIXO procedure valida_entr(oGet,oBrw,aCCampos,nDados) local lRet := .t.,nReg:=CompraTemp->(RECNO()) if acCampos="CODIPRODU" CompraTemp->(DBGOTO(nReg)) xSetfocus(oBrw) endif id=code>id=code>fazendo assim a browse ganha o focus novamente mais sempre volta pro primeiro item, e não no item que o usuario esta digitando... caso alguém tiver alguima dica... Obrigado 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...
Luiz Fernando Posted December 28, 2010 Author Report Share Posted December 28, 2010 COlegas tenho uma tela de entrada de mercadorias aonde digito os itens direto na xbrowse, mais estou com o seguinte problema, se o usuario ter um enter no codigo da mercadoria,abre uma outra browse para consulta de produtos, o problema é que apos isto a browse de edição de entrada perde o focus,VEJAM O CÓDIGO ABAIXO procedure valida_entr(oGet,oBrw,aCCampos,nDados) local lRet := .t.,nReg:=CompraTemp->(RECNO()) if acCampos="CODIPRODU" CompraTemp->(DBGOTO(nReg)) xSetfocus(oBrw) endif id=code>id=code>fazendo assim a browse ganha o focus novamente mais sempre volta pro primeiro item, e não no item que o usuario esta digitando... caso alguém tiver alguima dica... Obrigado 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...
Luiz Arruda (ICO) Posted December 28, 2010 Report Share Posted December 28, 2010 Um Seek cCodigo, ou Seek cProduto não resolve ??? Abraços.. Retorne avisando se a dica funcionouid=red> Luiz Arruda Corumbá - MS ico.corumba@gmail.com Quote Link to comment Share on other sites More sharing options...
AMBROSIO Posted December 28, 2010 Report Share Posted December 28, 2010 Luiz, permita minha humilde tentativa em ajudar, mas pelo que entendi vc esta inserindo itens numa browse (itens do pedido, certo!) Vc esta gravando na tabela no momento da digitação ou somente qdo completar as outras colunas(campos)? Dependendo da resposta o seu GO RECNO nao funcionara(acredito eu) pois ainda nao tens um registro salvo. Aew vc teria que trabalhar diretamente com o Objeto Browse LINHA, ou seja tentar voltar na mesma linha... Deve ser por isso q esta sempre indo pra primeira linha, inicio de arquivo... Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL Editado por - ambrosio on 28/12/2010 17:25:58 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted December 28, 2010 Author Report Share Posted December 28, 2010 citação:Um Seek cCodigo, ou Seek cProduto não resolve ??? id=quote>id=quote>Vlw ICO, já tinha tentado com um LOCATE e com o DBGOTO(número do registro) sem exito, embora este DBF temporario não posso ter o indice por codigo de produto pois senão nao fica na seguencia que o usuario esta digitando , criei um mesmo assim so para testar e o resultado é o mesmo volta pro primeiro item... agora se ao cair na browse eu desabilitar todos os outro objeto como gets e buttons com o comando when dai o trem funciona certinho, só que preciso achar outra solução pois isto iria me implicar em outras coisas... 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...
Luiz Fernando Posted December 28, 2010 Author Report Share Posted December 28, 2010 citação:Luiz, permita minha humilde tentativa em ajudar, mas pelo que entendi vc esta inserindo itens numa browse (itens do pedido, certo!) Vc esta gravando na tabela no momento da digitação ou somente qdo completar as outras colunas(campos)? Dependendo da resposta o seu GO RECNO nao funcionara(acredito eu) pois ainda nao tens um registro salvo. Aew vc teria que trabalhar diretamente com o Objeto Browse LINHA, ou seja tentar voltar na mesma linha... Deve ser por isso q esta sempre indo pra primeira linha, inicio de arquivo... Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL Editado por - ambrosio on 28/12/2010 17:25:58 id=quote>id=quote>Colega obrigado pela reposta, mais o registro é criado em branco, e depois vou gravando campo a campo, de uma olhada na imagem abaixo, vc vai ver que o item 4 ja esta criado em branco... 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 Editado por - empresoft on 28/12/2010 17:52:05 Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted December 28, 2010 Report Share Posted December 28, 2010 Luiz voce não teria que fazer o um goto() no browse e não no banco, não uso, mas a classe deve ter um oBrw:Goto(registro) que estava posicionado. Abraços, Geraldo B. Silva FWH 2.6 Junho/2005, xHarbour 0.99.50 (Simplex), Bcc55, Pelles, xDev, MyMake, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted December 28, 2010 Report Share Posted December 28, 2010 Veja se ajuda. Alias->(DBGoTop()) ; oBrw:Refresh() ; oBrw:SetFocus() oBrw:nColSel:=xx oBrw:nRowSel:=yy // este nunca testei Se puder mostre como esta fazendo a edição e a validação no xBrowse(), grato. "Não seja um clicador, torne-se um programador." Eu estou tentando. Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted December 28, 2010 Author Report Share Posted December 28, 2010 Geraldo e Sergio obrigado pelas respostas, mais de forma alguma estava dando certo sempre voltava no primeiro registro... substitui xSetFocus(oBrw) para oBrw:SetFocus() com isto resolvi este problema e um outro problema em outro modulo do sistema, fica ai a dica de não usar o xSetFocus com o objeto da xbrowse... Sergio segue a forma que faço edição e validação // aqui minha primeira coluna editavel, // RecCount() == 0 aqui verifico se o banco de dados esta vazio caso sim é criado um registro // em branco oCol:= oBrw:AddCol() oCol:bStrData := { || compratemp->codigo } oCol:bEditValue := { || compratemp->codigo } oCol:cHeader := "Código" oCol:cToolTip := {"Codigo do Produto","Ajuda","",nRGB(255,255,255),nRGB(58,116,241) } oCol:nWidth := 60 oCol:nEditType = EDIT_GET oCol:bEditValid := { | oGet,oCol | valida_entr(oGet,oCol,oBrw,"CODIGO",nDados) } oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, ( compratemp->(DBAPPEND()),oBrw:Refresh() ),) } // aqui a ultima coluna editavel, neste caso ele verifica se é final de arquivo caso sim // apos o enter ele já cria outro registro em branco oCol:= oBrw:AddCol() oCol:bStrData := { || compratemp->imposto } oCol:bEditValue := { || compratemp->imposto } oCol:nEditType = EDIT_GET oCol:bEditWhen := {|| !empty(compratemp->codigo) } oCol:cEditPicture := "@!" oCol:cHeader := "" oCol:cToolTip := {"Informar S para detalhar imposto...","Ajuda","",nRGB(255,255,255),nRGB(58,116,241) } oCol:nWidth := 10 oCol:nHeadStrAlign := AL_RIGHT oCol:nDataStrAlign := AL_RIGHT oCol:nEditType := EDIT_GET oCol:bEditValid := { | oGet,oCol | valida_entr(oGet,oCol,oBrw,"IMPOSTO",nDados) } oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, DBAPPEND(),), If( nKey == VK_RETURN, ( compratemp->imposto := xVal, if(!empty(compratemp->codigo),compratemp->(dbskip()),),if(compratemp->(eof()),(DbAppend(),oBrw:Refresh()),) ),) } // aqui a funcao de validacao procedure valida_entr(oGet,oBrwCol,oBrw,aCCampos,nDados) msgalert(oGet:Value) // esta variavel tem o valor que foi digitado na celula if acCampos="CODIGO" // minhas rotinas elseif acCampos="CUSTO" // minhas rotinas . . . endif id=code>id=code>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 Editado por - empresoft on 28/12/2010 21:09:18 Editado por - empresoft on 28/12/2010 21:11:27 Quote Link to comment Share on other sites More sharing options...
Theotokos Posted December 29, 2010 Report Share Posted December 29, 2010 Como faz isto: (eu uso xbrowse, dá para fazer?)id=red> Em Cristo! Rone - Itajubá(MG)id=red> xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 7.12 + xDevStudio A pessoa que pensa que sabe alguma coisa, ainda não tem a sabedoria que precisa. (1 Cor 8, 2)id=blue> Editado por - theotokos on 29/12/2010 11:33:54 Editado por - theotokos on 29/12/2010 11:34:32 Editado por - theotokos on 29/12/2010 11:35:23 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted December 29, 2010 Author Report Share Posted December 29, 2010 citação:Como faz isto: (eu uso xbrowse, dá para fazer?)id=red> http://www.4shared.com/photo/wgGVR-pK/tela1.JPG id=quote>id=quote>Ola Rone, infelismente na sua versão do fivewin não da certo, mais caso vc fazer um upgrade, de uma olhada no samples no arquivo testhead.prg é coisa super simples... 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...
Theotokos Posted December 29, 2010 Report Share Posted December 29, 2010 OBRIGADO!!!! citação: citação:Como faz isto: (eu uso xbrowse, dá para fazer?)id=red> http://www.4shared.com/photo/wgGVR-pK/tela1.JPG id=quote>id=quote>Ola Rone, infelismente na sua versão do fivewin não da certo, mais caso vc fazer um upgrade, de uma olhada no samples no arquivo testhead.prg é coisa super simples... 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 id=quote>id=quote>Em Cristo! Rone - Itajubá(MG)id=red>xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 7.12 + xDevStudio A pessoa que pensa que sabe alguma coisa, ainda não tem a sabedoria que precisa. (1 Cor 8, 2)id=blue> Quote Link to comment Share on other sites More sharing options...
aferra Posted December 29, 2010 Report Share Posted December 29, 2010 Fala amigão, tudo blz... veja se resolve o seu problema. procedure valida_entr(oGet,oBrw,aCCampos,nDados) local lRet := .t.,nReg:=CompraTemp->(RECNO()) if acCampos="CODIPRODU" CompraTemp->(DBGOTO(nReg)) oGet:VarPut( CompraTemp->cod ) oGet:bValid := NILid=red> endif RETURN(.T.) Contando que esta procedure é a que está no valid da coluna no browse, mas qualquer coisa me chame no msn. Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX FW9.07+xHb121+PellesC+CDX "Uma imaginação bem canalizada é fonte de grandes proezas"id=red> Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted December 29, 2010 Author Report Share Posted December 29, 2010 citação:Fala amigão, tudo blz... veja se resolve o seu problema. procedure valida_entr(oGet,oBrw,aCCampos,nDados) local lRet := .t.,nReg:=CompraTemp->(RECNO()) if acCampos="CODIPRODU" CompraTemp->(DBGOTO(nReg)) oGet:VarPut( CompraTemp->cod ) oGet:bValid := NILid=red>endif RETURN(.T.) Contando que esta procedure é a que está no valid da coluna no browse, mas qualquer coisa me chame no msn. Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX FW9.07+xHb121+PellesC+CDX "Uma imaginação bem canalizada é fonte de grandes proezas"id=red> id=quote>id=quote>E ai Alessandro blz, colega na verdade das varias forma que tinha de eu voltar para mesma linha nenhuma dava certo, após deixar de usar a função xSetFocus(oBrw) e usar oBrw:Setfocus() funcionou certinho... Obrigado 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...
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.