Páginas filhas
  • DBTree

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: binary and image files updated

...

Portuguese

Pagetitle
DBTree
DBTree

Classe: DBTree

Cria um objeto do tipo árvore de itens.


TSrvObject -> TControl -> TTree -> DBTree


New

New

Método construtor da classe.


DBTree(): New ( [ nTop], [ nLeft], [ nBottom], [ nRight], [ oWnd], [ bChange], [ bRClick], [ lCargo], [ lDisable], [ oFont] ) --> oObjeto


NomeTipoDescriçãoObrigatórioReferência
nTopNuméricoIndica a coordenada vertical superior do objeto.
nLeftNuméricoIndica a coordenada horizontal à esquerda do objeto.
nBottomNuméricoIndica a coordenada vertical inferior do objeto.
nRightNuméricoIndica a coordenada horizontal à direita do objeto.
oWndObjetoIndica a janela ou controle visual onde o objeto será criado.
bChangeBloco de códigoIndica o bloco de código que será executado quando o estado ou conteúdo do objeto é modificado pela ação sobre o controle visual.
bRClickBloco de códigoIndica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto.
lCargoLógicoIndica se, verdadeiro (.T.), os elementos da Tree utilizarão a propriedade cCargo, do método AddItem(), que armazena uma string identificadora, para cada elemento e item da árvore; caso contrário, falso (.F.).
lDisableLógicoIndica se, verdadeiro (.T.), cria o objeto da Tree desabilitado, ou seja, não permitindo foco e navegação no mesmo até que seja habilitado; caso contrário, falso (.F.).
oFontObjetoIndica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.
    oObjeto()
  • Retorna o objeto criado.



oTree := DbTree():New(0,0,160,260,oDlg,,,.T.)

AddItem

Adiciona um item ou subitem na árvore.


DBTree(): AddItem ( [ cPrompt], [ cCargo], [ cRes1], [ cRes2], [ cFile1], [ cFile2], [ nTipo] ) -->


NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a descrição do novo item.
cCargoCaracterIndica a chave de identificação do item na árvore.
cRes1CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado.
cRes2CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto.
cFile1CaracterIndica o nome da imagem, no diretório, que será apresentada quando o item estiver fechado.
cFile2CaracterIndica o nome da imagem, no diretório, que será apresentada quando o item estiver aberto.
nTipoCaracterIndica o nível que o item ou subitem será adicionado, sendo: 1=No mesmo nível ou 2=Abaixo.

 

 

 


// Localiza o nível abaixo do qual // estes subitens deverão ser criados // -----------------------------------if oTree:TreeSeek("006")   oTree:AddItem("Subnível 01","007", "FOLDER6",,,,2)	  oTree:AddItem("Subnível 02","008", "FOLDER6",,,,2)	endif

AddTree

Adiciona um item, com nível 1, na árvore.


DBTree(): AddTree ( [ cPrompt], [ lOpened], [ cRes1], [ cRes2], [ cFile1], [ cFile2], [ cCargo] ) -->


NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a descrição do novo item.
lOpenedLógicoIndica que, verdadeiro (.T.), o item será iniciado aberto; caso contrário, falso (.F.).
cRes1CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado.
cRes2CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto.
cFile1CaracterIndica o nome da imagem, no diretório, que será apresentada quando o item estiver fechado.
cFile2CaracterIndica o nome da imagem, no diretório, que será apresentada quando o item estiver aberto.
cCargoCaracterIndica a chave de identificação do item na árvore.


 


oTree:AddTree("Nível 02","010", "FOLDER6")

AddTreeItem

Adiciona um item, com nível 1, na árvore.


DBTree(): AddTreeItem ( [ cPrompt], [ cRes], [ cFile], [ cCargo] ) -->


NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a descrição do novo item.
cResCaracterIndica o nome da imagem no repositório.
cFileCaracterIndica o caminho para o arquivo de imagem.
cCargoCaracterIndica a chave de identificação do elemento na árvore.



 

 

 


oTree:AddTreeItem("Novo Item","FOLDER7",,"006")

BeginUpdate

Prepara a árvore para receber os itens.


DBTree(): BeginUpdate ( ) -->


Este método é muito importante na criação do objeto para que os ajustes de criação e performance sejam realizados corretamente.

 

 


oTree:BeginUpdate()

ChangeBmp

Altera as imagens definidas para a árvore.


DBTree(): ChangeBmp ( [ cBmp1], [ cBmp2], [ cFile1], [ cFile2], [ cCargo] ) -->


NomeTipoDescriçãoObrigatórioReferência
cBmp1CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado.
cBmp2CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto.
cFile1CaracterIndica o nome da imagem, no diretório, que será apresentada quando o item estiver fechado.
cFile2CaracterIndica o nome da imagem, no diretório, que será apresentada quando o item estiver aberto.
cCargoCaracterIndica a chave de identificação do item na árvore.



