Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
  3. Procedures do Componente
  4. Procedures do include ut-treeview.i
  5.  Tela XXX
    1. Outras Ações / Ações relacionadas
  6. Tela XXX
    1. Principais Campos e Parâmetros
  7. Tabelas utilizadas

...

ProcedureParâmetrosDescriçãoExemplo/Utilização
addNode

ParâmetrosTipoDescrição
IpcKeCharChave do node
IpcKeParCharPai do node
IpcLabelCharLabel do node
IpcIcoCharIcone do node
IpcOptnCharParâmetros do node

O pcOptn é uma lista de parâmetros que sao separados por chr(1).

Valores válidos para o pcOtn:

ParâmetroDescrição
expendedInicia o node expendido
collapsedInicia o node fechado (não expandido) - opção default
selectedSeleciona o node ate o
proximo
próximo refresh
refreshRealiza o refresh do treeview
AutoSort=yes/noLiga ou desliga a ordenação do treeview
font=nDefine uma fonte para o node
fgcolor=nDefine uma cor de frente para o node
bgcolor=nDefine uma cor de fundo para o node
tooltip=xxxDefine um help para o node

Adiciona um node no treeview.

Se o node for adicionado a um

node pai, ele será o último filho.

DO ON ERROR UNDO, LEAVE:

      RUN addNode IN h-treeview ("n1","","node 1","","") NO-ERROR.

      RUN addNode IN h-treeview ("n2","","node 2","","expanded") NO-ERROR.

      RUN addNode IN h-treeview ("n21","n2","node 21","","") NO-ERROR.

      RUN addNode IN h-treeview ("n22","n2","node 22","image/treeview/book02.bmp","expanded").

      RUN addNode IN h-treeview("n221","n22","node 221","image/treeview/book02.bmp","").

      RUN addNode IN h-treeview ("n222","n22","node 222","image/treeview/book02.bmp","").

      RUN addNode IN h-treeview ("n3","","node 3","image/treeview/present1.bmp","expanded").

      RUN addNode IN h-treeview ("n31","n3","node 31","image/treeview/$.bmp","").

      RUN addNode IN h-treeview ("n4","","node 4","image/treeview/smile56.bmp","").

END.

applyEntryPassar o parâmetro vazio ("")Faz um entry no treeviewRUN applyEntry IN h-treeview (INPUT "").
deleteNode

ParâmetroTipoDescrição
IpcKeCharChave do node
IpcOptnCharParâmetros do node
Elimina um node de uma chave especificada.RUN deleteNode IN h-treeview (c-codigo-node, "refresh").
destroyObject
Elimina o treeview da memória.

IF VALID-HANDLE(h-treeview) THEN DO:

       RUN destroyObject IN h-treeview.

       DELETE PROCEDURE h-treeview NO-ERROR.

END.

emptyTree
Zera o conteúdo da treeVviewtreeview.RUN emptyTree IN h-treeview NO-ERROR.
enableObject
Habilita o treeviewRUN enableObject IN h-treeview NO-ERROR.
expandBranch

ParâmetroTipoDescrição
IpcKeCharChave do node
Expande o node e todos os filhos deleRUN expandBranch IN h-treeview (c-codigo-node) NO-ERROR.
getFrameTreeview

ParâmetroTipoDescrição
OhFrameHandleHandle da frame do treeview
Retorna o handle da frame do treeviewRUN getFrameTreeview IN h-treeview (OUTPUT hFrameTV).
getNodeDetails

ParâmetroTipoDescrição
IpcKeCharChave do node
Retorna detalhes de um node do treeview

RUN getNodeDetails IN h-treeview (c-codigo-node, OUTPUT hNdBf).

MESSAGE
    "id:" hNdBf:BUFFER-FIELD("id"):BUFFER-VALUE SKIP
    "label:" hNdBf:BUFFER-FIELD("lab"):BUFFER-VALUE SKIP
    "ico:" hNdBf:BUFFER-FIELD("ico"):BUFFER-VALUE SKIP
    "level:" hNdBf:BUFFER-FIELD("level"):BUFFER-VALUE SKIP
    "param:" hNdBf:BUFFER-FIELD("par"):BUFFER-VALUE SKIP
    "prev-sibling:" hNdBf:BUFFER-FIELD("pre"):BUFFER-VALUE SKIP
    "next-sibling:" hNdBf:BUFFER-FIELD("nex"):BUFFER-VALUE SKIP
    "expanded:" hNdBf:BUFFER-FIELD("expanded"):BUFFER-VALUE SKIP
    "optn:" hNdBf:BUFFER-FIELD("optn"):BUFFER-VALUE
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

DELETE OBJECT hNdBf.

initializeObject
Inicializa o treeviewRUN initializeObject IN h-treeview.
moveNode

