Erro no script...
Pessoal, bom dia.
Estou com um problema ao gerar um relatório no Rave Report.
Criei uma query chamada Qry_RelatLocalArm em uma unit chamada uDtm. E linkei esta query com o rave report.
Quando eu executo o relatório no Rave Report, ele me traz o que eu quero.
Porém quando tento puxar este relatório pelo Delphi, não está me trazendo nada, apenas a Tela em Branco.
Na tela do Delphi chamada Relatorio, simplesmente copiei o SQL da Query Qry_RelatLocalArm localizada na uDtm e colei no clique do botão gerar relatorio, conforme abaixo:
with uDtm.frmDtm.Qry_RelatLocalArm do
begin
Close;
SQL.Clear;
SQL.ADD(select);
SQL.ADD( a.id_armazenamento,);
SQL.ADD( e.nm_empresa,);
SQL.ADD( s.nm_sala,);
SQL.ADD( tp.ds_tparmazenamento,);
SQL.ADD( a.nm_pasta,);
SQL.ADD( a.nr_caixa,);
SQL.ADD( a.ic_empresa,);
SQL.ADD( a.nr_box,);
SQL.ADD( a.ds_posicao,);
SQL.ADD( dp.nm_departamento,);
SQL.ADD( t.ds_titulo,);
SQL.ADD( a.dt_caixaini,);
SQL.ADD( a.dt_caixafim,);
SQL.ADD( a.dt_entrada,);
SQL.ADD( a.dt_expurgo,);
SQL.ADD( a.ic_status);
SQL.ADD(from );
SQL.ADD( armazenamento a,);
SQL.ADD( tipo_armazenamento tp,);
SQL.ADD( departamento dp,);
SQL.ADD( titulo t,);
SQL.ADD( sala s,);
SQL.ADD( empresa e);
SQL.ADD(where );
SQL.ADD( tp.id_tparmazenamento = a.id_tparmazenamento);
SQL.ADD(and t.id_titulo = a.id_titulo);
SQL.ADD(and dp.id_departamento = a.id_departamento);
SQL.ADD(and s.id_sala = a.id_sala);
SQL.ADD(and e.id_empresa = a.id_empresa);
**** SQL.Add(and a.id_empresa = +inttostr(cbxEmpresa.ItemIndex)+);
SQL.ADD(order by a.ds_posicao);
Open;
if (cbxArmaz.ItemIndex = 2) then
begin
RvProject1.Execute;
RvProject1.Close;
end;
end;
****: Apenas esta linha coloquei a mais na tela Relatorio, porém já testei sem ela e continua trazendo nada.
Será que esqueci alguma coisa?
Desde já agradeço a atenção.
Estou com um problema ao gerar um relatório no Rave Report.
Criei uma query chamada Qry_RelatLocalArm em uma unit chamada uDtm. E linkei esta query com o rave report.
Quando eu executo o relatório no Rave Report, ele me traz o que eu quero.
Porém quando tento puxar este relatório pelo Delphi, não está me trazendo nada, apenas a Tela em Branco.
Na tela do Delphi chamada Relatorio, simplesmente copiei o SQL da Query Qry_RelatLocalArm localizada na uDtm e colei no clique do botão gerar relatorio, conforme abaixo:
with uDtm.frmDtm.Qry_RelatLocalArm do
begin
Close;
SQL.Clear;
SQL.ADD(select);
SQL.ADD( a.id_armazenamento,);
SQL.ADD( e.nm_empresa,);
SQL.ADD( s.nm_sala,);
SQL.ADD( tp.ds_tparmazenamento,);
SQL.ADD( a.nm_pasta,);
SQL.ADD( a.nr_caixa,);
SQL.ADD( a.ic_empresa,);
SQL.ADD( a.nr_box,);
SQL.ADD( a.ds_posicao,);
SQL.ADD( dp.nm_departamento,);
SQL.ADD( t.ds_titulo,);
SQL.ADD( a.dt_caixaini,);
SQL.ADD( a.dt_caixafim,);
SQL.ADD( a.dt_entrada,);
SQL.ADD( a.dt_expurgo,);
SQL.ADD( a.ic_status);
SQL.ADD(from );
SQL.ADD( armazenamento a,);
SQL.ADD( tipo_armazenamento tp,);
SQL.ADD( departamento dp,);
SQL.ADD( titulo t,);
SQL.ADD( sala s,);
SQL.ADD( empresa e);
SQL.ADD(where );
SQL.ADD( tp.id_tparmazenamento = a.id_tparmazenamento);
SQL.ADD(and t.id_titulo = a.id_titulo);
SQL.ADD(and dp.id_departamento = a.id_departamento);
SQL.ADD(and s.id_sala = a.id_sala);
SQL.ADD(and e.id_empresa = a.id_empresa);
**** SQL.Add(and a.id_empresa = +inttostr(cbxEmpresa.ItemIndex)+);
SQL.ADD(order by a.ds_posicao);
Open;
if (cbxArmaz.ItemIndex = 2) then
begin
RvProject1.Execute;
RvProject1.Close;
end;
end;
****: Apenas esta linha coloquei a mais na tela Relatorio, porém já testei sem ela e continua trazendo nada.
Será que esqueci alguma coisa?
Desde já agradeço a atenção.
Flavio Silva
Curtidas 0
Respostas
Leonardo Xavier
21/11/2011
Qual finalidade desta linha:
if (cbxArmaz.ItemIndex = 2) then
if (cbxArmaz.ItemIndex = 2) then
GOSTEI 0
Flavio Silva
21/11/2011
Significa que se o combo que eu coloquei na tela for 2, ele vai executar esse processo de abrir o Rave Report.
GOSTEI 0
Leonardo Xavier
21/11/2011
Ok! Agora intendi o seu código pois aquela linha eu não estava realmente intendendo ela, desculpe.
Fiz algumas mudanças em seu código espero que lhe ajude a resolver seu problema. Você esta utilizando DataSet? Fiz como se estivesse se não estiver pode adapatar.
Fiz algumas mudanças em seu código espero que lhe ajude a resolver seu problema. Você esta utilizando DataSet? Fiz como se estivesse se não estiver pode adapatar.
//linhas mudadas var x:integer; begin //código igualzinho. with uDtm.frmDtm.Qry_RelatLocalArm do begin Close; SQL.Clear; //aqui muda: if x=1 to dataset1.recordcount do begin //irá executar a função até que todos os campos da tabela sejam passados //*************************************************************************************************************** SQL.ADD(select); SQL.ADD( a.id_armazenamento,); SQL.ADD( e.nm_empresa,); SQL.ADD( s.nm_sala,); SQL.ADD( tp.ds_tparmazenamento,); SQL.ADD( a.nm_pasta,); SQL.ADD( a.nr_caixa,); SQL.ADD( a.ic_empresa,); SQL.ADD( a.nr_box,); SQL.ADD( a.ds_posicao,); SQL.ADD( dp.nm_departamento,); SQL.ADD( t.ds_titulo,); SQL.ADD( a.dt_caixaini,); SQL.ADD( a.dt_caixafim,); SQL.ADD( a.dt_entrada,); SQL.ADD( a.dt_expurgo,); SQL.ADD( a.ic_status); SQL.ADD(from ); SQL.ADD( armazenamento a,); SQL.ADD( tipo_armazenamento tp,); SQL.ADD( departamento dp,); SQL.ADD( titulo t,); SQL.ADD( sala s,); SQL.ADD( empresa e); SQL.ADD(where ); SQL.ADD( tp.id_tparmazenamento = a.id_tparmazenamento); SQL.ADD(and t.id_titulo = a.id_titulo); SQL.ADD(and dp.id_departamento = a.id_departamento); SQL.ADD(and s.id_sala = a.id_sala); SQL.ADD(and e.id_empresa = a.id_empresa); **** SQL.Add(and a.id_empresa = +inttostr(cbxEmpresa.ItemIndex)+); SQL.ADD(order by a.ds_posicao); Open; //******* end; //******* if (cbxArmaz.ItemIndex = 2) then begin RvProject1.Execute; RvProject1.Close; end; end;
GOSTEI 0
Wilson Junior
21/11/2011
Qual a estrutura das suas tabelas???
GOSTEI 0
Flavio Silva
21/11/2011
Desculpe wilson, ao entendi sua pergunta...
Para este sistema estou usando Microsoft SQL Server.
E sobre o código Leonardo não deu certo... Agora está me trazendo o relatório com todos os campos da tabela Titulo t
ao invés de me trazer os resultados que já foram cadastrados.
Me traz todos os campos <invalid> e aparece todos os Titulos da tabela Título.
Atenciosamente,
Para este sistema estou usando Microsoft SQL Server.
E sobre o código Leonardo não deu certo... Agora está me trazendo o relatório com todos os campos da tabela Titulo t
ao invés de me trazer os resultados que já foram cadastrados.
Me traz todos os campos <invalid> e aparece todos os Titulos da tabela Título.
Atenciosamente,
GOSTEI 0