oTree:ChangeBmp("LBNO","LBTIK",,,"001")

ChangePrompt

Altera a descrição de um item da árvore.


DBTree(): ChangePrompt ( [ cPrompt], [ cCargo] ) -->


NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a nova descrição do item.
cCargoCaracterIndica a chave de identificação do item na árvore.


 


oTree:ChangePrompt("Novo Texto Item 001","001")

DelItem

Exclui o item selecionado e, consequentemente, todos os seus subitens.


DBTree(): DelItem ( ) -->



 


oTree:DelItem()

EndTree

Indica o término da contrução da árvore.


DBTree(): EndTree ( ) -->



 


oTree:EndTree()

EndUpdate

Encerra a criação dos itens.


DBTree(): EndUpdate ( ) -->


Este método é muito importante na criação do objeto para que os ajustes de criação e performance sejam realizados corretamente.


oTree:EndUpdate()

GetCargo

Retorna a chave de identificação do item selecionado.


DBTree(): GetCargo ( ) --> cCargo

    cCargo(caracter)
  • Indica a chave de identificação do item selecionado na árvore.


 


oTree:GetCargo()

GetPrompt

Retorna a descrição do item selecionado.


DBTree(): GetPrompt ( [ lSpace] ) --> cPrompt


NomeTipoDescriçãoObrigatórioReferência
lSpaceLógicoIndica se, verdadeiro (.T.), retorna a descrição com os espaços ou, falso (.F.), se retira os espaços à direita e à esquerda da descrição.
    cPrompt(caracter)
  • Retorna a descrição do item selecionado.


 


oTree:GetPrompt(.T.) // Result: "Subnível 01"

IsEmpty

Indica se existem itens na árvore.


DBTree(): IsEmpty ( ) --> lIsEmpty

    lIsEmpty(logico)
  • Retorna, verdadeiro (.T.), se a árvore estiver vazia; caso contrário, retornará falso (.F.).


 


oTree:IsEmpty() // Result: .F.

Nivel

Retorna o nível do item selecionado.


DBTree(): Nivel ( ) --> nNivel

    nNivel()
  • Retorna o nível do item selecionado, sendo que o primeiro item estará no nível 1, seus filhos no nível 2 e assim sucessivamente.



oTree:Nivel() // Result: 3

Exemplo do método Nivel
Image Removed Image Added

PTRefresh

Atualiza todos os níveis da árvore.


DBTree(): PTRefresh ( ) -->



 


oTree:PTRefresh()

PTSendTree

Permite realizar a construção inicial, da classe DBTree(), a partir de um array pré-definido.


DBTree(): PTSendTree ( < aNodes> ) -->


NomeTipoDescriçãoObrigatórioReferência
aNodesVetorIndica o array pré-definido com informações para criar a árvore. Para mais informações referente ao formato do array, consulte a área Observações. X

Disponibilidade

Método disponível a partir da build 7.00.080806P.

 

Formato do array para criação dos itens da classe DBTree()

  1. Nível do item (Caracter).
  2. ID que identificará este item (Caracter).
  3. Compatibilidade. Configure sempre com aspas "" (Caracter).
  4. Descrição que será apresentada no item (Caracter).
  5. Imagem quando o item da árvore estiver fechado (Caracter).
  6. Imagem quando o item da árvore estiver aberto (Caracter).

 
 

Dicas de utilização do método

Este método foi desenvolvido para acelerar a criação da árvore. No entanto, para que funcione corretamente, é necessário seguir as seguintes regras na criação do array:

  • Os itens devem ser criados na ordem exata que serão apresentados.
  • Os níveis devem ser inseridos de acordo com a posição do item.

 

No exemplo abaixo, observe a maneira correta de alimentar o array:
 


 

// ExemploDEFINE DIALOG oDlg TITLE "Exemplo do PTSendTree" FROM 180,180 TO 550,700 PIXELIMAGE1 := "FOLDER5"IMAGE2 := "FOLDER6"aNodes := {}aadd(aNodes,{'00',"001","","Descrição Raiz",IMAGE1,IMAGE2})         // Raizaadd(aNodes,{'01',"002","","Descrição Subnível 01",IMAGE1,IMAGE2}) // Segundo nívelaadd(aNodes,{'02',"003","","Descrição Subnível 02",IMAGE1,IMAGE2}) // Terceiro nívelaadd(aNodes,{'01',"004","","Descrição Subnível 01",IMAGE1,IMAGE2}) // Segundo nívelaadd(aNodes,{'02',"005","","Descrição Subnível 02",IMAGE1,IMAGE2}) // Terceiro nível// Cria o objeto Tree e carrega os itensoTree := DbTree():New(0,0,160,260,oDlg,,,.T.)oTree:PTSendTree( aNodes )ACTIVATE DIALOG oDlg CENTERED

 

