Theotokos Posted August 30, 2014 Report Share Posted August 30, 2014 Boa Noite!!!! Em clipper eu usava este comando abaixo para mostrar em um browse apenas os registro que desejava (Como um Filtro): oObject := tbrowsedb(08,03,22,76) * oObject:While := {|| .T. } oObject:For := {|| Empty(VA_DATPAGO) .And. Empty(VA_VALPAGO) } NO FIVEWIN COM XBROWSE TEM COMO FAZER ISTO? Quote Link to comment Share on other sites More sharing options...
aferra Posted September 1, 2014 Report Share Posted September 1, 2014 Acredito que seja desta forma. oObject:bWhile := {|| .T. } oObject:bFor := {|| Empty(VA_DATPAGO) .And. Empty(VA_VALPAGO) } Quote Link to comment Share on other sites More sharing options...
Theotokos Posted September 1, 2014 Author Report Share Posted September 1, 2014 Acredito que seja desta forma. oObject:bWhile := {|| .T. } oObject:bFor := {|| Empty(VA_DATPAGO) .And. Empty(VA_VALPAGO) } Olá Alessandro! o comando aceitou, ou seja, não deu erro! Mas não filtrou os dados que deveriam mostrar, mostrando todos do mesmo jeito... Quote Link to comment Share on other sites More sharing options...
aferra Posted September 1, 2014 Report Share Posted September 1, 2014 Bem, como vc está mudando, creio que terá que estudar a xBrowse para pode utilizar da sua maneira, o jeito mais fácil será pegar a xBrowse.prg na pasta ..\FWH\source em conjunto com o xBrowse.ch da pasta ..\FWH\include e fazer testes, entender como ele apresenta os dados para não mudar muito o antigo com o novo. Quote Link to comment Share on other sites More sharing options...
crisvam Posted September 2, 2014 Report Share Posted September 2, 2014 Boa Noite!!!! Em clipper eu usava este comando abaixo para mostrar em um browse apenas os registro que desejava (Como um Filtro): oObject := tbrowsedb(08,03,22,76) * oObject:While := {|| .T. } oObject:For := {|| Empty(VA_DATPAGO) .And. Empty(VA_VALPAGO) } NO FIVEWIN COM XBROWSE TEM COMO FAZER ISTO? Use o OrdScope(), esta função faz um bom trabalho. Veja um exemplo para datas inicial e final Alias->(OrdScope(TOPSCOPE,Dtos(dIni_Mes)) ) Alias->(OrdScope(BOTTOMSCOPE,Dtos(dFim_Mes)) ), no caso de datas sua indexação fica melhor usando a funçao Dtos(), daí é só utilizar o xBrowse que os dados serao apresentados conforme o OrdScope(). Aqui utilizei ono exemplo datas, mas pode ser qualquer campo/variével indexados Quote Link to comment Share on other sites More sharing options...
Theotokos Posted September 3, 2014 Author Report Share Posted September 3, 2014 Use o OrdScope(), esta função faz um bom trabalho. Veja um exemplo para datas inicial e final Alias->(OrdScope(TOPSCOPE,Dtos(dIni_Mes)) ) Alias->(OrdScope(BOTTOMSCOPE,Dtos(dFim_Mes)) ), no caso de datas sua indexação fica melhor usando a funçao Dtos(), daí é só utilizar o xBrowse que os dados serao apresentados conforme o OrdScope(). Aqui utilizei ono exemplo datas, mas pode ser qualquer campo/variével indexados Vlw! Mas desta forma precisa que esteja indexado por Data por exemplo... Eu Preciso que esteja em ordem de Número do Pedido... Quote Link to comment Share on other sites More sharing options...
crisvam Posted September 4, 2014 Report Share Posted September 4, 2014 Vlw! Mas desta forma precisa que esteja indexado por Data por exemplo... Eu Preciso que esteja em ordem de Número do Pedido... Vc pode fazer por qualquer variável, por ex.: Ped_Ini e Ped_Fim, então vc informa o pedido inicial e final para o OrdScope, assim: Alias->(OrdScope(TOPSCOPE,Ped_Ini) ) Alias->(OrdScope(BOTTOMSCOPE,Ped_Fim) ) Quote Link to comment Share on other sites More sharing options...
Theotokos Posted September 5, 2014 Author Report Share Posted September 5, 2014 Vc pode fazer por qualquer variável, por ex.: Ped_Ini e Ped_Fim, então vc informa o pedido inicial e final para o OrdScope, assim: Alias->(OrdScope(TOPSCOPE,Ped_Ini) ) Alias->(OrdScope(BOTTOMSCOPE,Ped_Fim) ) Então não precisa estar indexado pelo campo em que vou pesquisar? Vou testar isto, ai vai facilitar a minha vida. rsrsrsrs Vlw!!! Obgdão!!! Quote Link to comment Share on other sites More sharing options...
Theotokos Posted September 5, 2014 Author Report Share Posted September 5, 2014 Vc pode fazer por qualquer variável, por ex.: Ped_Ini e Ped_Fim, então vc informa o pedido inicial e final para o OrdScope, assim: Alias->(OrdScope(TOPSCOPE,Ped_Ini) ) Alias->(OrdScope(BOTTOMSCOPE,Ped_Fim) ) Meu amigo, testei mas não dá não.... Tem mesmo que utilizar o indice correspondente ao campo em que desejo filtrar... Function BcDdCliente(cP,cC,oB) Local cPro1 := cP:cText() Local cPro2 := cP:cText() * OrdScope( 0, NIL ) OrdScope( 1, NIL ) * Do Case Case AllTrim(cC) = "Nome Fantasia/Nome Cliente" dbSetOrder( 2 ) // define a ordem de filtro ordScope( 0, RTrim(cPro1) ) // TOP (De...) ordScope( 1, RTrim(cPro2) ) // BOTTOM (..Até) dbGoTop() Case AllTrim(cC) = "Razão Social/Apelido" dbSetOrder( 5 ) // define a ordem de filtro ordScope( 0, RTrim(cPro1) ) // TOP (De...) ordScope( 1, RTrim(cPro2) ) // BOTTOM (..Até) dbGoTop() Case AllTrim(cC) = "CNPJ/CPF" dbSetOrder( 3 ) // define a ordem de filtro ordScope( 0, RTrim(cPro1) ) // TOP (De...) ordScope( 1, RTrim(cPro2) ) // BOTTOM (..Até) dbGoTop() EndCase oBrw:Refresh() Return(.T.) Quote Link to comment Share on other sites More sharing options...
crisvam Posted September 5, 2014 Report Share Posted September 5, 2014 Meu amigo, testei mas não dá não.... Tem mesmo que utilizar o indice correspondente ao campo em que desejo filtrar... Function BcDdCliente(cP,cC,oB) Local cPro1 := cP:cText() Local cPro2 := cP:cText() * OrdScope( 0, NIL ) OrdScope( 1, NIL ) * Do Case Case AllTrim(cC) = "Nome Fantasia/Nome Cliente" dbSetOrder( 2 ) // define a ordem de filtro ordScope( 0, RTrim(cPro1) ) // TOP (De...) ordScope( 1, RTrim(cPro2) ) // BOTTOM (..Até) dbGoTop() Case AllTrim(cC) = "Razão Social/Apelido" dbSetOrder( 5 ) // define a ordem de filtro ordScope( 0, RTrim(cPro1) ) // TOP (De...) ordScope( 1, RTrim(cPro2) ) // BOTTOM (..Até) dbGoTop() Case AllTrim(cC) = "CNPJ/CPF" dbSetOrder( 3 ) // define a ordem de filtro ordScope( 0, RTrim(cPro1) ) // TOP (De...) ordScope( 1, RTrim(cPro2) ) // BOTTOM (..Até) dbGoTop() EndCase oBrw:Refresh() Return(.T.) TeoThokos, Veja, o campo que vc quer pesquisar tem que está indexado, o que a função OrdScope faz é filtrar os registros para o intervalo que quer mostrar no XBRowse. Outro detalhe, chame a função Alias->(DbGotop() ) apos a função OrdScope(). Quote Link to comment Share on other sites More sharing options...
crisvam Posted September 5, 2014 Report Share Posted September 5, 2014 TeoThokos, Veja, o campo que vc quer pesquisar tem que está indexado, o que a função OrdScope faz é filtrar os registros para o intervalo que quer mostrar no XBRowse. Outro detalhe, chame a função Alias->(DbGotop() ) apos a função OrdScope(). Vc está usando a função Rtrim() para indexar os campos?, se não retire-a quando chamar o campo. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted September 5, 2014 Author Report Share Posted September 5, 2014 Vc está usando a função Rtrim() para indexar os campos?, se não retire-a quando chamar o campo. Vlw w muito Obrigado.... Com OrdScope funciona perfeitamente, utilizo em outras situações, é que nesta especifica eu preciso que esteja indexado por PEDIDO, e filtrar os dados por (Data Inicial e Data Final) e um outra opção que filtra os dados por (Nome Cliente) mas tudo isto permanecendo a ordem (indice) por PEDIDO... Por isso estava tentando a opção do inicio do topico: oObject := tbrowsedb(08,03,22,76) * oObject:While := {|| .T. } oObject:For := {|| Empty(VA_DATPAGO) .And. Empty(VA_VALPAGO) } MAS TAMBEM NAO FILTROU NADA.... 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.