Histórico da Página
FWTemporaryTable():SetFields( <aFields> )
Descrição
Define os campos da estrutura.
Array com estrutura de campos:[1] Nome
[2] Tipo
[3] Tamanho
[4] Decimal
X
Painel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Descrição Classe responsável por construir um track de rotinas
Descrição Retorna o alias utilizado pelo arquivo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Painel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nome | Tipo | Descrição | Default | Obrigatório | Referência | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aFields | Array |
Fonte de exemplo: ExFWTemporaryTableExFWBreadCrumb.prw
Bloco de código | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
#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 aFieldsoDlg Local oBreadCrumb Local aLevel := {} Local oHeader Local oTempTableoMainPanel 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 |