Âncora |
---|
| _Toc382924273 |
---|
| _Toc382924273 |
---|
|
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
METHOD setPublic( lPublic ) // Define se será visível por todos os usuários. Se .F., somente o usuário definido em setUser() poderá utilizar a visão.
METHOD setUser( cUser ) // Define o usuário dono da visão. Quando for utilizado o setPublic(.T.) este método não é necessário.
METHOD AddFilter( cFilterName,cFilter,cTable ) // Adiciona um filtro à visão. O parâmetro cTable deve ser passado quando for criado um filtro relacionado. Este parâmetro define a tabela relacionada.
METHOD AddFilterRelation( cTableRelation , cDomain , cCounterDomain ) // Adiciona uma relação. Para criação de filtros relacionados.
Métodos obrigatórios para uma visão:
setID( cID )
setName( cName )
setOrder( nOrder )
setCollumns( aCollumns )
setPublic( lPublic ) ou setUser( cUser )
Exemplo:
oDSView := FWDSView():New()
oDSView:SetID("PED001")
oDSView:SetName("Pedidos Faturados")
oDSView:SetPublic(.T.)
oDSView:SetCollumns({"C5_NUM","C5_CLIENTE"})
oDSView:SetOrder(2)
oDSView:AddFilterRelation( 'SA1' , 'A1_COD+A1_LOJA' , 'C5_CLIENTE+C5_LOJACLI' )
oDSView:AddFilter( "Pedidos Faturados" , 'C5_NOTA<>""' )
oDSView:AddFilter( "Clientes de SP" , 'A1_EST=="SP"' , "SA1" )
oBrowse := FWMBrowse():New()
oBrowse:SetViewsDefault({oDSView})
Âncora |
---|
| _Toc382924274 |
---|
| _Toc382924274 |
---|
|
Criando um gráfico anexo ao browse via código
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 ).
Para criar um objeto FWDSChart utilize os seguintes métodos:
METHOD setID( cID ) //Define o ID da visão
METHOD setName( cName ) //Define o Nome da Visão
METHOD setTitle( cTitle ) //Define o Título da Visão
METHOD setType( cType ) //Define o Tipo de gráfico "BARCHART", "BARCOMPCHART", "LINECHART" ou "PIECHART".
METHOD setCategory( aCategory ) //Define as categorias (eixo x) do gráfico
METHOD setSeries( aSerie ) //Define as séries do gráfico
METHOD setPeriod( aPeriod ) //Define os períodos (eixo x) do gráfico
METHOD setPublic( lPublic ) // Define se será visível por todos os usuários. Se .F., somente o usuário definido em setUser() poderá utilizar a visão.
METHOD setTitleAlign( nTAlign ) // Alinhamento do título CONTROL_ALIGN_NONE, CONTROL_ALIGN_LEFT, CONTROL_ALIGN_TOP, CONTROL_ALIGN_RIGHT, CONTROL_ALIGN_BOTTOM
METHOD setLegend( nLAlign ) // Alinhamento da legenda CONTROL_ALIGN_CENTER, CONTROL_ALIGN_LEFT, CONTROL_ALIGN_RIGHT
METHOD setPicture( cPicture ) // Picture
METHOD setMask( cMask ) // Máscara
METHOD setUser( cUser ) // Define o usuário dono da visão. Quando for utilizado o setPublic(.T.) este método não é necessário.
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 )
Exemplo:
oDSChart := FWDSChart():New()
oDSChart:SetID("CHT001")
oDSChart:SetName("Fat x Cliente")
oDSChart:setTitle( "Fat x Cliente" )
oDSChart:SetPublic(.T.)
oDSChart:setSeries({ {"SC6","C6_VALOR","SUM"} })
oDSChart:setCategory({ {"SC5", "C5_CLIENTE"} })
oDSChart:SetType("PIECHART")
oDSChart:SetLegend(CONTROL_ALIGN_LEFT)
oDSChart:SetTitleAlign(CONTROL_ALIGN_CENTER)
oDSChart:SetMask("R$ @")
oDSChart:SetPicture("99999.99")
oBrowse := FWMBrowse():New()
oBrowse:SetChartsDefault( {oDSChart} )
Âncora |
---|
| _Toc382924275 |
---|
| _Toc382924275 |
---|
|
Utilização da Static Function TableAttDef()
Junto com o conceito de gráficos e visões foi criado o conceito de widgets de gráficos e visões, que permitem a criação de um widget com a visualização dos dados na forma de gráfico ou browse.
Para a utilização desses widgets é necessário que exista na rotina principal a static function TableAttDef() que retorne a configuração de gráficos e visões. Dessa forma o widget conseguirá buscar os dados de gráficos e visões da rotina especificada.
Essa static function deverá retornar um objeto do tipo FWTableAtt(), que contém as configurações de gráficos e visões de um determinado alias (os objetos FWDSChart e FWDSView associados à um alias específico).
Sendo assim, a definição dos gráficos e visões do browse ficaria no seguinte formato:
Local oTableAtt := TableAttDef()
Local oMBrowse := FWMBrowse():New()
.
.
oMBrowse:SetAttach( .T. )
oMBrowse:SetViewsDefault( oTableAtt:aViews )
oMBrowse:SetChartsDefault( oTableAtt:aCharts )
.
.
.
.
Static Function TableAttDef()
//Visões
Local oAbertos := Nil // Suspects Abertos
Local oQualif := Nil // Suspects Qualificados
//Gráficos
Local oPorStatus := Nil // Colunas: Suspects por Status
Local oPorVend := Nil // Colunas: Suspects por Vendedor
Local oTableAtt := FWTableAtt():New()
oTableAtt:SetAlias("ACH")
//----------
// Visões
//----------
// Suspects Abertos
oAbertos := FWDSView():New()
oAbertos:SetName(STR0094) //"Suspects Abertos"
oAbertos:SetID("Abertos")
oAbertos:SetOrder(1) // ACH_FILIAL+ACH_CODIGO+ACH_LOJA
oAbertos: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"})
oAbertos:SetPublic( .T. )
oAbertos:AddFilter(STR0094, "!ACH_STATUS $ '5,6'") //"Suspects Abertos"
oTableAtt:AddView(oAbertos)
// Suspects Qualificados
oQualif := FWDSView():New()
oQualif:SetName(STR0095) //"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(STR0095, "ACH_STATUS == '6'") //"Suspects Qualificados"
oTableAtt:AddView(oQualif)
//------------
// Gráficos
//------------
// Colunas: Suspects por Status
oPorStatus := FWDSChart():New()
oPorStatus:SetName(STR0100) //"Suspects por Status"
oPorStatus:SetTitle(STR0100) //"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 ) //Inferior
oPorStatus:SetTitleAlign( CONTROL_ALIGN_CENTER )
oTableAtt:AddChart(oPorStatus)
// Colunas: Suspects por Vendedor
oPorVend := FWDSChart():New()
oPorVend:SetName(STR0101) //"Suspects por Vendedor"
oPorVend:SetTitle(STR0101) //"Suspects por Vendedor"
oPorVend:SetID("PorVend")
oPorVend:SetType("BARCOMPCHART")
oPorVend:SetSeries({ {"ACH", "ACH_CODIGO", "COUNT"} })
oPorVend:SetCategory( { {"SA3", "A3_NOME"} } )
oPorVend:SetPublic( .T. )
oPorVend:SetLegend( CONTROL_ALIGN_BOTTOM ) //Inferior
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
Procedimentos de utilização Visões e Gráficos
Âncora |
---|
| _Toc382924276 |
---|
| _Toc382924276 |
---|
|
Visões Âncora |
---|
| _Toc382924277 |
---|
| _Toc382924277 |
---|
|
Aplicando uma visão
Ao entrar em uma rotina com as Visões habilitadas clique no link que aparece no topo do browse "Exibir Todos"
Image Modified
Selecione a visão desejada para aplicar
Image Modified
Âncora |
---|
| _Toc382924278 |
---|
| _Toc382924278 |
---|
|
Criando uma visão
Abra o menu de visões localizado no topo do browse e clique em "Criar Visão"
Image Modified
Preencha o nome da visão, selecione um índice para a visão
Image Modified
Selecione as colunas que deseja exibir no browse
Image Modified
Se desejar, configure um filtro (opcional)
Image Modified
Confirme a Visão.
Âncora |
---|
| _Toc382924279 |
---|
| _Toc382924279 |
---|
|
Editando uma visão
Selecione a opção "Gerenciar Visões"
Image Modified
Nessa tela serão exibidas 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 no momento da abertura da rotina).
Restaurar visão padrão -> restaura a visão padrão original da rotina
Image Modified
Âncora |
---|
| _Toc382924280 |
---|
| _Toc382924280 |
---|
|
Gráficos