Fiz uma pequena experiência com o fonte que o Fernando postou.
PROCEDURE Main
LOCAL oDashBoard
oDashboard := DashBoardClass():New()
oDashBoard:Resumo_Financeiro()
RETURN
CREATE CLASS DashBoardClass
VAR oServer
METHOD New( ParamServer ) INLINE ::oServer := ParamServer, Self
METHOD Resumo_Financeiro( )
PROTECTED:
VAR nCombo_Ano INIT 1
VAR aAnos INIT {}
VAR nVendas INIT 0.00
VAR nAReceber INIT 0.00
VAR nReceberEmAtrazo INIT 0.00
VAR nRecebido INIT 0.00
VAR nAPagar INIT 0.00
VAR nPagarEmAtrazo INIT 0.00
VAR nPago INIT 0.00
VAR nTotalVendas INIT 0.00
METHOD GRAFICO_RECEBER( oDlg )
ENDCLASS
METHOD Resumo_Financeiro( ) CLASS DashBoardClass
LOCAL oDlg ;
, oPanel1, oPanel2, oPanel3, oPanel4 ;
, oLabel1, oLabel2, oLabel3, oLabel4, oLabel5, oLabel6, oLabel7, oLabel8 ;
, oAReceber, oReceberEmAtrazo, oRecebido ;
, oOwnerbutton1 ;
, oVendas ;
, oAPagar, oPagarEmAtrazo, oPago ;
, oCombo_Anos ;
, oBrowse1 ;
, oStatus1, oControl
::nCombo_Ano := Ascan(::aAnos,strzero(Year(Date()),4,0) )
INIT DIALOG oDlg TITLE "RESUMO FINANCEIRO / DASHBOARD" ;
ICON HIcon():Addresource('SGC_ICON') ;
AT 0, 0 SIZE 1100,590 CLIPPER NOEXIT ;
BACKCOLOR 16777215 ;
ON GETFOCUS { || GraphicRMChart() }
@ 0,0 PANEL oPanel1 SIZE 1100,80
oPanel1:Anchor := 130
@ 2,83 SAY oLabel1 CAPTION "" SIZE 1096,30 ;
STYLE WS_BORDER + SS_CENTER ;
COLOR 16777215 BACKCOLOR 0 ;
FONT HFont():Add( '',0,-19,400,,,)
oLabel1:Anchor := 11
@ 5,9 OWNERBUTTON oOwnerbutton1 OF oPanel1 SIZE 73,63 ;
ON CLICK {|| oDlg:Close() } ;
FLAT ;
TEXT 'Sair' COLOR 16777215 ;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('door-8-256-30') ;
COORDINATES 0, 5, 0, 0 ;
TOOLTIP 'Sair da Rotina'
@ 971,25 GET COMBOBOX oCombo_Anos VAR ::nCombo_Ano ;
ITEMS ::aAnos OF oDlg:oPanel1 ;
SIZE 78,24 ;
FONT HFont():Add( '',0,-19,400,,,)
@ 5,115 PANEL oPanel2 SIZE 254,450
oPanel2:Anchor := 3
@ 10,5 SAY oVendas CAPTION LTRIM(Transform(::nVendas,"@E 99,999,999,999.99") ) OF oPanel2 SIZE 234,20 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-19,700,,,)
oVendas:Anchor := 11
@ 10,25 SAY oLabel2 CAPTION "Total Vendas" OF oPanel2 SIZE 234,16 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-10,400,,,)
oLabel2:Anchor := 11
@ 10,55 SAY oAReceber CAPTION LTRIM(Transform(::nAReceber,"@E 99,999,999,999.99") ) OF oPanel2 SIZE 234,20 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-19,700,,,)
oAReceber:Anchor := 11
@ 10,75 SAY oLabel3 CAPTION "A Receber" OF oPanel2 SIZE 234,16 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-10,400,,,)
oLabel3:Anchor := 11
@ 10,95 SAY oReceberEmAtrazo CAPTION LTRIM(Transform(::nReceberEmAtrazo,"@E 99,999,999,999.99") ) OF oPanel2 SIZE 234,20 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-19,700,,,)
oReceberEmAtrazo:Anchor := 11
@ 10,115 SAY oLabel4 CAPTION "Inadimplência" OF oPanel2 SIZE 234,16 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-10,400,,,)
oLabel4:Anchor := 11
@ 10,135 SAY oRecebido CAPTION LTRIM(Transform(::nRecebido,"@E 99,999,999,999.99") ) OF oPanel2 SIZE 234,20 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-19,700,,,)
oRecebido:Anchor := 11
@ 10,155 SAY oLabel5 CAPTION "Recebido" OF oPanel2 SIZE 234,16 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-10,400,,,)
oLabel5:Anchor := 11
@ 10,190 SAY oAPagar CAPTION LTRIM(Transform(::nAPagar,"@E 99,999,999,999.99") ) OF oPanel2 SIZE 234,20 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-19,700,,,)
oAPagar:Anchor := 11
@ 10,210 SAY oLabel6 CAPTION "A Pagar" OF oPanel2 SIZE 234,16 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-10,400,,,)
oLabel6:Anchor := 11
@ 10,230 SAY oPagarEmAtrazo CAPTION LTRIM(Transform(::nPagarEmAtrazo,"@E 99,999,999,999.99") ) OF oPanel2 SIZE 234,20 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-19,700,,,)
oPagarEmAtrazo:Anchor := 11
@ 10,250 SAY oLabel7 CAPTION "Em Atrazo" OF oPanel2 SIZE 234,16 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-10,400,,,)
oLabel7:Anchor := 11
@ 10,270 SAY oPago CAPTION LTRIM(Transform(::nPago,"@E 99,999,999,999.99") ) OF oPanel2 SIZE 234,20 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-19,700,,,)
oPago:Anchor := 11
@ 10,290 SAY oLabel8 CAPTION "Pago" OF oPanel2 SIZE 234,16 ;
STYLE SS_LEFT ;
COLOR 16777215 BACKCOLOR 4339747 ;
FONT HFont():Add( '',0,-10,400,,,)
oLabel8:Anchor := 11
FOR EACH oControl IN { oVendas, oLabel2, oAReceber, oLabel3, oReceberEmAtrazo, ;
oLabel4, oRecebido, oLabel5, oAPagar, oLabel6, oPagarEmAtrazo, oLabel7, oPago, oLabel8 }
NEXT
@ 265,115 PANEL oPanel3 SIZE 397,220
oPanel3:Anchor := 3
@ 665,115 PANEL oPanel4 SIZE 432,220
oPanel4:Anchor := 3
@ 265,340 BROWSE oBrowse1 ARRAY SIZE 832,225 STYLE WS_BORDER + WS_VSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS
oBrowse1:nHeadRows := 2
oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)
oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)
oBrowse1:freeze := 2
oBrowse1:aArray := {}
oBrowse1:AddColumn( HColumn():New( "Mês/Ano",hwg_ColumnArBlock(),"C",9,0,.F.,1,2,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Total Vendas', hwg_ColumnArBlock() ,'N',20, 2 ,.F.,1,2,'@E 999,999,999.99',,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('A Receber', hwg_ColumnArBlock() ,'N',20, 2 ,.F.,1,2,'@E 999,999,999.99',,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Inadimplência', hwg_ColumnArBlock() ,'N',20, 2 ,.F.,1,2,'@E 999,999,999.99',,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('A Pagar', hwg_ColumnArBlock() ,'N',20, 2 ,.F.,1,2,'@E 999,999,999.99',,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Em Atrazo', hwg_ColumnArBlock() ,'N',20, 2 ,.F.,1,2,'@E 999,999,999.99',,,,,,,,,))
ADD STATUS oStatus1 TO oDlg PARTS 200,800
oCombo_Anos:SetItem( Ascan(::aAnos,strzero(Year(Date()),4,0) ) )
ACTIVATE DIALOG oDlg CENTER
RETURN Nil