Visualização
Image Removed Image Added
 


#include "TOTVS.CH"User Function PTSendTree()Local nX,nY,nZDEFINE DIALOG oDlg TITLE "Exemplo do PTSendTree" FROM 180,180 TO 550,700 PIXELaNodes := {}IMAGE1  := "" 	// Imagem quando nível estiver fechadoIMAGE2  := "" 	// Imagem quando nível estiver abertonLoop   := 690  // Quantidade de Loops - irá gerar 20010 ItensnCount	:= 0	// Simula ID dos itens da Tree//cTime1 := Time()// PRIMEIRO NÍVELfor nX := 1 to nLoop		nCount++	IMAGE1 := "FOLDER5"	aadd( aNodes, {'00', StrZero(nCount,7), "", "Primeiro Nível->ID: "+;	StrZero(nCount,7), IMAGE1, IMAGE2} )		// SEGUNDO NÍVEL	for nY := 1 to 7				nCount++		IMAGE1 := "FOLDER6"		aadd( aNodes, {'01', StrZero(nCount,7), "", "Segundo Nível->ID: "+;		StrZero(nCount,7), IMAGE1, IMAGE2} )				// TERCEIRO NÍVEL		for nZ := 1 to 3						nCount++			IMAGE1 := "FOLDER10"			aadd( aNodes, {'02',StrZero(nCount,7),"","Terceiro Nível->ID: "+;			StrZero(nCount,7), IMAGE1, IMAGE2} )					next nZ			next nY	next nX// Cria o objeto TreeoTree := DbTree():New(0,0,160,260,oDlg,,,.T.)// Método para carga dos itens da TreeoTree:PTSendTree( aNodes )ACTIVATE DIALOG oDlg CENTEREDReturn

PTSrvUpdatePosition

Sincroniza as informações entre o objeto Tree, no Smart Client, e o Application Server.


DBTree(): PTSrvUpdatePosition ( ) -->



 


oTree:PTSrvUpdatePosition()

PTUpdateNodes

Atualiza o item e seus subitens.


DBTree(): PTUpdateNodes ( < cNivel> ) -->


NomeTipoDescriçãoObrigatórioReferência
cNivelCaracterIndica o nível que será atualizado. X


 


oTree:PTUpdateNodes( "005" )

Reset

Limpa todos os itens da árvore.


DBTree(): Reset ( ) -->



 


oTree:Reset()

SetDisable

Desabilita a utilização da árvore.


DBTree(): SetDisable ( ) -->



 


oTree:SetDisable()

SetEnable

Habilita a utilização da árvore.


DBTree(): SetEnable ( ) -->



 


oTree:SetEnable()

SetScroll

Define a barra de rolagem da árvore.


DBTree(): SetScroll ( < nTipo>, < lHabilita> ) -->


NomeTipoDescriçãoObrigatórioReferência
nTipoNuméricoIndica o tipo (1=horizontal e 2=vertical) da barra de rolagem. X
lHabilitaLógicoIndica se habilita (.T.) ou desabilita (.F.) a barra de rolagem. X



oTree:SetScroll(1,.T.) // Habilita barra de rolagem horizontaloTree:SetScroll(2,.T.) // Habilita barra de rolagem vertical

Total

Retorna o número de itens na árvore.


DBTree(): Total ( ) --> nItens

    nItens()
  • Retorna o número de itens na árvore.



oTree:Total() // Result: 8

TreeSeek

Localiza e posiciona o cursor em um determinado elemento.


DBTree(): TreeSeek ( < cCargo> ) --> lFind


NomeTipoDescriçãoObrigatórioReferência
cCargoCaracterIndica a chave de identificação do elemento na árvore. X
    lFind(logico)
  • Retorna, verdadeiro (.T.), se o cargo for localizado; caso contrário, retornará falso (.F.)

 

 

 

 


// Localiza o Cargo 001 e posiciona o cursor// para que o segundo nível seja criado abaixo dele// -----------------------------------------------------if oTree:TreeSeek("001")   oTree:AddItem("Segundo nível da DBTree","002", "FOLDER10",,,,2)	endif

