Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: trocado titulo dos panels

Sintaxe

FWTemporaryTable():SetFields( <aFields> )

 

Descrição

Define os campos da estrutura.

 

X

 

Painel
bgColorWhite
titleFWTemporaryTableFWBreadCrumb

Descrição

Classe para criação e manipulação de tabelas temporárias no BDresponsável por construir um track de rotinas

 

Compatível Países:

Todos

Sistemas Operacionais:

Todos

Compatível às Bases de Dados:

Todos

Nível de Acesso:

Nível 1 (Acesso Clientes)

Idiomas:

Português, Inglês, Espanhol

Versão/Release

12.1.5

Nota
titlePré-requisito

TOTVS|DBAccess 4.2 Server com build igual ou superior à 20141119 (Mar 12 2015).

 

 

Painel
titleNew

Sintaxe

FWTemporaryTableFWBreadCrumb():New( [<cAlias>]<oOwner>, [<aFields><lForce>] )-> Objeto FWTemporaryTableFWBreadCrumb

 

Descrição

Método para instanciar a classe

 

Parâmetros

 

Nome

Tipo

Descrição

Default

Obrigatório

Referência

cAliasoOwner

Caracter

Alias a ser utilizado pela tabela.

GetNextAlias

Objeto

Container em que o BreadCrumb será criado.

 

 

 

aFieldslForce

Array

Array com estrutura de campos:
[1] Nome
[2] Tipo
[3] Tamanho
[4] Decimal

Lógico

Força a atualização do path no click

.T.{}

 

 

Painel
titleCreateActivate

Sintaxe

FWTemporaryTableFWBreadCrumb():CreateActivate()

 

Descrição

Método responsável pela criação da tabelaativação do objeto e criação de componentes visuais.

 

Painel
titleDeleteDeactivate

Sintaxe

FWTemporaryTableFWBreadCrumb():DeleteDeactivate()

 

Descrição

Método responsável por efetuar a exclusão da tabela, e fechar o aliasdesativar a classe.

 

Painel
titleAddIndexSetPath

Sintaxe

FWTemporaryTableFWBreadCrumb():AddIndexSetPath( <cIndexName>, <aFields> <aPath> )

 

DescriçãoAdiciona um índice na tabela. 

Método para atribuir o caminho a ser exibido


Parâmetros

Nome

Tipo

Descrição

Default

Obrigatório

Referência

cIndexName

Caracter

Nome do índice

 

 

aFieldsaPath

Array

Array com os campos a serem utilizados no índice:de itens a serem exibidos, deve ter a seguinte extrutura
[1] ID
[2] NomeTitulo

 

 

Painel
titleGetRealNameSetAction

Sintaxe

FWTemporaryTableFWBreadCrumb():GetRealNameSetAction( [<bAction>] ) -> cRealName

 

Descrição

Retorna o nome com o qual a tabela foi criada no BD. 

Painel
titleInsertSelect

Sintaxe

FWTemporaryTable():InsertSelect( <cTableFrom> , <aFieldsFrom> )

 

Descrição

Efetua carga de todos os campos baseada em um select de outra tabela, utilizando o padrão INSERT INTO SELECT.
Este método deve ser utilizado quando todos os campos da estrutura da tabela serão preenchidos.Método para setar a ação sempre que os itens forem clicados

cTableFrom

Nome

Tipo

Descrição

Default

Obrigatório

Referência

bAction

Caracter

Tabela da qual os valores serão carregados.

 

X

 

 

aFieldsFrom

Array

Array contendo o nome dos campos da tabela indicada, que deverão ser trazidos para carga

 

Bloco de Código

Bloco de código a ser disparado no clique dos itens

 {|| }

 X

 

Painel
titleInsertIntoSelectSetRoot

Sintaxe

FWTemporaryTableFWBreadCrumb():InsertIntoSelectSetRoot( <aFieldsTo><cID> , <cTableFrom> , <aFieldsFrom> <cTitle> )

 

DescriçãoEfetua carga de todos os campos baseada em um select de outra tabela, utilizando o padrão INSERT INTO SELECT.
Este método deve ser utilizado quando somente alguns campos da estrutura da tabela serão preenchidos.

Método para atribuir o id e o titulo do item raiz

Array contendo o nome dos campos da tabela que deverão ser preenchidos
Nome

Tipo

Descrição

Default

Obrigatório

Referência

aFieldsTocIDArray

Caracter

Identificação do item raiz

 

X

 

cTableFrom

Caracter

Tabela da qual os valores serão carregados.

 X

cTitle

 

Caracter

Título a ser exibido do item raiz

aFieldsFrom

Array

Array contendo o nome dos campos da tabela indicada, que deverão ser trazidos para carga

 

X

 
Painel
titleGetAlias

Sintaxe

FWTemporaryTable():GetAlias( ) -> cAlias

 

Descrição

Retorna o alias utilizado pelo arquivo.

Painel
titleSetFields
Nome

Tipo

Descrição

Default

Obrigatório

Referência

aFieldsArray

Array com estrutura de campos:
[1] Nome
[2] Tipo
[3] Tamanho
[4] Decimal

 

