gilbrodrigues Posted January 3, 2011 Report Share Posted January 3, 2011 Quando exibo um LISTBOX com um set filter ele está duplicando o registro. Ex. Caso o resultado de um set filter seja apenas 1 registro ele coloca 3 linhas repetidas. Por que sera: --------------------------------------------- FUNCTION MostFilt() TIPOIMOV->(dbSetOrder(3)) // descricao TIPOIMOV->(dbSeek(optpimovel)) aliaslaudo := TIPOIMOV->BASE SET FILTER TO // LIMPANDO O FILTRO CORRENTE otela1:update() oLbx9:hide() SELECT (aliaslaudo) // SELECIONANDO A AREA (BASE) (aliaslaudo)->(dbGotop()) IF EMPTY(xcodLaudo) SET FILTER TO (aliaslaudo)->BAIRRO == opBairro ELSE SET FILTER TO ALLTRIM( (aliaslaudo)->LAUDO ) == ALLTRIM(xcodLaudo) ENDIF &(aliaslaudo)->(dbGoTop()) //oLbx9:UpsTable() oLbx9:refresh() oLbx9:Gotop() otela1:update() otela1:refresh() oLbx9:SetFocus() oLbx9:show() RETURN .T. --------------------------- Obrigado para aqueles que puderem ajudar. Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 3, 2011 Author Report Share Posted January 3, 2011 Quando exibo um LISTBOX com um set filter ele está duplicando o registro. Ex. Caso o resultado de um set filter seja apenas 1 registro ele coloca 3 linhas repetidas. Por que sera: --------------------------------------------- FUNCTION MostFilt() TIPOIMOV->(dbSetOrder(3)) // descricao TIPOIMOV->(dbSeek(optpimovel)) aliaslaudo := TIPOIMOV->BASE SET FILTER TO // LIMPANDO O FILTRO CORRENTE otela1:update() oLbx9:hide() SELECT (aliaslaudo) // SELECIONANDO A AREA (BASE) (aliaslaudo)->(dbGotop()) IF EMPTY(xcodLaudo) SET FILTER TO (aliaslaudo)->BAIRRO == opBairro ELSE SET FILTER TO ALLTRIM( (aliaslaudo)->LAUDO ) == ALLTRIM(xcodLaudo) ENDIF &(aliaslaudo)->(dbGoTop()) //oLbx9:UpsTable() oLbx9:refresh() oLbx9:Gotop() otela1:update() otela1:refresh() oLbx9:SetFocus() oLbx9:show() RETURN .T. --------------------------- Obrigado para aqueles que puderem ajudar. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted January 3, 2011 Report Share Posted January 3, 2011 citação:Quando exibo um LISTBOX com um set filter ele está duplicando o registro. Ex. Caso o resultado de um set filter seja apenas 1 registro ele coloca 3 linhas repetidas. Por que sera: --------------------------------------------- FUNCTION MostFilt() TIPOIMOV->(dbSetOrder(3)) // descricao TIPOIMOV->(dbSeek(optpimovel)) aliaslaudo := TIPOIMOV->BASE SET FILTER TO // LIMPANDO O FILTRO CORRENTE otela1:update() oLbx9:hide() SELECT (aliaslaudo) // SELECIONANDO A AREA (BASE) (aliaslaudo)->(dbGotop()) IF EMPTY(xcodLaudo) SET FILTER TO (aliaslaudo)->BAIRRO == opBairro ELSE SET FILTER TO ALLTRIM( (aliaslaudo)->LAUDO ) == ALLTRIM(xcodLaudo) ENDIF &(aliaslaudo)->(dbGoTop()) //oLbx9:UpsTable() oLbx9:refresh(.t.)id=red> oLbx9:Gotop() otela1:update() otela1:refresh() oLbx9:SetFocus() oLbx9:show() RETURN .T. --------------------------- Obrigado para aqueles que puderem ajudar. 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...
gilbrodrigues Posted January 3, 2011 Author Report Share Posted January 3, 2011 Ola Theotokos, fiz o teste colocando true no parametro como vc indicou mas continua a mesma coisa. Na verdade ele 'toma a forma do conteúdo anterior', se o resultado anterior contiver 3 linhas o próximo resultado mesmo com 1 registro ele exibirá com 3 linhas (repetidas) Editado por - gilbrodrigues on 03/01/2011 13:53:49 Quote Link to comment Share on other sites More sharing options...
Theotokos Posted January 3, 2011 Report Share Posted January 3, 2011 tente então colocar antes do refresh() oLbx:Skip( ) NT: Qual tipo de browse vc esta usando (xBrowse, ListBox, TcBrowse,...) citação:Ola Theotokos, fiz o teste colocando true no parametro como vc indicou mas continua a mesma coisa. Na verdade ele 'toma a forma do conteúdo anterior', se o resultado anterior contiver 3 linhas o próximo resultado mesmo com 1 registro ele exibirá com 3 linhas (repetidas) Editado por - gilbrodrigues on 03/01/2011 13:53:49 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...
kapiaba Posted January 3, 2011 Report Share Posted January 3, 2011 TEM REGISTROS DELETADOS NESTE BANCO DE DADOS? João Santos - São Paulo. kmt_karinha@pop.com.br joao@pleno.com.br Fone: (11) 3106-2832 / 8243-5632 - TIM FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted January 3, 2011 Report Share Posted January 3, 2011 Tente usar Set Index to depois do Select e não antes... pode ser que 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...
gilbrodrigues Posted January 3, 2011 Author Report Share Posted January 3, 2011 Uso um CDX como indice. Porem o teste de usar SET INDEX TO nao funcionou. Estou quase desistindo e fazer uma combo. Nesse caso terei que fazer com que ele envie um parametro para alteração do registro. No Listbox ficava mas facil para o usuario. Estou tb vendo a possibilidade de ser o PELLES C Quote Link to comment Share on other sites More sharing options...
Theotokos Posted January 3, 2011 Report Share Posted January 3, 2011 tente inveter esta parte otela1:update() otela1:refresh() oLbx9:SetFocus() oLbx9:show() RETURN .T. coloca assim: oLbx9:SetFocus() oLbx9:show() otela1:update() otela1:refresh() RETURN .T. 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> Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 4, 2011 Author Report Share Posted January 4, 2011 A solucao que tenho a fazer é gerar um arquivo temporario, o problema que se trata de varios arquivos com estruturas diferentes. Obrigado a todos e Feliz 2011 Editado por - gilbrodrigues on 04/01/2011 10:04:13 Quote Link to comment Share on other sites More sharing options...
Luisão Posted January 4, 2011 Report Share Posted January 4, 2011 citação:A solucao que tenho a fazer é gerar um arquivo temporario, o problema que se trata de varios arquivos com estruturas diferentes. Obrigado a todos e Feliz 2009 id=quote>id=quote>FELIZ 2009id=red> pra você também... Sobre os Listboxes da vida, sei que quando tem registro "deleted" no registro, a barra de rolagem considera eles. Já tentou fazer um PACK no arquivo ? E eu não sou muito fã de SET ORDER não, pode até ser um pouco mais trabalhoso, mas não acha melhor trabalhar com um array ou arquivo temporário não ? Luis Fernando Jr. (Luisão) Leme/SP -- FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY juninho.luisao@gmail.com juninho_luisao@hotmail.com Skype luis.fernando.jr Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 4, 2011 Author Report Share Posted January 4, 2011 desculpem é feliz 2011 e nao 2009 ! Ele nao esta considerando os registros duplicados (ja usei PACK) o problema é que ele duplica o registro. Se o resultado deveria ter um registro ele pega este registro e mostra 3 vezes. Existe como eu mostrar a tela do programa ? Editado por - gilbrodrigues on 04/01/2011 10:09:11 Editado por - gilbrodrigues on 04/01/2011 10:19:37 Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted January 4, 2011 Report Share Posted January 4, 2011 Após o filtro de um Seu_Alias->(Browse()) Reporte qual browse esta usando, wBrowse,TWBrowse,xBrowse,etc... Idem para versao do FWH e XH "Não seja um clicador, torne-se um programador." Eu estou tentando. Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 4, 2011 Author Report Share Posted January 4, 2011 S.A.Oliveira Eu uso o Listbox direto: REDEFINE LISTBOX oLbx9 ; FIELDS (aliaslaudo)->LAUDO,; (aliaslaudo)->LOGRA,; (aliaslaudo)->ENDER,; (aliaslaudo)->NUM,; (aliaslaudo)->COMPL,; TRANSFORM((aliaslaudo)->VALOR, mask1 ) ; ALIAS (aliaslaudo); ID 4007 OF otela1; HEADERS "Cod.Laudo","Logr","Rua","Num","Complemento", " Valor (R$)" ; ON DBLCLICK EditaLaudo(.F.) ; FIELDSIZES 100,40,200,80,50,95 UPDATE oLbx9:bkeydown:={|nkey| if(nkey == 13 , EditaLaudo(.F.) , nil )} oLbx9:aJustify := {.F.,.F.,.F.,.F.,.F.,.F.} // .T. DIREITA Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 4, 2011 Author Report Share Posted January 4, 2011 Não vejo solução para esse problema em tentar ajustar o listbox. Fiz em outra ocasião, um arquivo temporário e nao deu esse problema. O jeito e fazer o mesmo. o unico problema e dar um seek toda vez que ele quiser visualizar o registro. Obrigado a todos Quote Link to comment Share on other sites More sharing options...
AMBROSIO Posted January 4, 2011 Report Share Posted January 4, 2011 Boa tarde!!! Filtro: BAIRRO ou LAUDO A ordem " dbSetOrder(3) " eh a mesma independentemente do filtro? Nao vi BAIRRO no seu LISTBOX. Experimente colocar um indice para cada FILTRO (campo do filtro) Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL Editado por - ambrosio on 04/01/2011 13:32:15 Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 4, 2011 Author Report Share Posted January 4, 2011 AMBROSIO. Bairro é uma combobox. O filtro é por bairro, laudo e tipo de imovel (sao os tres em conjunto). Se o codigo do laudo estiver em branco (vazio) virão todos os laudos daquele delterminado bairro (selecionado) o bairro nao precisa aparecer na listbox por que já e filtrado na combo, nem o tipo de imóvel. O listbox só exibe o resultado Editado por - gilbrodrigues on 04/01/2011 14:00:00 Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted January 4, 2011 Report Share Posted January 4, 2011 REQUEST ORDKEYNO REQUEST ORDKEYCOUNT REQUEST ORDKEYGOTO Voce adicionou quando setou seu RDD de arquivos. Estas usando NTX ou CDX. Indique pra gente qual versão do FW,XH,BCC que esta usando. "Não seja um clicador, torne-se um programador." Eu estou tentando. Quote Link to comment Share on other sites More sharing options...
AMBROSIO Posted January 4, 2011 Report Share Posted January 4, 2011 Entendi... Em qual filtro aparece duplicado, no primeiro LAUDO VAZIO ou no segundo? Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 4, 2011 Author Report Share Posted January 4, 2011 citação:Entendi... Em qual filtro aparece duplicado, no primeiro LAUDO VAZIO ou no segundo? Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL id=quote>id=quote>Aparece duplicado quando deveria ter apenas 1 registro que satisfaça a condição. Ao invés dele exibir uma linha de resultado ele mostra três. Quote Link to comment Share on other sites More sharing options...
AMBROSIO Posted January 4, 2011 Report Share Posted January 4, 2011 Certo, mas minha pergunta foi em qual dos filtros? Se codigo do laudo for VAZIO entra no primeiro filtro, ou seja aparecerão todos os laudos daquele bairro. Caso contrario ele filtrara apenas o laudo selecionado/preenchido, mas outra pergunta aparece PARA QUAL BAIRRO? No segundo filtro nao deveria ter BAIRRO tbm? Ou o laudo eh unico! Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL Editado por - ambrosio on 04/01/2011 15:04:47 Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 5, 2011 Author Report Share Posted January 5, 2011 citação:Certo, mas minha pergunta foi em qual dos filtros? Se codigo do laudo for VAZIO entra no primeiro filtro, ou seja aparecerão todos os laudos daquele bairro. Caso contrario ele filtrara apenas o laudo selecionado/preenchido, mas outra pergunta aparece PARA QUAL BAIRRO? No segundo filtro nao deveria ter BAIRRO tbm? Ou o laudo eh unico! Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL Editado por - ambrosio on 04/01/2011 15:04:47 id=quote>id=quote>------------------------------------------------------- Se o codigo do laudo for deixado em branco, deverá aparecer uma lista de imoveis para o bairro selecionado na combo(por default caso nao seja escolhido o primeiro bairro da lista será escolhido - note que aparece em ordem alfabética). Se o codigo for preenchido virá apenas aquele laudo. Cada imóvel tem o seu codigo (ele é unico para cada imóvel) não há duplicidades entre codigos, mesmo em bairros e tipos diferentes (ex. KEY1209-001 - significa: KEY - nome da empresa controladora (imobiliaria) 1 se é venda ou locação 2 residencial, comercial, industrial, etc. 09 (os dois ultimos caracteres antes do hifem) o tipo de imovel: apartamento, conjugado, sitio, sala, galpao, terreno, predio inteiro, andar corrido, estabelecimentos comerciais (passagem de ponto: padaria, salao, etc. - geralmente é precedido de 9x), - xx quantidade de imoveis para esta categoria (vide acima), 001,002,003,ATÉ 999 por enquanto, muito difÃcil ter mais de 100 imoveis para uma categoria sem ser vendido ou alugado, ao ser dado baixa, o mesmo sera movido para outro banco, embora o espaço não fique vazio a sequencia continua (por que fiz um BD que controla a numeração para cada caso e está OK), se passar de 999 é só ir aumentando o tamanho na estrutura (DBF) Editado por - gilbrodrigues on 05/01/2011 11:27:16 Quote Link to comment Share on other sites More sharing options...
eevaldo Posted January 5, 2011 Report Share Posted January 5, 2011 citação:Não vejo solução para esse problema em tentar ajustar o listbox. Fiz em outra ocasião, um arquivo temporário e nao deu esse problema. O jeito e fazer o mesmo. o unico problema e dar um seek toda vez que ele quiser visualizar o registro. Obrigado a todos id=quote>id=quote>Ola, isso ja aconteceu comigo e dava esse problema apenas quando fintrava um registro so. A combinação de listbos e setfilter nao e uma boa ideia pq alem desses problemas estranhos quando voce navega no listbozx com set filter ele fica travando para pular para a proxima linha, e o arquivo nem precisa ser muito grande. Te garanto que dando o seek e alimentando uma matriz ou arquivo temporario e muito mais rapido e vc nao tera problemas na navegacao no browse. 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...
quicussi Posted January 6, 2011 Report Share Posted January 6, 2011 Mesmo estando afastado, eu sugiro que você utilize o SET SCOPE TO (claro que com o indice relacionado a .dbf) para o banco de dados em precisa selecionar os registros. Espero ter ajudado. Quote Link to comment Share on other sites More sharing options...
gilbrodrigues Posted January 14, 2011 Author Report Share Posted January 14, 2011 Por falta de tempo voltei a este topico (Por isso que nao respondi a mais tempo). Evaldo, o problema ao alimentar um listbox com array é como pegar seu resultado ? Assim: Ex. obrw[4] ? Tentei fazer isto mas nao esta dando certo, e nao acho as sintaxes das propriedades do listbox em lugar nenhum. 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.