Á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. Procedures do Include ut-4gltreeview.i (facilitador)
  3. Procedures e Funções do Componente
  4. Exemplo de Utilização
  5. Dicas de Conversão do OCX para o utl4gltreeview
  6. Telas do TreeView
  7. Documentação Complementar do Componente


01. VISÃO GERAL
Âncora
visao_geral
visao_geral

...

  • Performático, onde testamos mais de 5000 nós e não houve perda de performance.
  • Temos um include ut-4gltreeview.i que possui algumas procedures "facilitadoras" para manipulação do TreeView.
  • Feito totalmente em progress.
  • Possuímos o código fonte, onde podemos customizá-lo de acordo com as nossas necessidades.


02. PROCEDURES DO INCLUDE ut-4gltreeview.i (facilitador)
Âncora
include_4gltreeview
include_4gltreeview

Foi disponibilizado o include ut-4gltreeview.i para facilitar a utilização do TreeView, que possui as seguintes variáveis e procedures:

...

Card documentos
InformacaoNão se esqueça de eliminar o TreeView da memória no final do seu programa !!!
TituloIMPORTANTE!


03. PROCEDURES E FUNÇÕES DO COMPONENTE
Âncora
procedures_funcoes
procedures_funcoes

O componente 4glTreeView possui um código altamente documentado que pode ser utilizado.

...

* = Procedures chamadas pelo facilitador


04. EXEMPLO DE UTILIZAÇÃO
Âncora
exemplo
exemplo

Segue abaixo um programa exemplo, construído em thin-templates, que utiliza o componente 4glTreeView, utilizando grande parte das procedures e funções existentes nestas documentação.

...

       $/EMS2/Fontes_Doc/Sustentacao/V11/V11/progress/src/wmp/wm0510.w


05. DICAS DE CONVERSÃO DO OCX PARA O 4GLTREEVIEW
Âncora
dicas
dicas

Segue abaixo uma tabela com algumas dicas para facilitar o processo de conversão dos programas que atualmente utilizar o TreeView OCX.

ProcessoOCX4glTreeView
Definição de Variáveis

define variable chTreeView    as com-handle                     no-undo.

DEFINE VARIABLE CtrlFrame AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE chCtrlFrame AS COMPONENT-HANDLE NO-UNDO.


// Definições Treeview
{utp/ut-4gltreeview.i}
Carregar o Treeview PROCEDURE control_load :RUN carregaTreeView.
Posicionar a Treeview na telaCREATE CONTROL-FRAME CtrlFrame ASSIGN
       FRAME           = FRAME fpage0:HANDLE
       ROW             = 2.46
       COLUMN          = 1
       HEIGHT          = 13.5
       WIDTH           = 31
       HIDDEN          = no
       SENSITIVE       = yes.

RUN repositionObject IN h-4gltreeview (2.46, 1.00).    

RUN resizeObject IN h-4gltreeview ( 13.5, 31.00).

Menu Popup

define variable pop-menu       as widget-handle                 no-undo.

create menu pop-menu
    assign popup-only = true
    title = "POPUP":u.

       CtrlFrame:popup-menu     = pop-menu

PROCEDURE pi-CtrlPopupTreeview :

....

END PROCEDURE.

Jogar o foco para o TreeViewAPPLY "Entry":U TO CtrlFrame.
Apagar os nós do TreeViewChTreeView:Nodes:Clear().RUN emptyTree IN h-4gltreeview.
Expandir o nós e filhos        do i-cont = 1 to chTreeView:Nodes:Count:
           assign chTreeView:Nodes(i-cont):Expanded = l-expande.
        end.
        RUN expandBranch IN h-4gltreeview (c-codigo-node).
        RUN pi-atualizaTreeview.  
Seleciontar um nó

    assign chTreeView:SelectedItem = chTreeView:Nodes(1).

    if not error-status:error then
        run CtrlFrame.TreeView.NodeClick (input chTreeView:Nodes:Item("i" + string(1))).


Verificar se existem nós    IF chTreeView:Nodes:COUNT > 0 THEN DO:
        RUN piExcel IN THIS-PROCEDURE.
    END.
    IF DYNAMIC-FUNCTION('hasNodes' IN h-4gltreeview) THEN DO:
        RUN piExcel IN THIS-PROCEDURE.
    END.
    APPLY "ENTRY":U TO btExcel IN FRAME fPage0.
Verificar se o nó está expandido           assign exp-con:label = if chTreeView:SelectedItem:Expanded = false then cExpande
Pegar a chave do nó selecionado                   c-tag-tree = chTreeView:SelectedItem:key().      assign rRow       = to-rowid(c-codigo-node).
Monitorar o evento de click

PROCEDURE CtrlFrame.TreeView.NodeClick :

...

END PROCEDURE.

PROCEDURE pi-ClickTreeView :

....

END PROCEDURE.

Incluir um nó        chTreeView:Nodes:Add (,, "i" + string(i-cont), string(ttDados.cod-oficial) + " - " + ttDados.desc-dimensao, i-img) .     RUN pi-create-node (cNodeId, cNodeIdPai, string(ttDados.cod-oficial) + " - " + ttDados.desc-dimensao, cImage, "") NO-ERROR.
Gravar e recuperar a TAG

            assign chTreeView:Nodes:Item ("i" + string(i-cont)):Tag = string(rowid(ttDados)) + ",1," + string(ttDados.r-rowid).

        assign rRowid    = to-rowid(entry(1,chTreeView:SelectedItem:Tag)).

    DYNAMIC-FUNCTION('setNodeTag' IN h-4gltreeview, cNodeId, ttDados.p-image).

      assign rRow = to-rowid(entry(1,DYNAMIC-FUNCTION('getNodeTag' IN h-4gltreeview, c-codigo-node))).

Criar um relacionamento entre a

TreeView e a TempTable de Negócio

            assign rRow       = to-rowid(entry(1,chTreeView:SelectedItem:Tag))      assign rRow       = to-rowid(c-codigo-node).
Definir a imagem do nó


06. TELAS DO TREEVIEW
Âncora
telas
telas



07. DOCUMENTAÇÃO COMPLEMENTAR DO COMPONENTE
Âncora
documentacao
documentacao

View file
namepure4glTv.pdf
height250
View file
namepureabltv.zip
height250

...