Skip to content

chart ChartCombo

Saulo Martins edited this page Jul 4, 2026 · 1 revision

ChartCombo — Combinação de Gráficos

Combina dois tipos de gráfico em uma mesma área de plotagem (ex: colunas + linha), com suporte a eixo secundário de valores (direita).
Elemento ECMA-376: c:plotArea com múltiplos filhos de tipos diferentes.

Não possui versão 3D. Chamar :Set3D() gera UserException.

Somente via instância direta:

Local oCombo := custom.excel.chart.ChartCombo():New(oExcel)

Herda os métodos de configuração (SetTitulo, SetLegenda, SetGrade, Insert) da classe base Chart.


Como funciona

O ChartCombo contém gráficos membros (objetos de qualquer tipo concreto como ChartBar, ChartLine, etc.) criados com New(Nil) (sem vínculo próprio ao Excel).
Cada membro é adicionado ao Combo com AddChart, informando se deve usar o eixo secundário (direita).

As séries são adicionadas diretamente nos membros (não no Combo).


Métodos específicos


AddChart

:AddChart(oChart, lEixoSecundario)
Adiciona um gráfico membro ao combo.

Parâmetro Tipo Descrição Obrigatório Obs
oChart objeto Instância de qualquer classe de gráfico criada com New(Nil) X
lEixoSecundario lógico .T. usa o eixo de valores secundário (direita) Default .F.

Retorno: objeto self (o Combo)


Exemplos

Colunas + Linha com eixo secundário:

// Membros criados com New(Nil) — sem vínculo direto ao Excel
Local oColunas := custom.excel.chart.ChartBar():New(Nil)
Local oLinha   := custom.excel.chart.ChartLine():New(Nil)

// Séries adicionadas nos membros
oColunas:AddSerie("Vendas",   "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oColunas:AddSerie("Meta",     "Dados!$C$2:$C$7", "Dados!$A$2:$A$7")
oLinha:AddSerie("Crescimento","Dados!$D$2:$D$7", "Dados!$A$2:$A$7")
oLinha:SetMarcador(.T.)

// Criação e configuração do combo
Local oCombo := custom.excel.chart.ChartCombo():New(oExcel)
oCombo:SetTitulo("Vendas e Crescimento")
oCombo:AddChart(oColunas, .F.)  // Eixo esquerdo (principal)
oCombo:AddChart(oLinha,   .T.)  // Eixo direito (secundário)
oCombo:Insert(1, 9, 20, 19)

Área + Linha (mesmo eixo):

Local oArea  := custom.excel.chart.ChartArea():New(Nil)
Local oLinha := custom.excel.chart.ChartLine():New(Nil)
oArea:AddSerie("Volume",    "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oLinha:AddSerie("Tendência","Dados!$C$2:$C$7", "Dados!$A$2:$A$7")

Local oCombo := custom.excel.chart.ChartCombo():New(oExcel)
oCombo:SetTitulo("Volume e Tendência")
oCombo:AddChart(oArea,  .F.)
oCombo:AddChart(oLinha, .F.) // Mesmo eixo
oCombo:Insert(1, 9, 16, 17)

Obs

  • Tipos de pizza (ChartPie, ChartDoughnut) não são compatíveis como membros de um combo.
  • O eixo secundário só é gerado quando pelo menos um membro tiver lEixoSecundario = .T..
  • A legenda é controlada pelo Combo, não pelos membros.

Clone this wiki locally