Árvore de páginas

Versões comparadas

Chave

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

...

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 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 treeview.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.
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.

...

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
utilizar o c-codigo-node e h-node, que é a chave do node, e fazer os seus procedimentos necessários para atualizar frames e
utiliza
utilizar o node selecionado
.

02. EXEMPLO DE UTILIZAÇÃO

.


Card documentos
InformacaoVocê tem que criar a pi-ClickTreeview quando utilizar o ut-treeview.i, senão ocorrerá erro durante a execução do seu programa.
TituloIMPORTANTE!


Card documentos
InformacaoNão se esqueça de eliminare o treeview da memória no final do seu programa!!!t-treeview.i, senão ocorrerá erro durante a execução do seu programa.
TituloIMPORTANTE!


04. EXEMPLO DE UTILIZAÇÃO

Estamos disponibilizando um exemplo de um programa com thin-templates que utiliza esse componente de treeview.

View file
namewmainten.w
height250


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:
Bloco de código
DEFINE VAR h-treeview      AS HANDLE         NO-UNDO.	// handle do treeview
DEFINE VAR h-Node          AS CHARACTER      NO-UNDO. 	// handle de um nó
DEFINE VAR MESSAGE c-codigo-node   VIEW_AS CHARACTER      NO-UNDO.	// 
DEFINE VAR cImage          AS CHARACTER      NO-UNDO.	// 
DEFINE VAR cFgColor        AS CHARACTER      NO-UNDO.	// 
DEFINE VAR cFont           AS CHARACTER      NO-UNDO.	// 
DEFINE VAR cExpClp         AS CHARACTER      NO-UNDO.	// 
  • Temos também as seguintes procedures:
Bloco de código
// Criação de um Nó
PROCEDURE pi-create-node :
   DEFINE INPUT PARAMETER cChave  AS CHARACTER NO-UNDO.		// chave a ser utilizada para o nó
   DEFINE INPUT PARAMETER cParent AS CHARACTER NO-UNDO.		// chave do pai
   DEFINE INPUT PARAMETER cText   AS CHARACTER NO-UNDO.		// texto a ser apresentado no nó
   DEFINE INPUT PARAMETER cImage  AS CHARACTER NO-UNDO.		// imagem a ser apresentada
   DEFINE INPUT PARAMETER cParam  AS CHARACTER NO-UNDO.		// parâmetros do nó
END PROCEDURE.

// Atualização de um nó
PROCEDURE pi-update-node :
   DEFINE INPUT PARAMETER cChave       AS CHARACTER NO-UNDO.	// chave do nó a ser alterado
   DEFINE INPUT PARAMETER cFieldName   AS CHARACTER NO-UNDO.	// nome do campo
   DEFINE INPUT PARAMETER cFiledValues AS CHARACTER NO-UNDO.	// 
   DEFINE INPUT PARAMETER cParam       AS CHARACTER NO-UNDO.	// parâmetros do nó
END PROCEDURE.

// Evento de click em um determinado nó
// sempre que for selecionado sobre um nó ele fará:
//     - preencher as variaveis c-codigo-node e h-node com a chave do nó
//     - executar a procedure pi-ClickTreeView
PROCEDURE tvNodeEvent :
   DEFINE INPUT  PARAMETER pcEvent   AS CHARACTER  NO-UNDO.		// evento que ocorreu sobre o nó
   DEFINE INPUT  PARAMETER pcnodeKey AS CHARACTER  NO-UNDO.		// chave do nó
END PROCEDURE.

// Atualiza o treeview
PROCEDURE pi-atualizaTreeview :
ALERT-BOX.
END PROCEDURE.

...



05.

...

TELA

...

Outras Ações / Ações relacionadas

...

DO TREEVIEW

Image AddedImage Added

04. TELA XXXXX

Principais Campos e Parâmetros

...

Card documentos
InformacaoUse esse box para destacar informações relevantes e/ou de destaque.
TituloIMPORTANTE!

...

Image AddedImage Added