Fórum Delphi 2010 + ReportBuilder 11.08 (Nao exibe relatorio!) #134354
07/04/2010
0
Problema: Ao clicar para exibir o relatório pelo ReportBuilder ele abre a janela do ReportBuilder porém não mostra nada, nem os dados do banco de dados, nem a estrutura do relatório. Porém quando se clica para rolar a DBGrid (no aplicativo) para o lado para ver os resultados e depois manda abrir o relatório ele exibe o conteúdo.
Alguém poderia me dar uma ajuda, já refiz umas 10 vezes e sempre dá essa zica.
procedure TF_Imprimir_Boletim.btn_imprimirClick(Sender: TObject);
begin
if rdgrp_classificacao.ItemIndex = 1 then
ImprimeSelecionado(dbgrid_resultado.Columns[0].Field.AsString);
ppReport_Boletim.Print;
end;
procedure TF_Imprimir_Boletim.btn_procurarClick(Sender: TObject);
begin
with ModuloDados.qry_imprimir_boletim do
begin
Close;
SQL.Clear;
case rdgrp_procura.ItemIndex of
0: SQL.Add('SELECT cad_alunos.codigo, cad_alunos.nome, cad_alunos.rg, cad_alunos.serie, boletim.* FROM cad_alunos, boletim WHERE cad_alunos.codigo = '+edit_pesquisa.Text+' AND cad_alunos.codigo = boletim.codigo AND cad_alunos.serie = :PSER ORDER BY cad_alunos.nome ASC');
1: SQL.Add('SELECT cad_alunos.codigo, cad_alunos.nome, cad_alunos.rg, cad_alunos.serie, boletim.* FROM cad_alunos, boletim WHERE cad_alunos.codigo = boletim.codigo AND cad_alunos.nome LIKE :PESQ AND cad_alunos.serie = :PSER ORDER BY cad_alunos.nome ASC');
end;
ParamByName('PESQ').AsString := '%'+edit_pesquisa.Text+'%';
ParamByName('PSER').AsString := combo_serie.Text;
try
Open;
Except
On E:Exception do
ShowMessage(E.Message);
end;
end;
ModuloDados.client_ds_imprimir_boletim.Active := True;
dbgrid_resultado.DataSource := ModuloDados.ds_imprimir_boletim;
end;
procedure TF_Imprimir_Boletim.combo_serieChange(Sender: TObject);
begin
//Habilita Radio Group Classificação
if (rdgrp_classificacao.Enabled = False) then
rdgrp_classificacao.Enabled := True;
//Desabilita botão imprimir caso estiverem habilitados
if btn_imprimir.Enabled = True then
btn_imprimir.Enabled := False;
//Reseta radio group
if rdgrp_classificacao.ItemIndex <> -1 then
rdgrp_classificacao.ItemIndex := -1;
//Fecha queries
ModuloDados.client_ds_imprimir_boletim.Close;
ModuloDados.qry_imprimir_boletim.Close;
//Insere nomes das materias no relatorio
Preenche_Materia(combo_serie.Text);
end;
constructor TF_Imprimir_Boletim.Create(AOwner: TComponent);
begin
inherited;
PreencheComboSerie;
end;
procedure TF_Imprimir_Boletim.dbgrid_resultadoCellClick(Column: TColumn);
begin
if btn_imprimir.Enabled = False then
btn_imprimir.Enabled := True;
end;
procedure TF_Imprimir_Boletim.dbgrid_resultadoDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with TDBGrid(dbgrid_resultado) do
begin
Columns.Items[0].Width := 50;
Columns.Items[1].Width := 320;
Column.Title.Color := ClMedGray; {cor do fundo do dbGrid}
Column.Title.Font.Style := [fsBold]; {fonte ira se destacar em negrito}
Column.Title.Font.Color := clBlack; {cor da fonte}
Canvas.Brush.Style := bsClear;
case Column.Index of
0: Column.Title.Caption := 'Código';
1: Column.Title.Caption := 'Nome';
end;
end;
end;
procedure TF_Imprimir_Boletim.edit_pesquisaChange(Sender: TObject);
begin
if edit_pesquisa.Text <> '' then
btn_procurar.Enabled := True
else
btn_procurar.Enabled := False;
end;
procedure TF_Imprimir_Boletim.edit_pesquisaKeyPress(Sender: TObject;
var Key: Char);
begin
if rdgrp_procura.ItemIndex = 0 then
begin
if not(key in ['0'..'9','-', #8]) then
key := #0;
end;
if ((key in [#13]) and (edit_pesquisa.Text <> '')) then
btn_procurarClick(Sender);
end;
procedure TF_Imprimir_Boletim.Especificar;
begin
if btn_imprimir.Enabled = True then
btn_imprimir.Enabled := False;
rdgrp_procura.Enabled := True;
if not (ModuloDados.client_ds_imprimir_boletim.Active = False) then
begin
ModuloDados.client_ds_imprimir_boletim.Close;
ModuloDados.qry_imprimir_boletim.Close;
end;
end;
procedure TF_Imprimir_Boletim.ImprimeSelecionado(SI: String);
begin
with ModuloDados.qry_imprimir_boletim do
begin
ModuloDados.client_ds_imprimir_boletim.Close;
Close;
SQL.Clear;
SQL.Add('SELECT cad_alunos.codigo, cad_alunos.nome, cad_alunos.rg, cad_alunos.serie, boletim.* FROM cad_alunos, boletim WHERE cad_alunos.codigo = :CS AND cad_alunos.codigo = boletim.codigo ORDER BY cad_alunos.nome ASC');
ParamByName('CS').AsString := SI;
try
Open;
Except
On E:Exception do
ShowMessage(E.Message);
end;
ModuloDados.client_ds_imprimir_boletim.Open;
end;
end;
procedure TF_Imprimir_Boletim.PreencheComboSerie;
begin
CompletaSerieBoletim; {Procedure do arquivo U_Funcoes.pas}
with ModuloDados.qry_boletim_serie do
begin
First;
combo_serie.Items.Clear;
while not eof do
begin
combo_serie.Items.Add(FieldByName('serie').asString);
Next;
end;
end;
end;
procedure TF_Imprimir_Boletim.Preenche_Materia(SerieSel: String);
var
c: Integer;
begin
with ModuloDados.qry_materias_boletim do
begin
Close;
SQL.Clear;
SQL.Add('select * from materias where serie = :SM order by id asc');
ParamByName('SM').AsString := SerieSel;
try
Open;
except
On E:Exception do
ShowMessage(E.Message);
end;
end;
with ppReport_Boletim.DetailBand do
begin
//Zerar campos de matérias
lbl_mat1.Caption := '';
lbl_mat2.Caption := '';
lbl_mat3.Caption := '';
lbl_mat4.Caption := '';
lbl_mat5.Caption := '';
lbl_mat6.Caption := '';
lbl_mat7.Caption := '';
lbl_mat8.Caption := '';
lbl_mat9.Caption := '';
lbl_mat10.Caption := '';
lbl_mat11.Caption := '';
lbl_mat12.Caption := '';
//Fim do zerador
//Preenche campo Matéria
c:= 1;
while not ModuloDados.qry_materias_boletim.Eof do
begin
case c of
1:lbl_mat1.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
2:lbl_mat2.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
3:lbl_mat3.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
4:lbl_mat4.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
5:lbl_mat5.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
6:lbl_mat6.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
7:lbl_mat7.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
8:lbl_mat8.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
9:lbl_mat9.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
10:lbl_mat10.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
11:lbl_mat11.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
12:lbl_mat12.Caption := ModuloDados.qry_materias_boletim.FieldByName('materia').AsString;
end;
c:= c+1;
ModuloDados.qry_materias_boletim.Next;
end;
//Fim do preenchedor
end;
end;
procedure TF_Imprimir_Boletim.rdgrp_classificacaoClick(Sender: TObject);
begin
case rdgrp_classificacao.ItemIndex of
0: SalaInteira(combo_serie.Text);
1: Especificar;
end;
end;
procedure TF_Imprimir_Boletim.rdgrp_procuraClick(Sender: TObject);
begin
if rdgrp_procura.ItemIndex <> -1 then
StatusBotoes(True);
end;
procedure TF_Imprimir_Boletim.SalaInteira(S1: String);
begin
//Prepara banco de dados com a série selecionada
ModuloDados.client_ds_imprimir_boletim.Close;
with ModuloDados.qry_imprimir_boletim do
begin
Close;
SQL.Clear;
SQL.Add('select cad_alunos.codigo, cad_alunos.nome, cad_alunos.rg, cad_alunos.serie, boletim.codigo, boletim.* from cad_alunos, boletim where cad_alunos.codigo = boletim.codigo and cad_alunos.serie = :SB order by cad_alunos.nome asc;');
ParamByName('SB').AsString := S1;
try
Open;
except
On E:Exception do
ShowMessage(E.Message);
end;
end;
ModuloDados.client_ds_imprimir_boletim.Open;
//Mostra resultado no DBGrid
dbgrid_resultado.DataSource := ModuloDados.ds_imprimir_boletim;
//Desativa botões edit de procura
StatusBotoes(False);
//Reseta radio group da pesquisa
if rdgrp_procura.Enabled = True then
begin
rdgrp_procura.ItemIndex := -1;
rdgrp_procura.Enabled := False;
end;
//Ativa botão imprimir
if btn_imprimir.Enabled = False then
btn_imprimir.Enabled := True;
end;
procedure TF_Imprimir_Boletim.StatusBotoes(S: Boolean);
begin
lbl_pesquisa.Enabled := S;
edit_pesquisa.Enabled := S;
end;
Wesley Martins
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)