Classe: TMSGraphic
Cria um objeto para apresentar gráfico.
TSrvObject -> TControl -> TMSGraphic
New
Método construtor da classe.
TMSGraphic(): New ( [ nRow], [ nCol], [ oWnd], [ uParam4], [ uParam5], [ uParam6], [ nWidth], [ nHeight] ) --> oObjeto
Nome | Tipo | Descrição | Obrigatório | Referência |
nRow | Numérico | Indica a coordenada vertical em pixels. | ||
nCol | Numérico | Indica a coordenada horizontal em pixels. | ||
oWnd | Objeto | Indica a janela ou controle visual onde o objeto será criado. | ||
uParam4 | Nulo | Compatibilidade. | ||
uParam5 | Numérico | Compatibilidade. | ||
uParam6 | Numérico | Compatibilidade. | ||
nWidth | Numérico | Indica a largura em pixels do objeto. | ||
nHeight | Numérico | Indica a altura em pixels do objeto. |
- ()
- Retorna o objeto criado.
oGraphic := TMSGraphic():New( 01,01,oDlg,,,RGB(239,239,239),260,184)
Add
Adiciona um item no gráfico.
TMSGraphic(): Add ( [ nSerie], [ nVal], [ cLegend], [ nColor] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
nSerie | Numérico | Indica a série que será incluída no item. | X | |
nVal | Numérico | Indica o valor do item. | X | |
cLegend | Caracter | Indica a legenda do item. | ||
nColor | Numérico | Indica a cor do item. | X |
nSerie := oGraphic:CreateSerie( 10 )oGraphic:Add(nSerie, 200, 'Item 01', CLR_HGREEN )
CreateSerie
Cria uma série para o gráfico.
TMSGraphic(): CreateSerie ( [ nSerieType], [ cLegend], [ nDecimals], [ lShowValues] ) --> nRet
Nome | Tipo | Descrição | Obrigatório | Referência |
nSerieType | Numérico | Indica o tipo do gráfico, sendo: GRP_LINE 1, GRP_AREA 2, GRP_POINT 3, GRP_BAR 4, GRP_PIE 10. | X | |
cLegend | Caracter | Indica a legenda da série. | ||
nDecimals | Numérico | Indica o número de casas decimais dos valores. | ||
lShowValues | Lógico | Indica se, verdadeiro (.T.), os valores serão apresentados; caso contrário, falso (.F.). |
- ()
- Retorna a quantidade de séries criadas.
nSerie := oGraphic:CreateSerie( GRP_LINE )
nSerie := oGraphic:CreateSerie( GRP_AREA )
nSerie := oGraphic:CreateSerie( GRP_POINT)
nSerie := oGraphic:CreateSerie( GRP_BAR )
nSerie := oGraphic:CreateSerie( GRP_PIE )
nSerie := oGraphic:CreateSerie( 10 )
DelSerie
Exclui uma série do gráfico.
TMSGraphic(): DelSerie ( [ nSerie] ) --> lRet
Nome | Tipo | Descrição | Obrigatório | Referência |
nSerie | Numérico | Indica a série que será excluída. | X |
- (logico)
- Retorna verdadeiro (.T.), se a série for excluída com sucesso; caso contrário, retornará falso (.F.).
A TMSGraphic não permite a deleção e re-inserção de séries é necessário re-criar o objeto. No exemplo consta a forma correta para esta operação.
#include "Protheus.CH"
Function u_zzTMSGraphic()
Private nPt := 40
Private nPmdb := 60
DEFINE MSDIALOG oDlg TITLE "Exemplo TMSGraphic" FROM 180,180 TO 550,700 PIXEL
oGraphic := TMSGraphic():New( 35,01,oDlg,,,RGB(239,239,239),230,150)
oGraphic:SetMargins(2,6,6,6)
oGraphic:SetLegenProp(GRP_SCRRIGHT, CLR_LIGHTGRAY, GRP_AUTO,.T.)
nSerie := oGraphic:CreateSerie( GRP_PIE ) // GRP_PIE=10
oGraphic:Add(nSerie, nPt , 'Votos PT' , CLR_HGREEN )
oGraphic:Add(nSerie, nPmdb, 'Votos PMDB', CLR_HRED )
@ 5, 01 SAY "Digite os votos do PT " OF oDlg PIXEL
@ 20, 01 SAY "Digite os votos do PMDB" OF oDlg PIXEL
@ 5, 100 MSGET nPt OF oDlg PIXEL PICTURE "@E 9999,999"
@ 20, 100 MSGET nPMDB OF oDlg PIXEL PICTURE "@E 9999,999"
@ 5, 150 BUTTON "Atualiza" SIZE 40,14 OF oDlg PIXEL ACTION xAtualiza(@oGraphic, nPt, nPMDB)
ACTIVATE MSDIALOG oDlg CENTERED
Return
Static Function xAtualiza(oGraphic, nPt, nPMDB)
// Destroi e recria o objeto de grafico
// OBS: Necessário para manutenção de recursos do sistema
FreeObj(oGraphic)
oGraphic := TMSGraphic():New( 35,01,oDlg,,,RGB(239,239,239),230,150)
// Nao necessário pois o objeto foi recriado
//oGraphic:DelSerie(nSerie)
nSerie := oGraphic:CreateSerie( GRP_PIE ) // GRP_PIE=10
oGraphic:Add(nSerie, nPt , 'Votos PT', CLR_HGREEN )
oGraphic:Add(nSerie, nPMDB, 'Votos PMDB', CLR_HRED )
Return
oGraphic:DelSerie(nSerie)
SaveToBMP (Obsoleto)
Salva o gráfico atual, no formato Bitmap (*.BMP), no servidor.
TMSGraphic(): SaveToBMP (Obsoleto) ( [ cBmpName], [ cPathToWrite] ) --> lRet
Nome | Tipo | Descrição | Obrigatório | Referência |
cBmpName | Caracter | Indica o nome da imagem que será salva. | X | |
cPathToWrite | Caracter | Indica o diretório, no servidor, onde a imagem será armazenada. | X |
- (logico)
- Retorna verdadeiro (.T.), se a imagem for salva com sucesso; caso contrário, retornará falso (.F.).
A gravação em disco somente gerará um arquivo fiel à imagem representação do gráfico após o mesmo já ter sido exibido em tela.
Este método está obsoleto. Desta forma, recomendamos que utilize o método SaveToImage.
Para mais informações, consulte a documentação do método SaveToImage.
oGraphic:SaveToBMP('Grafico.bmp','\web\')
SaveToImage
Salva o gráfico atual, no formato pré-determinado, no servidor.
TMSGraphic(): SaveToImage ( [ cBmpName], [ cPathToWrite], [ cTypeImage] ) --> lRet
Nome | Tipo | Descrição | Obrigatório | Referência |
cBmpName | Caracter | Indica o nome da imagem que será salva. | X | |
cPathToWrite | Caracter | Indica o diretório, no servidor, onde a imagem será armazenada. | X | |
cTypeImage | Caracter | Indica o tipo (formato) da imagem. O formato padrão é JPEG (Joint Photographic Group). | X |
- (logico)
- Retorna verdadeiro (.T.), se a imagem for salva com sucesso; caso contrário, retornará falso (.F.).
Método disponível a partir da build 7.00.060906P.
A gravação em disco somente gerará um arquivo fiel à imagem representação do gráfico após o mesmo já ter sido exibido em tela.
oGraphic:SaveToImage( "Imagem.png","\web\","PNG" )
SetLegenProp
Define as propriedades da legenda.
TMSGraphic(): SetLegenProp ( [ nAlign], [ nColor], [ nStyle], [ lVisible] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
nAlign | Numérico | Indica o alinhamento da legenda, sendo: GRP_SCRTOP 1, GRP_SCRLEFT 2, GRP_SCRBOTTOM 3, GRP_SCRRIGHT 4. | X | |
nColor | Numérico | Indica a cor da legenda. | X | |
nStyle | Numérico | Indica o estilo da legenda. | X | |
lVisible | Lógico | Indica se o título será visível (.T.) ou invisível (.F.). | X |
oGraphic:SetLegenProp(GRP_SCRRIGHT, CLR_LIGHTGRAY, GRP_AUTO,.T.)
SetMargins
Define as margens (superior, inferior e laterais) do gráfico.
TMSGraphic(): SetMargins ( [ nTop], [ nLeft], [ nBottom], [ nRight] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
nTop | Numérico | Indica a posição em relação ao topo do gráfico. | X | |
nLeft | Numérico | Indica a posição em relação à esquerda. | X | |
nBottom | Numérico | Indica a posição em relação ao rodapé. | X | |
nRight | Numérico | Indica a posição em relação à direita. | X |
oGraphic:SetMargins(2,6,6,6)
SetRangeY
Permite definir um intervalo de valores para o eixo Y do gráfico.
TMSGraphic(): SetRangeY ( < nMin>, < nMax>, < nDelta> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
nMin | Numérico | Valor mínimo do intervalo para o eixo Y. | X | |
nMax | Numérico | Valor máximo do intervalo para o eixo Y. | X | |
nDelta | Numérico | Valor de incremento para o intervalo do eixo Y |
oGraphic:SetRangeY(0, 300, 50)
SetTitle
Define a posição do título no gráfico.
TMSGraphic(): SetTitle ( [ cTitle], [ cTitle2], [ nColor], [ nAligment], [ lFoot] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
cTitle | Caracter | Indica o primeiro título do gráfico. | ||
cTitle2 | Caracter | Indica o segundo título do gráfico. | ||
nColor | Numérico | Indica a cor do título. | X | |
nAligment | Numérico | Indica o alinhamento do título no gráfico, sendo: A_LEFTJUST 1, A_RIGHTJUS 2, A_CENTER 3. | X | |
lFoot | Lógico | Indica se, verdadeiro (.T.), terá título no rodapé do gráfico; caso contrário, falso (.F.). |
oGraphic:SetTitle('Titulo do Grafico', "Data:"+dtoc(Date()), CLR_HRED, A_LEFTJUST, GRP_TITLE )
ZoomIn
Permite aumentar (ZoomIn) uma área interna (+).
TMSGraphic(): ZoomIn ( ) -->
oGraphic:ZoomIn()
ZoomOut
Permite diminuir (ZoomOut) uma área externa (-).
TMSGraphic(): ZoomOut ( ) -->
oGraphic:ZoomOut()
Propriedade | Descrição | Tipo |
l3D | Indica se, verdadeiro (.T.), o gráfico é 3D - tridimensional; caso contrário, falso (.F.). Esta propriedade não é suportada pelo SmartClient HTML. | Lógico |
lAxisVisib | Indica se, verdadeiro (.T.), exibe os eixos do gráfico; caso contrário, falso (.F.). Esta opção esta desabilitada quando a série do Gráfico for GRP_PIE(Pizza). | Lógico |
Observações
- Objetos da classe TMSGraphic necessitam obrigatoriamente de um cliente gráfico (totvssmartclient e/ou totvssmartclientativex) e não tem efeito se executado dentro de job.
- No SmartClient HTML, os gráficos serão sempre desenhados em 2D, ignorando a propriedade l3D
#INCLUDE "TOTVS.CH" #INCLUDE "MSGRAPHI.CH" USER FUNCTION TMSGraphic() DEFINE DIALOG oDlg TITLE "Exemplo TMSGraphic" FROM 180,180 TO 550,700 PIXEL // Cria o gráfico oGraphic := TMSGraphic():New( 01,01,oDlg,,,RGB(239,239,239),260,184) oGraphic:SetTitle('Titulo do Grafico', "Data:" + dtoc(Date()), CLR_HRED, A_LEFTJUST, GRP_TITLE ) oGraphic:SetMargins(2,6,6,6) oGraphic:SetLegenProp(GRP_SCRRIGHT, CLR_LIGHTGRAY, GRP_AUTO, .T.) // Itens do Gráfico nSerie := oGraphic:CreateSerie( GRP_PIE ) // GRP_PIE=10 oGraphic:Add(nSerie, 200, 'Item 01', CLR_HGREEN ) oGraphic:Add(nSerie, 180, 'Item 02', CLR_HRED) oGraphic:Add(nSerie, 210, 'Item 03', CLR_YELLOW ) ACTIVATE DIALOG oDlg CENTERED RETURN