Como criar visão em um Browse
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.
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:
1 2 3 |
//Vou incluir algumas bibliotecas #INCLUDE "PROTHEUS.CH" #INCLUDE 'FWBROWSE.CH' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
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 |