Histórico da Página
...
...
...
...
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;
O Gerenciador de Visões exibe todas as visões criadas pelo usuário com as operações:
Alterar - Permite editar as configurações da visão selecionada;
Excluir - Exclui todas as visões selecionadas;
Ações relacionadas:
Definir como padrão - Define a visão selecionada como padrão (uma visão definida como padrão é carregada automaticamente no momento da abertura da rotina).
Restaurar visão padrão - Restaura a visão padrão original da rotina
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:
...
O Gerenciador de Gráficos exibe todos os gráficos criados pelo usuário com as operações:
Alterar - Permite editar as configurações do gráfico selecionado;
Excluir - Exclui todos os gráficos selecionadas;
Ações relacionadas:
Definir como padrão - Define o gráfico selecionado como padrão (será carregado automaticamente).
Além do menu, na área do gráfico ativo, ao lado do título do gráfico podemos alterar algumas configurações, tais como tipo do gráfico, picture e máscara. Porém, estas alterações são apenas para efeito de visualização (elas não são salvas). Para realizar uma alteração permanente é necessário utilizar o Gerenciador de Gráficos, selecionar o gráfico e então a opção Alterar.
Habilitando visões e anexos
Para habilitar as visões em uma rotina utilize o método SetAttach(.T.) da FWMBrowse.
Exemplo:
oBrowse := FWMBrowse():New()
oBrowse:SetAttach( .T. )
oBrowse:SetOpenChart( .T. ) //Define se o gráfico virá aberto ou oculto no carregamento do browse
Habilitando isto o browse já exibirá o menu de visões e opção de gráfico, onde o usuário poderá criar suas visões e gráficos.
Para trazer gráficos ou visões padrões da rotina é necessário fazer a implementação via código conforme orientações abaixo.
Criando uma visão via código
Deve-se criar um objeto FWDSView para cada visão e passa-los para o browse em um array através do método SetViewsDefault( aViews ).
Para criar um objeto FWDSView utilize os seguintes métodos:
METHOD setId( cId ) //Define o ID da visão
METHOD setName( cName ) //Define o Nome da Visão
METHOD setOrder( nOrder ) //Define o índice utilizado na visão
METHOD setCollumns( aCollumns ) //Define as colunas que aparecerão na visão
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
oTableAtt:AddView(oAbertos)
// Suspects Qualificados
oQualif := FWDSView():New()
oQualif:SetName("Suspects Qualificados")
oQualif:SetID("Qualif")
oQualif:SetOrder(1) // ACH_FILIAL+ACH_CODIGO+ACH_LOJA
oQualif:SetCollumns({"ACH_CODIGO","ACH_LOJA","ACH_RAZAO","ACH_NFANT","ACH_DDD","ACH_TEL",;
"ACH_EMAIL","ACH_END","ACH_BAIRRO","ACH_CIDADE","ACH_EST","ACH_ORIGEM","ACH_STATUS"})
oQualif:SetPublic( .T. )
oQualif:AddFilter("Suspects Qualificados", "ACH_STATUS == '6'")
oTableAtt:AddView(oQualif)
//------------
// Gráficos
//------------
// Colunas: Suspects por Status
oPorStatus := FWDSChart():New()
oPorStatus:SetName("Suspects por Status")
oPorStatus:SetTitle("Suspects por Status")
oPorStatus:SetID("PorStatus")
oPorStatus:SetType("BARCOMPCHART")
oPorStatus:SetSeries({ {"ACH", "ACH_CODIGO", "COUNT"} })
oPorStatus:SetCategory( { {"ACH", "ACH_STATUS"} } )
oPorStatus:SetPublic( .T. )
oPorStatus:SetLegend( CONTROL_ALIGN_BOTTOM )
oPorStatus:SetTitleAlign( CONTROL_ALIGN_CENTER )
oTableAtt:AddChart(oPorStatus)
// Suspects por Vendedor
oPorVend := FWDSChart():New()
oPorVend:SetName("Suspects por Vendedor")
oPorVend:SetTitle("Suspects por Vendedor")
oPorVend:SetID("PorVend")
oPorVend:SetType("BARCOMPCHART") //abertura inicial com gráfico de barras
oPorVend:SetSeries({ {"ACH", "ACH_CODIGO", "COUNT"} })
oPorVend:SetCategory( { {"SA3", "A3_NOME"} } )
oPorVend:SetPublic( .T. )
oPorVend:SetLegend( CONTROL_ALIGN_BOTTOM )
oPorVend:SetTitleAlign( CONTROL_ALIGN_CENTER )
oTableAtt:AddChart(oPorVend)
Return (oTableAtt)
Utilizando a função MBrowse()
Com o intuito de facilitar o desenvolvimento, foi criado o parâmetro bBeforeActivate na função MBrowse (24º parâmetro).
Este parâmetro irá receber um bloco de código que será chamado antes da ativação da classe de Browse. Com isto o desenvolvedor conseguirá habilitar o conceito de gráficos e visões mesmo quando utilizar a função MBrowse().
Exemplo:
MBrowse( 6,1,22,75,'SC5',,,,,,aCores,,,,,,,,cFilSQL,,,,, {|oBrowse|AT410BrwAct(oBrowse)} )
Static Function AT410BrwAct(oBrowse)
Local oTableAtt := TableAttDef()//static function que deve ser criada no fonte
oBrowse:SetAttach(.T.)
oBrowse:SetViewsDefault( oTableAtt:aViews )
oBrowse:SetChartsDefault( oTableAtt:aCharts )
Return
...