PropriedadeDescriçãoTipo
aBmpsIndica o array que contêm as imagens dos itens do objeto.Vetor
bInitIndica o bloco de código que será executado na inicialização do objeto.Bloco de código
lActivatedIndica se, verdadeiro (.T.), o objeto está ativo; caso contrário, falso (.F.).Lógico
lCargoIndica se, verdadeiro (.T.), os elementos da Tree utilizarão a propriedade cCargo, do método AddItem(), que armazena uma string identificadora, para cada elemento e item da árvore; caso contrário, falso (.F.).Lógico
lEnableIndica se, verdadeiro (.T.), o objeto está habilitado; caso contrário, falso (.F.).Lógico
lProcessIndica se, verdadeiro (.T.), o objeto está sendo atualizado; caso contrário, falso (.F.).Lógico
lRefreshingIndica se, verdadeiro (.T.), o objeto está sendo atualizado; caso contrário, falso (.F.).Lógico
nTotalIndica o total de itens do objeto.Numérico

É importante utilizar os métodos BeginUpdate(), para iniciar a criação do objeto, e EndUpdate(), ao término, para que os ajustes de performance e criação sejam realizados corretamente.

A seguir, veja o código fonte exemplo:

oTree := DbTree():New(0,0,160,260,oDlg,,,.T.,,) // Cria a TreeoTree:BeginUpdate()    // Prepara o objeto para receber os itensoTree:SetScroll(1,.T.) // Habilita a barra de rolagem horizontaloTree:SetScroll(2,.T.) // Habilita a barra de rolagem vertical  for nX := 1 to 5    id++                             cId := strZero(id,7)    oTree:AddItem("Primeiro Nível: "+cId,cId, "FOLDER5" ,"FOLDER6",,,1)    If oTree:TreeSeek(cId)       for nY := 1 to 10	      id++                         	      cId := strZero(id,7)   		  oTree:AddItem("Subnível:"+cId,cId, "FOLDER10",,,,2)	  	  next                      endif     next  oTree:EndUpdate() // Finaliza a criação dos itens

#include "TOTVS.CH"User Function DbTree()            DEFINE DIALOG oDlg TITLE "Exemplo de DBTree" FROM 180,180 TO 550,700 PIXEL	    // Cria a Tree    oTree := DbTree():New(0,0,160,260,oDlg,,,.T.)		    // Insere itens    oTree:AddItem("Primeiro nível da DBTree","001", "FOLDER5" ,,,,1)    If oTree:TreeSeek("001")       oTree:AddItem("Segundo nível da DBTree","002", "FOLDER10",,,,2)	      If oTree:TreeSeek("002")         oTree:AddItem("Subnível 01","003", "FOLDER6",,,,2)	        oTree:AddItem("Subnível 02","004", "FOLDER6",,,,2)	        oTree:AddItem("Subnível 03","005", "FOLDER6",,,,2)	      endif    endif                         oTree:TreeSeek("001") // Retorna ao primeiro nível        // Cria botões com métodos básicos    TButton():New( 160, 002, "Seek Item 4", oDlg,{|| oTree:TreeSeek("004")};       ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. )    TButton():New( 160, 052, "Enable"	, oDlg,{|| oTree:SetEnable() };       ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. )    TButton():New( 160, 102, "Disable"	, oDlg,{|| oTree:SetDisable() };       ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. )    TButton():New( 160, 152, "Novo Item", oDlg,{|| TreeNewIt() };       ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. )    TButton():New( 172,02,"Dados do item", oDlg,{|| ;         Alert("Cargo: "+oTree:GetCargo()+chr(13)+"Texto: "+oTree:GetPrompt(.T.)) },;		 40,10,,,.F.,.T.,.F.,,.F.,,,.F. )    TButton():New( 172, 052, "Muda Texto", oDlg,{|| ;         oTree:ChangePrompt("Novo Texto Item 001","001") },;         40,010,,,.F.,.T.,.F.,,.F.,,,.F. )    TButton():New( 172, 102, "Muda Imagem", oDlg,{||;         oTree:ChangeBmp("LBNO","LBTIK",,,"001") },;         40,010,,,.F.,.T.,.F.,,.F.,,,.F. )    TButton():New( 172, 152, "Apaga Item", oDlg,{|| ;         if(oTree:TreeSeek("006"),oTree:DelItem(),) },;         40,010,,,.F.,.T.,.F.,,.F.,,,.F. )    // Indica o término da contrução da Tree    oTree:EndTree()  ACTIVATE DIALOG oDlg CENTERED Return                                             //----------------------------------------// Função auxiliar para inserção de item//----------------------------------------Static Function TreeNewIt()  // Cria novo item na Tree  oTree:AddTreeItem("Novo Item","FOLDER7",,"006")  if oTree:TreeSeek("006")     oTree:AddItem("Sub-nivel 01","007", "FOLDER6",,,,2)	    oTree:AddItem("Sub-nivel 02","008", "FOLDER6",,,,2)	  endifReturn

Exemplo da classe DBTree()
Image Removed Image Added

Microsiga Protheus 8.11 , Microsiga Protheus 11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server