Saltar para o conteúdo principal
Versão: 20 R7 BETA

WP Get elements

WP Get elements ( objAlvo {; tipoElemento} ) -> Resultado

ParâmetroTipoDescrição
objAlvoObjectIntervalo ou referência de elemento ou documento 4D Write Pro
tipoElementoIntegerTipo desejado de elemento a recuperar
ResultadoCollectionColeção que contém os elementos de referência

Descrição

O comando WP Get elements devolve uma coleção de objetos que contém parágrafos, imagens, tabelas ou referências de filas.

No parâmetro objIntervalo, pode passar:

  • um intervalo, ou
  • uma referência de elemento (tabela / fila / parágrafo / corpo / cabeçalho / rodapé/seção/subseção / caixa de texto), ou
  • um documento 4D Write Pro

Nota: se passar uma subseção em objAlvo, o comando retorna os elementos na seção pai.

Se passar um intervalo digitado ou uma referência, o comando devolverá uma coleção que só contém elementos de tipo correspondente (a menos que especifique um tipo com o parâmetro tipoElemento, ver abaixo). Do contrário, o comando devolve uma coleção que contenha todos os elementos disponíveis em obIntervalo.

Opcionalmente, pode passar o parâmetro tipoElemento para especificar os tipos de elementos a devolver na coleção. Os tipos abaixo estão disponíveis:

ConstanteValorComentário
wk type default0Tipo de faixa (valor de wk type)
wk type image2Imagem ancorada (valor para wk type)
wk type image anchored200Referência de imagem ancorada para objetos de documento
wk type image inline100Referência de imagem Inline (inserida no texto) para objetos de documentos
wk type paragraph1Range tipo parágrafo (valor para wk type)
wk type table4Referência de tabela (valor para wk type)
wk type table row5Referência linha Tabela (valor para wk type)
wk type text box300

Nota:

  • Se passar o seletor wk type default, o comando devolve uma coleção não filtrada.
  • Se passar o seletor wk type paragraph, wk type image ou wk type table, a coleção devolvida conterá só elementos do tipo dado, mesmo se for diferente do tipo especificado no parâmetro tipoElemento.
  • Se um intervalo passado em targetObj conter um elemento que não esteja completamente contido dentro do intervalo, o elemento completo se incluirá nos resultados. Por exemplo, se o intervalo inclui parte de uma tabela (mas não de toda a tabela), se devolve a referência para todo elemento da tabela, entretanto, só são incluídas as referências de célula (parágrafo) dentro do intervalo.
  • Se passar wk type text box no parâmetro tipoElemento, targetObj pode conter um documento 4D Write Pro. Um erro é devolvido se passar qualquer coisa que não seja um objeto documento em targetObj neste caso.
Como elementos são ordenados

Os elementos na coleção retornada são ordenados de forma diferente dependendo do conteúdo de objAlvo:

  • Se passar uma range (faixa de seleção) ou uma referência de elemento em objAlvo (parágrafo, tabela, corpo, cabeçalho, rodapé...), os elementos na coleção são ordenados na ordem do fluxo do documento (na mesma ordem em que aparecem no documento)
  • Se passar um documento 4D Write Pro em objAlvo, como são devolvidos todas as áreas do documento, os elementos na coleção são ordenados por seu ID (exceto as imagens ancoradas quando usar o parâmetro wk type image anchored: nesse caso, são ordenadados pela ordem z). Os elementos online de tipo tipoElemento presentes nas caixas de texto (se houver) são devolvidas ao final da coleção.

Se quiser alternar a cor de fundo para parágrafos na parte de corpo de um documento, precisa passar o elemento de corpo em objAlvo, e não o documento, para ter certeza que a ordem de elementos na coleção corresponda à ordem de parágrafo de documento.

Exemplo 1

Se quiser devolver uma coleção de todos os parágrafos em um documento:

 var $docElements : Collection
 $docElements:=WP Get elements($myDoc;wk type paragraph)
  //devolve uma coleção que contém só elementos de parágrafo

Exemplo 2

Se quiser alternar a alinhação e a cor dos parágrafos em um documento:

 var $col : Collection
 var $obj : Object
 var $body : Object
 var $i;$n : Integer
 $col:=New collection
 $body:=WP Get body(myDoc)
 $col:=WP Get elements($body;wk type paragraph)
 $i:=0
 $n:=$col.length
 For($i;0;$n-1)
    $obj:=$col[$i]
    WP RESET ATTRIBUTES($obj)
    WP SET ATTRIBUTES($obj;wk font bold;wk false)
    WP SET ATTRIBUTES($obj;wk font italic;wk false)
    If($i%2=0)
       WP SET ATTRIBUTES($obj;wk text align;wk left)
       WP SET ATTRIBUTES($obj;wk font bold;wk true)
       WP SET ATTRIBUTES($obj;wk text color;"#804040")
       WP SET ATTRIBUTES($obj;wk margin right;"5cm")
       WP SET ATTRIBUTES($obj;wk margin left;"1cm")
    Else
       WP SET ATTRIBUTES($obj;wk text align;wk right)
       WP SET ATTRIBUTES($obj;wk font italic;wk true)
       WP SET ATTRIBUTES($obj;wk text color;"#404020")
       WP SET ATTRIBUTES($obj;wk margin left;"5cm")
       WP SET ATTRIBUTES($obj;wk margin right;"1cm")
    End if
 End for

Ver também

WP Get breaks
WP Get element by ID
WP Table range