Fórum Gerar grafico em timage #559511
23/07/2016
0
Bom dia a todos estou com um problema que ja não sei mais o que fazer pra resolve-lo.
O problema é so seguinte tenho uma querie que totaliza uma enquete omeu problema tano seguinte
primeiro a querie gera resultados assim
nome enquete total excelente bom ruim
pergunta1 3 1 1 1
pergunta2 3 2 1 0
e por ai vai posso ter até 10 perguntas por enquete e posso ter 3 totalizações por pergunta que podem ser excelente, bom e ruim, quando faço em vcl usando ttdbchart funciona beleza porem quando tento gerar o gráfico em runtime(pq o projeto é intraweb) e intraweb não tem componente pra gráfico então preciso gera-lo dinamicamente e esta dando esse problema pois o graficoé gerado direito mainha tinha que ter até 10 conjuntos de 3 colunas indicando excelente bom ou ruim mas ele para na primeira pergunta tenho a impressão que ´problema ta na geração do gráfico no timage alguém poderia me ajudar
segue abaixo sintaxe
procedure TF_PainelGerencial.btngerarClick(Sender: TObject);
var
Series1: TBarSeries;
Series2: TBarSeries;
Series3: TBarSeries;
Chart1 : TDbChart;
begin
try
DsOrigem.DataSet.Close;
tclientdataset(DsOrigem.DataSet).params[0].AsInteger := StrToInt(copy(cbxpesquisa.Text,0,8));//colocar cnpj dinamico
DsOrigem.DataSet.Open;
tclientdataset(DsOrigem.DataSet).First;
tclientdataset(DsRElat.DataSet).EmptyDataSet;
while not tclientdataset(DsOrigem.DataSet).Eof do
begin
tclientdataset(DsRElat.DataSet).Insert;
tclientdataset(DsRElat.DataSet).FieldByName('PERGUNTA').AsString := tclientdataset(DsOrigem.DataSet).FieldByName('PERGUNTA').AsString;
tclientdataset(DsRElat.DataSet).FieldByName('QTD_TOTAL').AsCurrency := tclientdataset(DsOrigem.DataSet).FieldByName('QTDTOTAL').AsCurrency;
tclientdataset(DsRElat.DataSet).FieldByName('EXCELENTE').AsInteger := tclientdataset(DsOrigem.DataSet).FieldByName('EXCELENTE').AsInteger;
tclientdataset(DsRElat.DataSet).FieldByName('BOM').AsInteger := tclientdataset(DsOrigem.DataSet).FieldByName('BOM').AsInteger;
tclientdataset(DsRElat.DataSet).FieldByName('RUIM').AsInteger := tclientdataset(DsOrigem.DataSet).FieldByName('RUIM').AsInteger;
tclientdataset(DsOrigem.DataSet).Next;
tclientdataset(DsRElat.DataSet).Post;
end;
Chart1 := tdbChart.Create(self);
Series1 := TBarSeries.Create(Self);
Series2 := TBarSeries.Create(Self);
Series3 := TBarSeries.Create(Self);
with Chart1 do
begin
Name := 'Chart1';
Parent := Self;
Left := 48;
Top := 32;
Width := 649;
Height := 262;
Title.Text.Clear;
Title.Text.Add('TDBChart');
Legend.Title.Text.Clear;
Legend.LegendStyle := lsSeries;
Legend.Title.Text.Add('Pesquisa de Opinião');
TabOrder := 1;
Anchors := [akLeft, akTop, akRight, akBottom];
ColorPaletteIndex := 13;
end;
with Series1 do
begin
Name := 'Series1';
ParentChart := Chart1;
DataSource := DsRElat;
Title := 'Excelente';
XLabelsSource := 'PERGUNTA';
//Gradient.Direction = gdLeftRight
XValues.Name := 'X';
XValues.Order := loAscending;
YValues.Name := 'Bar';
YValues.Order := loNone;
YValues.ValueSource := 'EXCELENTE';
Marks.Frame.Visible:= false;
Marks.Style := smsValue;
IWImage1.Picture.Bitmap.Assign(Chart1.TeeCreateBitmap(clWebWHITE,
Rect(0,0,IWImage1.Width, IWImage1.Height)));
end;
with Series2 do
begin
Name := 'Series2';
ParentChart := Chart1;
DataSource := DsRElat;
// SeriesColor := clAqua;
Title := 'Bom';
XLabelsSource := 'PERGUNTA';
// Gradient.Direction.gdLeftRight;
XValues.Name := 'X';
XValues.Order := loAscending;
YValues.Name := 'Bar';
YValues.Order := loNone;
YValues.ValueSource := 'BOM';
Marks.Frame.Visible:= false;
Marks.Style := smsValue;
// Title := 'Bom';
IWImage1.Picture.Bitmap.Assign(Chart1.TeeCreateBitmap(clWebWHITE,
Rect(1,0,IWImage1.Width, IWImage1.Height)));
end;
with Series3 do
begin
Name := 'Series3';
ParentChart := Chart1;
DataSource := DsRElat;
// SeriesColor = clRed;
Title := 'Ruim';
XLabelsSource := 'PERGUNTA';
//Gradient.Direction := gdLeftRight
XValues.Name := 'X';
XValues.Order := loAscending;
YValues.Name := 'Bar';
YValues.Order := loNone;
YValues.ValueSource := 'RUIM';
Marks.Frame.Visible:= false;
Marks.Style := smsValue;
// Title := 'Ruim';
IWImage1.Picture.Bitmap.Assign(Chart1.TeeCreateBitmap(clWebWHITE,
Rect(2,0,IWImage1.Width, IWImage1.Height)));
end;
finally
FreeAndNil(Chart1);
end;
alguém poderia me dar uma força com esse problema
desde ja grato pela ajuda
O problema é so seguinte tenho uma querie que totaliza uma enquete omeu problema tano seguinte
primeiro a querie gera resultados assim
nome enquete total excelente bom ruim
pergunta1 3 1 1 1
pergunta2 3 2 1 0
e por ai vai posso ter até 10 perguntas por enquete e posso ter 3 totalizações por pergunta que podem ser excelente, bom e ruim, quando faço em vcl usando ttdbchart funciona beleza porem quando tento gerar o gráfico em runtime(pq o projeto é intraweb) e intraweb não tem componente pra gráfico então preciso gera-lo dinamicamente e esta dando esse problema pois o graficoé gerado direito mainha tinha que ter até 10 conjuntos de 3 colunas indicando excelente bom ou ruim mas ele para na primeira pergunta tenho a impressão que ´problema ta na geração do gráfico no timage alguém poderia me ajudar
segue abaixo sintaxe
procedure TF_PainelGerencial.btngerarClick(Sender: TObject);
var
Series1: TBarSeries;
Series2: TBarSeries;
Series3: TBarSeries;
Chart1 : TDbChart;
begin
try
DsOrigem.DataSet.Close;
tclientdataset(DsOrigem.DataSet).params[0].AsInteger := StrToInt(copy(cbxpesquisa.Text,0,8));//colocar cnpj dinamico
DsOrigem.DataSet.Open;
tclientdataset(DsOrigem.DataSet).First;
tclientdataset(DsRElat.DataSet).EmptyDataSet;
while not tclientdataset(DsOrigem.DataSet).Eof do
begin
tclientdataset(DsRElat.DataSet).Insert;
tclientdataset(DsRElat.DataSet).FieldByName('PERGUNTA').AsString := tclientdataset(DsOrigem.DataSet).FieldByName('PERGUNTA').AsString;
tclientdataset(DsRElat.DataSet).FieldByName('QTD_TOTAL').AsCurrency := tclientdataset(DsOrigem.DataSet).FieldByName('QTDTOTAL').AsCurrency;
tclientdataset(DsRElat.DataSet).FieldByName('EXCELENTE').AsInteger := tclientdataset(DsOrigem.DataSet).FieldByName('EXCELENTE').AsInteger;
tclientdataset(DsRElat.DataSet).FieldByName('BOM').AsInteger := tclientdataset(DsOrigem.DataSet).FieldByName('BOM').AsInteger;
tclientdataset(DsRElat.DataSet).FieldByName('RUIM').AsInteger := tclientdataset(DsOrigem.DataSet).FieldByName('RUIM').AsInteger;
tclientdataset(DsOrigem.DataSet).Next;
tclientdataset(DsRElat.DataSet).Post;
end;
Chart1 := tdbChart.Create(self);
Series1 := TBarSeries.Create(Self);
Series2 := TBarSeries.Create(Self);
Series3 := TBarSeries.Create(Self);
with Chart1 do
begin
Name := 'Chart1';
Parent := Self;
Left := 48;
Top := 32;
Width := 649;
Height := 262;
Title.Text.Clear;
Title.Text.Add('TDBChart');
Legend.Title.Text.Clear;
Legend.LegendStyle := lsSeries;
Legend.Title.Text.Add('Pesquisa de Opinião');
TabOrder := 1;
Anchors := [akLeft, akTop, akRight, akBottom];
ColorPaletteIndex := 13;
end;
with Series1 do
begin
Name := 'Series1';
ParentChart := Chart1;
DataSource := DsRElat;
Title := 'Excelente';
XLabelsSource := 'PERGUNTA';
//Gradient.Direction = gdLeftRight
XValues.Name := 'X';
XValues.Order := loAscending;
YValues.Name := 'Bar';
YValues.Order := loNone;
YValues.ValueSource := 'EXCELENTE';
Marks.Frame.Visible:= false;
Marks.Style := smsValue;
IWImage1.Picture.Bitmap.Assign(Chart1.TeeCreateBitmap(clWebWHITE,
Rect(0,0,IWImage1.Width, IWImage1.Height)));
end;
with Series2 do
begin
Name := 'Series2';
ParentChart := Chart1;
DataSource := DsRElat;
// SeriesColor := clAqua;
Title := 'Bom';
XLabelsSource := 'PERGUNTA';
// Gradient.Direction.gdLeftRight;
XValues.Name := 'X';
XValues.Order := loAscending;
YValues.Name := 'Bar';
YValues.Order := loNone;
YValues.ValueSource := 'BOM';
Marks.Frame.Visible:= false;
Marks.Style := smsValue;
// Title := 'Bom';
IWImage1.Picture.Bitmap.Assign(Chart1.TeeCreateBitmap(clWebWHITE,
Rect(1,0,IWImage1.Width, IWImage1.Height)));
end;
with Series3 do
begin
Name := 'Series3';
ParentChart := Chart1;
DataSource := DsRElat;
// SeriesColor = clRed;
Title := 'Ruim';
XLabelsSource := 'PERGUNTA';
//Gradient.Direction := gdLeftRight
XValues.Name := 'X';
XValues.Order := loAscending;
YValues.Name := 'Bar';
YValues.Order := loNone;
YValues.ValueSource := 'RUIM';
Marks.Frame.Visible:= false;
Marks.Style := smsValue;
// Title := 'Ruim';
IWImage1.Picture.Bitmap.Assign(Chart1.TeeCreateBitmap(clWebWHITE,
Rect(2,0,IWImage1.Width, IWImage1.Height)));
end;
finally
FreeAndNil(Chart1);
end;
alguém poderia me dar uma força com esse problema
desde ja grato pela ajuda
Reijanio Ribeiro
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)