1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Gráfico

Discussão em 'Progress 4GL' iniciado por alexandrezakarias, Novembro 29, 2017.

  1. alexandrezakarias

    alexandrezakarias Membro Participativo

    Bom Dia, alguém tem algum exemplo contendo alguns comandos para geração de gráficos em Progress?

    Criei um aqui simples, mas preciso modificar a orientação da legenda do rótulo de dados, o tamanho do gráfico e também a posição dele dentro da planilha.

    Segue código que estou utilizando na qual já exibe um gráfico:
    ASSIGN vchChart = chWorkBook:Charts:Add()
    vchChart:ChartType = 51
    vchChart:HasTitle = TRUE
    vchChart:HasLegend = FALSE.
    vchChart:ChartTitle:Characters:Text = "RESUMO GERAL POR DEFEITOS":U.
    vchChart:SetSourceData(chWorkSheet:Range("B3:C":U + STRING(IDX - 3)), 2).
    vchChart:ApplyDataLabels(6,5).
    vchChart:Location(2, "RESGERAL":U).

    Então se alguém tiver algum manual contendo os comandos para gráfico, agradeceria, ou então, que pudessem me explicar como ajustar aí em cima para que a legenda do rótulo de dados não fique em 45º e sim em 90º, como se ajusta o tamanho do gráfico dentro da planilha e como se ajusta a posição dele, agradeço! Obrigado!!!
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Esses são metodos da minha rotina de planilha que gera grafico, ve se tem alguma coisa que te ajuda ai ....

    Código:
            method public void newGrafico():
                empty temp-table graficos.
                createTabelaGraficos().
            end method.
    
            method public void addSerie(nome as character, rangeValues as character, rangeXValues as character):
                define variable contador as integer no-undo.
                assign contador = 1.
                for last graficos no-lock:
                    assign contador = sequenciaSerie + 1.
                end.
                create graficos.
                assign graficos.sequenciaSerie = contador
                       graficos.name           = nome
                       graficos.rangeValues    = rangeValues
                       graficos.rangeXValues   = rangeXValues.
            end method.
    
            method public void createGrafico(posX as decimal, posY as decimal, Largura as decimal, altura as decimal, tipoGrafico as character, titulo as character):
                createGrafico(posX, posY, Largura, altura, tipoGrafico, titulo, no).
            end method.
    
            method public void createGrafico(posX as decimal, posY as decimal, Largura as decimal, altura as decimal, tipoGrafico as character, titulo as character, applyDataLabels as logical):
                define variable rangeName     as com-handle no-undo.
                define variable rangeValues   as com-handle no-undo.
                define variable rangeXValues  as com-handle no-undo.
                define variable contadorSerie as integer    no-undo.
    
                excel:ActiveWorkBook:ActiveSheet:ChartObjects:add(posX, posY, largura, altura):Activate.
                excel:ActiveChart:chartType = getTipoGrafico(tipoGrafico).
                excel:ActiveChart:hasTitle  = yes.
                excel:ActiveChart:ChartTitle:text = titulo.
    
                assign contadorSerie = 0.
                for each graficos no-lock:
                    assign rangeName    = excel:ActiveWorkBook:ActiveSheet:range(graficos.name).
                    assign rangeValues  = excel:ActiveWorkBook:ActiveSheet:range(graficos.rangeValues).
                    assign rangeXValues = excel:ActiveWorkBook:ActiveSheet:range(graficos.rangeXValues).
                    excel:ActiveChart:SeriesCollection:NewSeries.
                    excel:ActiveChart:SeriesCollection(graficos.sequenciaSerie):name    = rangeName.
                    excel:ActiveChart:SeriesCollection(graficos.sequenciaSerie):values  = rangeValues.
                    excel:ActiveChart:SeriesCollection(graficos.sequenciaSerie):XValues = rangeXValues.
                    if applyDataLabels then excel:ActiveChart:SeriesCollection(graficos.sequenciaSerie):HasDataLabels = true.
                    release object rangeName.
                    release object rangeValues.
                    release object rangeXValues.
                    assign contadorSerie = contadorSerie + 1.
                end.
                if contadorSerie = 1 then excel:ActiveChart:hasLegend = false.
            end method.
    
            method public integer getTipoGrafico(nome as character):
                for first tiposGrafico no-lock
                    where tiposGrafico.nome = nome:
                    return tiposGrafico.codigo.
                end.
                error:throwException('Planilha','Erro tipo de Grafico','Tipo de grafico informado não encontrado').
            end method.
    
            method private void createTabelaGraficos():
                empty temp-table tiposGrafico.
                gravarTipoGrafico('xl3DArea'                  , -4098, 'Area 3D').
                gravarTipoGrafico('xl3DAreaStacked'           , 78   , 'Area sobreposta 3D').
                gravarTipoGrafico('xl3DAreaStacked100'        , 79   , 'Area 100% sobreposta').
                gravarTipoGrafico('xl3DBarClustered'          , 60   , 'Barra agrupada 3D').
                gravarTipoGrafico('xl3DBarStacked'            , 61   , 'Barra sobreposta 3D').
                gravarTipoGrafico('xl3DBarStacked100'         , 62   , 'Barra 100% sobreposta 3D').
                gravarTipoGrafico('xl3DColumn'                , -4100, 'Coluna 3D').
                gravarTipoGrafico('xl3DColumnClustered'       , 54   , 'Coluna agrupada 3D').
                gravarTipoGrafico('xl3DColumnStacked'         , 55   , 'Coluna sobreposta 3D').
                gravarTipoGrafico('xl3DColumnStacked100'      , 56   , 'Coluna 100% sobreposta 3D').
                gravarTipoGrafico('xl3DLine'                  , -4101, 'Linha 3D').
                gravarTipoGrafico('xl3DPie'                   , -4102, 'Pizza 3D').
                gravarTipoGrafico('xl3DPieExploded'           , 70   , 'Pizza destacada 3D').
                gravarTipoGrafico('xlArea'                    , 1    , 'Area').
                gravarTipoGrafico('xlAreaStacked'             , 76   , 'Area Sobreposta').
                gravarTipoGrafico('xlAreaStacked100'          , 77   , 'Area 100% sobreposta').
                gravarTipoGrafico('xlBarClistered'            , 57   , 'Barra Agrupada').
                gravarTipoGrafico('xlBarOfPie'                , 71   , 'Barra de pizza').
                gravarTipoGrafico('xlBarStacked'              , 58   , 'Barra sobreposta').
                gravarTipoGrafico('xlBarStacked100'           , 59   , 'Barra 100% sobreposta').
                gravarTipoGrafico('xlBubble'                  , 15   , 'Bolha').
                gravarTipoGrafico('xlBubble3DEffect'          , 87   , 'Bolha com efeitos 3D').
                gravarTipoGrafico('xlColumnClustered'         , 51   , 'Coluna agrupada').
                gravarTipoGrafico('xlColumnStacked'           , 52   , 'Coluna sobreposta').
                gravarTipoGrafico('xlColumnStacked100'        , 53   , 'Coluna 100% sobreposta').
                gravarTipoGrafico('xlConeBarClustered'        , 102  , 'Barra conica agrupada').
                gravarTipoGrafico('xlConebarStacked'          , 103  , 'Barra conica sobreposta').
                gravarTipoGrafico('xlConeBarStacked100'       , 104  , 'Barra conica 100% sobreposta').
                gravarTipoGrafico('xlConeCol'                 , 105  , 'Coluna conica 3D').
                gravarTipoGrafico('xlConeColClustered'        , 99   , 'Coluna conica agrupada').
                gravarTipoGrafico('xlConeColStacked'          , 100  , 'Coluna conica sobreposta').
                gravarTipoGrafico('xlConeColStacked100'       , 101  , 'Coluna conica 100% sobreposta').
                gravarTipoGrafico('xlCylinderBarClustered'    , 95   , 'Barra cilindrica agrupada').
                gravarTipoGrafico('xlCylinderBarStacked'      , 96   , 'Barra cilindrica sobreposta').
                gravarTipoGrafico('xlCylinderBarStacked100'   , 97   , 'Barra cilindrica 100% sobreposta').
                gravarTipoGrafico('xlCylinderCol'             , 98   , 'Coluna cilindrica 3D').
                gravarTipoGrafico('xlCylinderColClustered'    , 92   , 'Coluna conica agrupada').
                gravarTipoGrafico('xlCylinderColStacked'      , 93   , 'Coluna conica sobreposta').
                gravarTipoGrafico('xlCylinderColStacked100'   , 94   , 'Coluna cilindrica 100% sobreposta').
                gravarTipoGrafico('xlDoughnut'                , -4120, 'Rosca').
                gravarTipoGrafico('xlDoughnutExploded'        , 80   , 'Rosca destacada').
                gravarTipoGrafico('xlLine'                    , 4    , 'Linha').
                gravarTipoGrafico('xlLineMarkers'             , 65   , 'Linha com marcadores').
                gravarTipoGrafico('xlLineMarkersStacked'      , 66   , 'Linhas sobrepostas com Marcadores').
                gravarTipoGrafico('xlLineMarkersStacked100'   , 67   , 'Linha 100% sobreposta com marcadores').
                gravarTipoGrafico('xlLineStacked'             , 63   , 'Linhas sobrepostas').
                gravarTipoGrafico('xlLineStacked100'          , 64   , 'Linha 100% sobreposta').
                gravarTipoGrafico('xlPie'                     , 5    , 'Pizza').
                gravarTipoGrafico('xlPieExploded'             , 69   , 'Pizza destacada').
                gravarTipoGrafico('xlPieOfPie'                , 68   , 'Pizza de pizza').
                gravarTipoGrafico('xlPyramidBarClustered'     , 109  , 'Barra piramidal agrupada').
                gravarTipoGrafico('xlPyramidBarStacked'       , 110  , 'Barras piramidais sobrepostas').
                gravarTipoGrafico('xlPyramidBarStacked100'    , 111  , 'Barra piramidal 100% sobreposta').
                gravarTipoGrafico('xlPyramidCol'              , 112  , 'Colunas Piramidais 3D').
                gravarTipoGrafico('xlPyramidColClustered'     , 106  , 'Colunas piramideis agrupadas').
                gravarTipoGrafico('xlPyramidColStacked'       , 107  , 'Colunas piramidais sobrepostas').
                gravarTipoGrafico('xlPyramidColStacked100'    , 108  , 'Colunas piramidais 100% sobrepostas').
                gravarTipoGrafico('xlRadar'                   , -4151, 'Radar').
                gravarTipoGrafico('xlRadarFilled'             , 82   , 'Radar preenchido').
                gravarTipoGrafico('xlRadarMarkers'            , 81   , 'Radar com marcadores de dados').
                gravarTipoGrafico('xlStockHLC'                , 88   , 'Alta-Baixa-Fechamento').
                gravarTipoGrafico('xlStockOHLC'               , 89   , 'Abertura-Alta-Baixa-Fechamento').
                gravarTipoGrafico('xlStockVHLC'               , 90   , 'Volume-Alta-Baixa-Fechamento').
                gravarTipoGrafico('xlStockVOHLC'              , 91   , 'Volume-Abertura-Alta-Baixa-Fechamento').
                gravarTipoGrafico('xlSurface'                 , 83   , 'Superficie 3D').
                gravarTipoGrafico('xlSurfaceTopView'          , 85   , 'Superficie (vista de cima)').
                gravarTipoGrafico('xlSurfaceTopViewWireframe' , 86   , 'Superficie (esboco da vista de cima)').
                gravarTipoGrafico('xlSurfaceWireframe'        , 84   , 'Superficie 3D (esboco)').
                gravarTipoGrafico('xlXYScatter'               , -4169, 'Dispersão').
                gravarTipoGrafico('xlXYScatterLines'          , 74   , 'Dispersão com linhas').
                gravarTipoGrafico('xlXYScatterLinesNoMarkers' , 75   , 'Dispersão com linhas e sem marcadores de dados').
                gravarTipoGrafico('xlXYScatterSmooth'         , 72   , 'Dispersão com linhas ajustadas').
                gravarTipoGrafico('xlXYScatterSmoothNoMarkers', 73   , 'Dispersao com linhas ajustadas e sem marcadores de dados').
            end method.
    
            method private void gravarTipoGrafico(nome as character, codigo as integer, descricao as character):
                create tiposGrafico.
                assign tiposGrafico.nome      = nome
                       tiposGrafico.codigo    = codigo
                       tiposGrafico.descricao = descricao.
            end method.
    
  3. alexandrezakarias

    alexandrezakarias Membro Participativo

    Ajudou sim! muito obrigado!

    Abrass!

Compartilhe esta Página