Ir ao conteúdo
  • Cadastre-se
DaniLeal

Dúvida com Relatório no QuickReports do Delphi 7

Recommended Posts

Olá pessoal,

Estou começando a trabalhar com Delphi e estou tendo alguns probleminhas para gerar um relatório durante a execução do meu programa.

Bom, a ideia do programa é que seja gerado um relatório a partir dos itens selecionados de uma listBox. Consegui fazer grande parte, mas quando o relatorio é criado, ao invés de mostrar todos os registros do BD, mostra somente o primeiro registro. Alguém poderia me ajudar a descobrir o erro que não encontrei? O Código é o seguinte:

[B]procedure TFrmMenu.GerarClick(Sender: TObject);
var
i, Col, Tamc:integer;
NCampo,Ordem:String;
begin

//Verificamos se existem Campos Selecionados
if Listbox2.Items.Count > 0 then
begin

// Posição inicial da coluna
Col := 5;

// Informamos o Titulo do Relatório

FrmRelatorios.QRLabel2.Caption := Edit1.Text;

for i := 0 to listbox2.Items.Count -1 do
begin

//Obtendo o Tamanho e Nome do Campo
Tamc:= Largura[PosCampo(ListBox2.Items.Strings[i])]; //tamanho do campo
NCampo:= Campo[PosCampo(ListBox2.Items.Strings[i])];//nome do campo

//Criando Componentes Para os Títulos das Colunas
QrLabel[i+1] := TQrLabel.Create(FrmRelatorios.QuickRep1.Bands.TitleBand);
QrLabel[i+1].Parent:= FrmRelatorios.QuickRep1.Bands.TitleBand;
QrLabel[i+1].Left:= Col;
QrLabel[i+1].Top:= 4;
QrLabel[i+1].Caption:= ListBox2.Items.Strings[i];
QrLabel[i+1].Font.Style := [fsbold];

//Criando Componentes de Exibição de Dados das Colunas

begin
QrDbtext[i+1]:= TQrDbtext.Create(FrmRelatorios.QuickRep1.Bands.DetailBand);
QrDbText[i+1].Parent:=FrmRelatorios.QuickRep1.Bands.DetailBand;
QrDbText[i+1].Left:= Col;
QrDbText[i+1].Top:= 8;
QrDbText[i+1].DataSet:= Dm.ADOQuery1;
QrDbText[i+1].DataField:= NCampo;
end;

//Obtendo o Valor da próxima Coluna. Como o valor precisa ser em
//pixel multiplicamos por 5 o tamanho do Campo.
Col := Col + (10 * Tamc);
end;

//Passamos as instruções SQL
Dm.ADOQuery1.Close;
Dm.ADOQuery1.SQL.Clear;
Dm.ADOQuery1.SQL.Add('SELECT Produto.PROD_DS_PRODUTO, Produto.PROD_CD_GRUP, Produto.PROD_CD_SUBGRUP, Produto.PROD_CD_PRODUTO, Produto.PROD_CD_ORIGINAL, Produto.PROD_CD_BARRAS, Produto.PROD_SG_UNID_ENTRADA FROM Produto;');
Dm.ADOQuery1.SQL.Add(Ordem);
Dm.ADOQuery1.Open;

//Chamamos o Relatório
FrmRelatorios.QuickRep1.Preview;

//Liberamos os Componentes utilizados
for i := 0 to listbox2.Items.Count -1 do
begin
QrLabel[i+1].free;
QrDbText[i+1].free;
end;

end;
end;[/B]

Em anexo uma imagem de como fica o relatorio.

Obs: Eu peguei um código pronto na net e fiz alterações para ele se adequar ao que eu queria..:D

Desde já agradeço.

post-690122-13884954859609_thumb.jpg

Editado por Mog.Lucas
Utilize tags [code]. Leia mais aqui: http://forum.clubedohardware.com.br/tags-code-como/709848

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que setar a propriedade dataset do seu QickRep para o dataset que você está usando, e a banda de detalhes tem que estar do tamanho necessário para aparecer os dados de um unico registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, era isto mesmo, eu havia esquecido de setar o Dataset do QuickRep...Obrigada OvEr_BuRn!

Aproveitando a deixa...tem mais uma parte do código que não consegui montar e queria fazer. Se você puder me dar uma ideia de como começar eu agradeceria mais ainda...

Bom, os itens da minha tabela sao divididos em grupos e subgrupos, reconhecidos pelo código que é de um padrão 999.999.999. Por exemplo, o grupo 001 é capacitor e 001.001 é o subgrupo capacitor eletrolítico e 001.001.001 corresponde ao item em si. Tem uma coluna na tabela com preços e eu queria que aparecesse no relatorio um subtotal por subgrupos e um total depois por grupo, mas não tenho nem ideia de como fazer isto no Delphi e nem sei se tem como. Eu ão consegui nem ordenar pelo código, ja que não é um campo numérico "normal", o SQL nao reconhece um 'Order by', será que tem como fazer?

Eu tinha feito no access, mas não consegui chamar o relatorio no access pelo Delphi.

abraços.

post-690122-13884954932356_thumb.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×