Classe: TMSGraphicCria um objeto para apresentar gráfico.
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. | | |
oObjeto() - Retorna o objeto criado.
oGraphic := TMSGraphic():New( 01,01,oDlg,,,RGB(239,239,239),260,184) AddAdiciona 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. | | | nVal | Numérico | Indica o valor do item. | | | cLegend | Caracter | Indica a legenda do item. | | | nColor | Numérico | Indica a cor do item. | | |
nSerie := oGraphic:CreateSerie( 10 )oGraphic:Add(nSerie, 200, 'Item 01', CLR_HGREEN ) CreateSerieCria 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. | | | 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.). | | |
nRet() - Retorna a quantidade de séries criadas.
nSerie := oGraphic:CreateSerie( 10 ) DelSerieExclui 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. | | |
lRet(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" #include "MSGRAPHI.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)TMSGraphic(): SaveToBMP (Obsoleto) ( [ cBmpName], [ cPathToWrite] ) --> lRet Nome | Tipo | Descrição | Obrigatório | Referência | cBmpName | Caracter | Indica o nome da imagem que será salva. | | | cPathToWrite | Caracter | Indica o diretório, no servidor, onde a imagem será armazenada. | | |
lRet(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\') SaveToImageTMSGraphic(): SaveToImage ( [ cBmpName], [ cPathToWrite], [ cTypeImage] ) --> lRet Nome | Tipo | Descrição | Obrigatório | Referência | cBmpName | Caracter | Indica o nome da imagem que será salva. | | | cPathToWrite | Caracter | Indica o diretório, no servidor, onde a imagem será armazenada. | | | cTypeImage | Caracter | Indica o tipo (formato) da imagem. O formato padrão é JPEG (Joint Photographic Group). | | |
lRet(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" ) SetLegenPropDefine 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. | | | nColor | Numérico | Indica a cor da legenda. | | | nStyle | Numérico | Indica o estilo da legenda. | | | lVisible | Lógico | Indica se o título será visível (.T.) ou invisível (.F.). | | |
oGraphic:SetLegenProp(GRP_SCRRIGHT, CLR_LIGHTGRAY, GRP_AUTO,.T.) SetMarginsDefine 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. | | | nLeft | Numérico | Indica a posição em relação à esquerda. | | | nBottom | Numérico | Indica a posição em relação ao rodapé. | | | nRight | Numérico | Indica a posição em relação à direita. | | |
oGraphic:SetMargins(2,6,6,6) SetRangeYPermite 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 | X | |
Este método não tem efeito para gráficos do tipo GRP_PIE. oGraphic:SetRangeY(0, 300, 50) SetTitleDefine 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. | | | nAligment | Numérico | Indica o alinhamento do título no gráfico, sendo: A_LEFTJUST 1, A_RIGHTJUS 2, A_CENTER 3. | | | 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 ) ZoomInPermite aumentar (ZoomIn) uma área interna (+).TMSGraphic(): ZoomIn ( ) --> ZoomOutPermite diminuir (ZoomOut) uma área externa (-).TMSGraphic(): ZoomOut ( ) --> Propriedade | Descrição | Tipo | l3D | Indica se, verdadeiro (.T.), o gráfico é 3D - tridimensional; caso contrário, falso (.F.). | 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 |
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. #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 Exemplo da classe TMSGraphic Image Removed Image Added Microsiga Protheus 8.11 , Microsiga Protheus 11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server |