Fonte de exemplo: ExFWTemporaryTableExFWBreadCrumb.prw
Bloco de código
languagecpp
themeEclipse
firstline1
titleExemplo
linenumberstrue
collapsetrue
#include 'protheus.ch'
//-------------------------------------------------------------------
/*/{Protheus.doc} ExFWBreadCrumb
Função de exemplo para o componente FWBreadCrumb
	
@see FWBreadCrumb
@author arthur.fucher
@since 29/12/2015
@version 1.0
/*/
//-------------------------------------------------------------------
User Function ExFWTemporaryTableExFWBreadCrumb()
Local oDlg
Local oBreadCrumb
Local aFieldsaLevel := {}
Local oTempTableoHeader
Local oMainPanel
Local nIoSay
Local cAlias := "MEUALIAS"
Local cQuery
 oButton
DEFINE MSDIALOG oDlg FROM 000,000 TO 600,800 PIXEL
	
	//-------------------
	//Criação do objetopaineis
	//-------------------
oTempTable	oHeader       := FWTemporaryTabletPanel():New( cAlias )
//-----01,01,,oDlg,,,,,,100,20)
	oHeader:Align := CONTROL_ALIGN_TOP
	oMainPanel       := tPanel():New(01,01,,oDlg,,,,,,100,20)
	oMainPanel:Align := CONTROL_ALIGN_ALLCLIENT
	
	//---------------------
	//MontaCriação os campos da tabela
do BreadCrumb
	//--------------------------
aadd(aFields,{"DESCR","C",30,0})
aadd(aFields,{"CONTR","N",3,1})
aadd(aFields,{"ALIAS","C",3,0})
oTemptable:SetFields( aFields )
oTempTable:AddIndex("indice1", {"DESCR"} )
oTempTable:AddIndex("indice2", {"CONTR", "ALIAS"} )
//
	oBreadCrumb := FWBreadCrumb():New(oHeader)
	oBreadcrumb:SetAction( {|x| SetLevel( x , aLevel , oSay , oButton) } )
	oBreadcrumb:Activate()
	
	//Criação de conteúdo
	oSay:= TSay():New(01,01,{||'Texto para exibição I'},oMainPanel,,,,,,.T.,,,200,20)
	oButton := TButton():New( 20, 20, "Next",oMainPanel,{| x | nextLevel( oSay , oBreadCrumb , aLevel, oButton)}, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. ) 
	
ACTIVATE MSDIALOG oDlg CENTERED
Return 
//-------------------------------------------------
//Criação da tabela
//------------------
oTempTable:Create()

conout("Executando a cópia dos registros da tabela: " + RetSqlName("CT0") )
//-------
/*/{Protheus.doc} SetLevel
Função auxiliar para tratamento quando o clique do BreadCrumb é disparado
	
@param cID     ID do item do BreadCrumb
@param aLevel  Array com itens do path do BreadCrumb
@param oSay    Objeto TSay da tela
@param oButton Objeto TButton da tela
@author arthur.fucher
@since 29/12/2015
@version 1.0
/*/
//-------------------------------------------------------------------
//CasoStatic oFunction INSERTSetLevel( INTOcID SELECT, preencha todos os campos, este será um método facilitador
//Caso contrário deverá ser chamado o InsertIntoSelect():
 // oTempTable:InsertIntoSelect( {"DESCR", "CONTR" } , RetSqlName("CT0") , { "CT0_DESC", "CT0_CONTR" } )
//aLevel, oSay, oButton)
Local nPos := AScan( aLevel , { |aItem| aItem[1] == cID } )
	
	//--------------------------------------------------
	//Redimensiona o array de acordo com o item clicado
	//--------------------------------------------------
oTempTable:InsertSelect( RetSqlName("CT0") , { "CT0_DESC", "CT0_CONTR", "CT0_ALIAS" } )

//
	If nPos > 0
		aLevel := ASize( aLevel , nPos )
	ElseIf cID == "HOME" //DEFAULT do BREADCRUMB
		aLevel := ASize( aLevel , 0 )
	EndIf
	//Altera o texto do TSay para o contexto
	oSay:SetText( cID )
	//Apresenta o botão novamente
	oButton:Show()
Return
//-------------------------------------------------------------------
//Executa query para leitura da tabela
//*/{Protheus.doc} nextLevel
Função auxiliar para ir para o próximo nível do BreadCrumb
	
@param oSay        Objeto TSay da tela
@param oBreadCrumb Objeto FWBreadCrumb da tela
@param aLevel      Array com itens do path do BreadCrumb
@param oButton     Objeto TButton da tela
@author arthur.fucher
@since 29/12/2015
@version 1.0
/*/
//-------------------------------------------------------------------
cQuery := "select * from "+ oTempTable:GetRealName()
MPSysOpenQuery( cQuery, 'QRYTMP' )
DbSelectArea('QRYTMP')
while !eof()
	for nI := 1 to fcount()
		varinfo(fieldname(nI),fieldget(ni))
	next
	dbskip()
Enddo
	
//Static Function nextLevel( oSay , oBreadCrumb , aLevel , oButton )
Local cLevel := cValToChar(Len(aLevel))
//------------------------------------
//Exclui a tabela Definido um nível para ser o máximo
//------------------------------------
oTempTable:Delete() 

return
If cLevel == "7"
	oButton:Hide()
Else
	//Adiciona o novo nível no Array
	AAdd( aLevel , { cLevel , "Titulo" + cLevel } )
	
	//Altera o path do BreadCrumb
	oBreadcrumb:SetPath( aLevel )
	
	//Altera o texto do TSay para o contexto
	oSay:SetText(cLevel)
EndIf
Return