Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Olá Noelson

Acabei fuçando com suas dicas e achei que a estratégia deve ver

1) cria o intervalo de banco de dados pra colocar o Autofiltro
2) obtem o decritor do Autofiltro deste intervalo

oDescritorFiltro = oIntervaloDB.getFilterDescriptor()

3) preenche o descritor com os criterios de campo
4) recoloca os critério no descritor no filtro

oDescritorFiltro.setFilterFields(oCamposFiltro())

5) manda ver na tela (refersh)
oIntervaloDB.refresh()

Obrigado

Olivier

Em 22 de junho de 2011 20:57, Noelson Duarte <noelsond@gmail.com> escreveu:

Olá Olivier,

Você precisa criar o descritor do filtro, usando o método
createFilterDescriptor( bFlag ).

Esse bFlag pode ser True ou False. Se True o descritor será criado do zero,
para que você mesmo defina as condições. Se False, ele herda as condições
do
filtro ativo.

Você pode, por exemplo, definir um filtro avançado manualmente e, então,
criar o seu descritor a partir destes critérios com uma chamada:

oDescritor = oIntervalo.createFilterDescriptor( False )

Além da propriedade AutoFilter, temos ainda:
UseFilterCriteriaSource -> define se usa um intervalo como critério
FilterCriteriaSource -> estrutura com o endereço do intervalo com os
critérios

Segue um trecho de código que cria e aplica um filtro num intervalo:

' -----------------------------------------------------------------
 Dim oCamposFiltro(0) As New com.sun.star.sheet.TableFilterField
  '
  oDoc = ThisComponent
  oPlan = oDoc.getSheets().getByIndex(0)
  oExt = oPlan.getCellRangeByPosition(0,1,4,6)
  ' define a estrutura TableFilterField
  oCamposFiltro(0).Field = 4
  oCamposFiltro(0).IsNumeric = True
  oCamposFiltro(0).Operator =
com.sun.star.sheet.FilterOperator.GREATER_EQUAL
  oCamposFiltro(0).NumericValue = 300
  ' cria o descritor do filtro vazio (True)
  oDescFiltro = oExt.createFilterDescriptor (True)
  ' define o campo de filtro
  oDescFiltro.setFilterFields (oCamposFiltro())
  ' aplica o filtro
  oExt.filter (oDescFiltro)
' ------------------------------------

Abraço.

--
Noelson


Em 22 de junho de 2011 16:34, Olivier Hallot <
olivier.hallot@documentfoundation.org> escreveu:

Olá
Tenho a necessidade de inseir um auto filtro lá com um dos valores
pre-selecionados.

O Autofiltro é criado em cima de um intervalo de banco de dados

ThisComponent.DataBaseRanges.addNewByName("nome123",oEnderecoIntervalo)
oIntervalo = ThisComponent.DataBaseRanges.getByName("nome123")

a partir dai eu só posso ativar o autofiltro

oIntervalo.AutoFilter = True

Mas eu não vejo como inserir um critério pre-selecionado

Alguma dica?

Grato
--
Olivier Hallot
Founder and Steering Commitee Member
The Document Foundation

--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
 mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
 usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens:
http://listarchives.libreoffice.org/pt-br/usuarios/



--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
 mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
 usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens:
http://listarchives.libreoffice.org/pt-br/usuarios/




-- 
Olivier Hallot
Founder and Steering Commitee Member
The Document Foundation

-- 
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.