ParâmetroTipoDescrição
IpcKeCharChave do node a mover
IpcToKeCharMover para o node
IpcModeCharModos possíveis: after, before, parent
IpcOptnCharOpção possível: refresh
Move um node origem como filho de outro node destino. Caso o pcMode = "parent" e o node destino seja em branco, ele jogara o node origem como o último node do nível 0.RUN moveNode IN h-treeview (c-codigo-node, c-codigo-node-pai, "after", "refresh") NO-ERROR.

...

   DEFINE INPUT  PARAMETER pcKePar AS CHARACTER  NO-UNDO.

   DEFINE INPUT  PARAMETER pcLab   AS CHARACTER  NO-UNDO.

   DEFINE INPUT  PARAMETER pcIco   AS CHARACTER  NO-UNDO.

updateNode

ParâmetroTipoDescrição
IpcKeCharChave do node a mover
IpcFieldNamesCharList de campos, exemplo: "lab,ico"
IpcFieldValuesCharLista de valores separados por chr(1)
IpcOptnCharParâmetros do node

Para remover um item do pcOptn existente, coloque "!" na frente da opção, conforme o exemplo abaixo:

pcOptn="!font"

A opção acima removerá o fonte definido para o node.

Atualiza o label, icone ou a lista de opcoes de um determinado node.

RUN updateNode IN h-treeview (c-codigo-node, "", "", cFgColor) NO-ERROR.


03. PROCEDURES DO INCLUDE ut-treeview.i

Foi disponibilizado o include ut-treeview-i para facilitar a utilização do TreeView, onde possui das seguintes variaveis e procedures:

VariávelTipoDescrição
h-treeviewHandleContem o handle da instância do treeview
h-NodeCharContem o pcKe do node selecionado
c-codigo-nodeCharContem o pcKe do node selecionado
cImageCharContem a imagem que será apresentada no node
cFgColorCharContem a cor de frente do node
cFontCharContem o código da fonte utilizada no node
cExpClpCharExpande ou fecha o node
ProcedureParâmetrosDescriçãoExemplo/Utilização
pi-atualizaTreeview
Faz uma atualização/refresh do treeview.RUN pi-atualizaTreeview.
pi-create-node

ParâmetrosTipoDescrição
IcChaveCharChave do node
IcParentCharPai do node
IcTextCharLabel do node
IcImageCharIcone do node
IpcOptncParamCharParâmetros do node

Adiciona um node no treeview.

Esta procedure chama a addNode.

DO ON ERROR UNDO, LEAVE:

      RUN pi-create-node ("n1","","node 1","","") NO-ERROR.

      RUN pi-create-node ("n2","","node 2","","expanded") NO-ERROR.

END.

pi-update-node

ParâmetroTipoDescrição
IcChaveCharChave do node a mover
IcFieldNamesCharList de campos, exemplo: "lab,ico"
IcFieldValuesCharLista de valores separados por chr(1)
IcParamCharParâmetros do node

Atualiza o label, icone ou a lista de opcoes de um determinado node.

Esta procedure chama a updateNode.

RUN pi-update-node (c-codigo-node, "", "", cFgColor) NO-ERROR.

tvNodeEvent

ParâmetroTipoDescrição
IpcEventCharEvento que aconteceu
IpcNodeKeyCharChave do node

Procedure auxiliar que é assinada no treeview, onde todos os eventos que ocorrerem no treeview chamarão esta procedure.

Voce não precisa chamar esta procedure diretamente, pois quem irá chamá-la é o treeview.

Nesta procedure serão alimentados as variáveis c-codigo-node e h-node com o pcNodeKey, que é a chave do node selecionado.


pi-ClickTreeview
Esta é uma procedure que é chamada pelo tvNodeEvent e deve ser criada no seu programa, pois neste ponto que você deverá obter o c-codigo-node e h-node, que é a chave do node, e fazer os seus procedimentos necessários para atualizar frames e utiliza o node selecionado

...

.



02. EXEMPLO DE UTILIZAÇÃO

Bloco de código
// iniciando o treeview
{utp/ut-treeview.i}

// no afterDisplayFields voce inicializa o componente treeview
PROCEDURE afterDisplayFields :
   IF NOT VALID-HANDLE(h-treeview) THEN DO:
      RUN utp/ut-treeview.w PERSISTENT SET h-treeview.
   
      RUN initializeObject IN h-treeview.
   
      SUBSCRIBE TO "tvNodeEvent" IN h-treeview.
   
      RUN repositionObject IN h-treeview ( 2.65 , 1.30 ) NO-ERROR.
      RUN resizeObject IN h-treeview ( 14.35 , 28.00 ) NO-ERROR.
   END.
END PROCEDURE.

// esta procedure sera executada toda vez que ocorrer um evento de click em um determinado nó
PROCEDURE pi-ClickTreeView :
END PROCEDURE.



04. INCLUDE DE EVENTOS

...


  • Definição de variáveis utilizadas para utilização do TreeView, que são:

...