Escolar Documentos
Profissional Documentos
Cultura Documentos
Select
select cd_receber, cd_base, nm_base, nm_cidade, cd_titulo_portador,
cd_titulo_carteira, cd_titulo_tipo, cd_loja, cd_caixa, r.dt_inc,
cast(vl_valor as float) as vl_valor
from tb_receber r
inner join tb_base b on (b.CD_BASE = r.CD_BASE_CLIENTE)
inner join tb_cidade c on (c.cd_cidade = b.CD_CIDADE)
where r.dt_inc > '04/15/2007'
2386 registros
cxGrid
help.market.com.br/desenvolvimento/montando_graficos_na_quantumgr.htm 1/6
29/08/22, 14:07 Sistemas > Gestor > Montando gráficos na QuantumGrid 6
Clique com o botão direito sobre o cxGrid1 (verdinho) e escolha Add Level,
no cxGridLevel2 clique com botão direito e selecione Create View > DB Chart
Clique novamente no cxGrid, em propriedades mude:
RootLevelOptions.DetailTabPosition = dtpTop
Em cada Level, dê um caption para ele.
Como fica agora:
Modifique as seguintes propriedades do cxGrid1DBChartView:
help.market.com.br/desenvolvimento/montando_graficos_na_quantumgr.htm 2/6
29/08/22, 14:07 Sistemas > Gestor > Montando gráficos na QuantumGrid 6
help.market.com.br/desenvolvimento/montando_graficos_na_quantumgr.htm 3/6
29/08/22, 14:07 Sistemas > Gestor > Montando gráficos na QuantumGrid 6
Na aba "Series" você vai indicar qual campo (geralmente campo valor) será usado para "povoar" o gráfico. ATENÇÃO: Neste caso a
cxGrid não aceita campos do tipo BCDField, apenas inteiros e float. - É um bug que já foi reportado para o suporte da Developer
Express, e eles estão resolvendo (https://www.devexpress.com/Support/Center/ViewIssue.aspx?issueid=CB50912)
Pressione "Add" e coloque o campo VL_VALOR.
Na aba "DataGroups" você vai indicar quantos níveis e a sequência que o usuário pode clicar nas "barras". No nosso exemplo
criamos 3: Loja, Cidade e Nome, sendo que para cada um definimos um DisplayText.
Após fazer isso a tela aparece assim:
help.market.com.br/desenvolvimento/montando_graficos_na_quantumgr.htm 4/6
29/08/22, 14:07 Sistemas > Gestor > Montando gráficos na QuantumGrid 6
try
if ADataGroupIndex = -1 then
cxGrid1DBTableView1.Controller.SelectAll
else
begin
cxGrid1DBTableView1.Controller.ClearSelection;
for I := cxGrid1DBTableView1.Controller.FocusedRowIndex + 1 to cxGrid1DBTableView1.ViewData.RowCount - 1 do
begin
ARow := cxGrid1DBTableView1.ViewData.Rows[I];
if ARow.Level = cxGrid1DBChartView.ActiveDataLevel then
begin
ARow.Focused := True;
ARow.Selected := True;
end
else
Break;
end;
end;
finally
cxGrid1DBTableView1.EndUpdate;
end;
end;
procedure TSampleForm.SynchronizeTableWithChart;
begin
UpdateTableGroupingAndColumnVisibility;
ShowTableActiveGroup;
end;
procedure TSampleForm.UpdateTableGroupingAndColumnVisibility;
var
I: Integer;
begin
cxGrid1DBTableView1.BeginUpdate;
try
cxGrid1DBTableView1.Controller.ClearGrouping;
for I := 0 to cxGrid1DBChartView.VisibleDataGroupCount - 1 do
GetColumnByChartItem(cxGrid1DBChartView.VisibleDataGroups[I]).GroupIndex := I;
for I := 0 to cxGrid1DBChartView.DataGroupCount - 1 do
GetColumnByChartItem(cxGrid1DBChartView.DataGroups[I]).Visible := cxGrid1DBChartView.DataGroups[I].Visible;
for I := 0 to cxGrid1DBChartView.SeriesCount - 1 do
GetColumnByChartItem(cxGrid1DBChartView.Series[I]).Visible := cxGrid1DBChartView.Series[I].Visible;
finally
cxGrid1DBTableView1.EndUpdate;
end;
end;
procedure TSampleForm.cxGrid1ActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
if ALevel = cxGrid1Level1 then
SynchronizeTableWithChart;
end;
Rode o programa e na aba dos gráficos clique na barra e veja como o sincronismo entre o grafico e o grid funcionam.
Mais
É possível criar gráficos dentro de grids (sub-level)
Veja o exemplo M:\LIB\D2006\Developer Express.VCL\ExpressQuantumGrid 6\Demos\Delphi\MasterDetailChartDemo
help.market.com.br/desenvolvimento/montando_graficos_na_quantumgr.htm 5/6
29/08/22, 14:07 Sistemas > Gestor > Montando gráficos na QuantumGrid 6
help.market.com.br/desenvolvimento/montando_graficos_na_quantumgr.htm 6/6