| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Paskoto Novato

Registrado: Terça-Feira, 28 de Agosto de 2012 Mensagens: 15
|
Enviada: Seg Jul 22, 2013 3:08 pm Assunto: Ajuda Grafico de Linha |
|
|
Fala Galera....
estou fazendo um grafico de linha que vai exibir as compras por mes de cada categoria de clientes
X - vai ficar os valores
Y - vai ficar MES/Ano (que é dinamico cfme o usuario escolher)
e cada linha vai representar uma categoria
tenho os dados em uma tabela master que contem as categorias e uma tabela slave que contem ano/mes e valor
alguem pode me dar uma luz de como faço o grafico corretamente.
| Código: | while not MASTER.Eof do
begin
//Grafico de Pizza
if IsPizza then
begin
Color := RGB(Random(256), Random(256), Random(256));
chtPizza.Series[0].Add(MASTER.FieldByName('VRTOTAL').AsCurrency,MASTER.FieldByName('NOME').AsString,Color)
end
else
//Grafico de Linha
begin
//Da um titulo pra Serie2
if I = 2 then
(FindComponent('Series'+IntToStr(i)) As TLineSeries).Title := MASTER.FieldByName('CATEGORIA').AsString
else
begin
//Cria as outras series dinamicamente que podem ir de 1 a 11 dependendo do periodo que o user selecionar
chtLinha.AddSeries(CloneChartSeries(Series2));
//Passa o titulo pras novas series cfme a categoria
(FindComponent('Series'+IntToStr(i)) As TLineSeries).Title := MASTER.FieldByName('CATEGORIA').AsString;
//pega uma cor random para o grafico
Color := RGB(Random(256), Random(256), Random(256));
(FindComponent('Series'+IntToStr(i)) As TLineSeries).Color := Color;
end;
//Seta a tabela em orde de CATEGORIA/ANOMES
SLAVE.SetOrder(1);
//Vai no primeiro registro
SLAVE.First;
//Acha o primeiro registro correspondente a categoria da MASTER
DM.Seek(SLAVE,MASTER.FieldByName('CATEGORIA').AsString);
//Enquanto nao for fim de arquivo e a categoria for a mesma continua
while not SLAVE.Eof and
(SLAVE.FieldByName('CATEGORIA').AsString = MASTER.FieldByName('CATEGORIA').AsString) do
begin
{
Esse foi um teste que em fiz
//Se for a primeira serie add normal com ano e mes + os valores
if i = 2 then
(FindComponent('Series'+IntToStr(i)) As TLineSeries).Add(SLAVE.FieldByName('VALOR').AsCurrency,SLAVE.FieldByName('ANOMES').AsString)
else
//senao add somente o Y que seriam os valores assumindo que ele iria pegar os meses ja adcionados no anterior
(FindComponent('Series'+IntToStr(i)) As TLineSeries).AddY(SLAVE.FieldByName('VALOR').AsCurrency,SLAVE.FieldByName('ANOMES').AsString);
}
(FindComponent('Series'+IntToStr(i)) As TLineSeries).Add(SLAVE.FieldByName('VALOR').AsCurrency,SLAVE.FieldByName('ANOMES').AsString)
SLAVE.Next;
end;
Inc(I,1);
end;
MASTER.Next;
end; |
|
|
| Voltar ao Topo |
|
 |
cyberdisk Colaborador

Registrado: Domingo, 4 de Julho de 2010 Mensagens: 2391 Localização: São José dos Campos - SP
|
Enviada: Seg Jul 22, 2013 6:36 pm Assunto: |
|
|
procure por Tchart na pasta Demo do delphi
abraço _________________ O conhecimento abre muitas portas |
|
| Voltar ao Topo |
|
 |
Paskoto Novato

Registrado: Terça-Feira, 28 de Agosto de 2012 Mensagens: 15
|
Enviada: Ter Jul 23, 2013 9:20 am Assunto: |
|
|
| cyberdisk escreveu: | procure por Tchart na pasta Demo do delphi
abraço |
Eu ja estou imprimindo o grafico, só nao estou conseguindo organizar as informações
X -> Valores
Y -> Mes/Ano
o grafico mostra as informações de uma maneira errada aos valores e nao sei porque, eu devo estar setando alguma configuração errada.
http://img199.imageshack.us/img199/6507/99d1.JPG
esta na imagen acima eu coloquei na mao, mais em codigo nao consiguo fazer a mesma coisa |
|
| Voltar ao Topo |
|
 |
cyberdisk Colaborador

Registrado: Domingo, 4 de Julho de 2010 Mensagens: 2391 Localização: São José dos Campos - SP
|
|
| Voltar ao Topo |
|
 |
Paskoto Novato

Registrado: Terça-Feira, 28 de Agosto de 2012 Mensagens: 15
|
Enviada: Qua Jul 24, 2013 7:44 am Assunto: |
|
|
cyberdisk me parece a unit do teeChart |
|
| Voltar ao Topo |
|
 |
|