Acredito que alguns de vocês já tenham percebido o uso de visões e gráficos em certas rotinas do sistema, no caso da visão, ela ficará ao lado do titulo, na parte superior da janela e no caso de gráficos, ficará do lado direito do seu browse.

A inclusão de visões e gráficos, são bem simples, no exemplo que irei postar, demonstrarei como é fácil fazê-lo.

fwdsviewxfwdschart-tela1

Para habilitar as visões em uma rotina utilize o método SetAttach(.T.) da FWMBrowse.

oBrowse:SetAttach( .T. )
oBrowse:SetOpenChart( .T. ) //Define se o gráfico virá aberto ou oculto no carregamento do browse

Após habilitado, são adicionados dois menus no browse. Um para acesso às visões e um para acesso aos gráficos

Um breve resumo…

Menu de Visões

Este menu é exibido no topo do browse com a descrição da visão ativa. O menu oferece as seguintes possibilidades:

  • Selecionar uma visão para o browse;
  • Criar uma nova visão;
  • Abrir o gerenciador de Visões;

Menu de Gráficos

A área do gráfico está do lado direito do browse com um separador que permite expandir ou retrair a área.

O menu dos gráficos é exibido no topo da área com a descrição do gráfico ativo. O menu oferece as seguintes possibilidades:

  • Selecionar gráfico a exibir;
  • Criar um novo gráfico;
  • Abrir o Gerenciador de Gráficos;

Para criar uma visão, será necessário criar um objeto do tipo FWDSView para cada visão.

Métodos obrigatórios para uma visão:

setID( cID )
setName( cName )
setOrder( nOrder )
setCollumns( aCollumns )
setPublic( lPublic ) ou setUser( cUser )

Agora, para criarmos um gráfico é necessário anexá-lo ao browse, deve-se criar um objeto FWDSChart para cada gráfico e passa-los para o browse em um array através do método SetChartsDefault( aCharts ).

Métodos obrigatórios para um gráfico:

setID( cID )
setName( cName )
setTitle( cTitle )
setCollumns( aCollumns )
setType( cType )
setCategory( aCategory ) ou setPeriod( aPeriod )
setPublic( lPublic ) ou setUser( cUser )

Agora vamos ao código fonte:

//Vou incluir algumas bibliotecas
#INCLUDE "PROTHEUS.CH"
#INCLUDE 'FWBROWSE.CH'

 

User Function Exemplo5()
 Local cFiltro := ""
 Local oBrowse 
 Local oFinalizado
 Private cAlias := "ZZL"
 Private cCadastro := "Exemplo usando Visão"
 
 oFinalizado := FWDSView():New()
 //Métodos obrigatórios para uma visão
 oFinalizado:SetID("PROJETOS1") 
 oFinalizado:SetName("Projetos Finalizados") 
 //Defino quais colunas da minha tabela deverão ser apresentadas
 oFinalizado:SetCollumns({"ZZL_PROJET","ZZL_CODPAI","ZZL_PEDVEN","ZZL_ITEMPV","ZZL_PESO","ZZL_NOTA","ZZL_SERIE","ZZL_STATUS"})
 //Defino a ordem
 oFinalizado:SetOrder(1) 
 oFinalizado:SetPublic(.T.)
 //Incluo uma visão com filtro
 oFinalizado:AddFilter( "Projetos Finalizados" , 'ZZL->ZZL_STATUS == "F"' ) 

 oDSChart := FWDSChart():New()
 
 //Métodos obrigatórios para um gráfico
 oDSChart:SetID("ZZL001") 
 oDSChart:SetName("Projeto x Pedido")
 oDSChart:setTitle( "Projeto x Pedido" ) 
 //Define as categorias (eixo x) do gráfico
 oDSChart:setCategory({ {"SC5", "C5_NUM"} })
 //Define o Tipo de gráfico "BARCHART", "BARCOMPCHART", "LINECHART" ou "PIECHART".
 oDSChart:SetType("BARCOMPCHART")
 //Define as séries do gráfico
 oDSChart:setSeries({ {"ZZL","ZZL_PROJET","COUNT"} })
 // Define se será visível por todos os usuários. Se .F., somente o usuário definido em setUser() poderá utilizar a visão.
 oDSChart:SetPublic(.T.)
 // Alinhamento da legenda CONTROL_ALIGN_CENTER, CONTROL_ALIGN_LEFT, CONTROL_ALIGN_RIGHT
 oDSChart:SetLegend(CONTROL_ALIGN_BOTTOM )
 // Alinhamento do título CONTROL_ALIGN_NONE, CONTROL_ALIGN_LEFT, CONTROL_ALIGN_TOP, CONTROL_ALIGN_RIGHT, CONTROL_ALIGN_BOTTOM 
 oDSChart:SetTitleAlign(CONTROL_ALIGN_CENTER)
 oDSChart:SetMask("@E")
 oDSChart:SetPicture("9999999") 
 
 chkFile(cAlias) //Abertura da tabela

 dbSelectArea(cAlias)
 (cAlias)->(dbSetOrder(2))

 oBrowse := FWmBrowse():New()
 oBrowse:SetAlias( cAlias )
 oBrowse:SetDescription( cCadastro ) 
 oBrowse:SetFilterDefault( cFiltro ) 
 oBrowse:SetViewsDefault({oFinalizado}) //define o metodo da visão
 oBrowse:SetChartsDefault( {oDSChart} ) //define o metodo do grafico
 oBrowse:SetAttach( .T. ) //habilita a visão
 oBrowse:SetOpenChart( .T. ) //Define se o gráfico virá aberto ou oculto no carregamento do browse 
 oBrowse:Activate()

 (cAlias)->(dbCloseArea())

Return

 


Equipe Blog Advpl

Amantes da tecnologia

Deixe uma resposta