Fórum problema em Realtorio #347580
19/10/2007
0
tipo tenho um relatorio master detal aonde o mesmo m mostra os dados q um determinado cliente comprou em uma dterminada data...
a minah estrutura esta mostanda assim:
procedure TFrmRel_PedidosDetalhado.FormCreate(Sender: TObject); begin ADO_PedidosItens.Open; Flutuante1 :=0; Flutuante2 :=0; QrParametro.Caption :=´Periodo de entrega: ´+FrmRelPedidos.MskDataIni.Text+´ - ´+FrmRelPedidos.MskDataFim.Text; DataIni :=StrToDate(FrmRelPedidos.MskDataIni.Text); DataFim :=StrToDate(FrmRelPedidos.MskDataFim.Text); // montar script da tabela Mestre sqlMaster :=´´; sqlMaster :=sqlMaster + ´ SELECT A.*, B.CODIGO, B.NOME ´; sqlMaster :=sqlMaster + ´ FROM ´; sqlMaster :=sqlMaster + ´ ORCAMENTOS A, CLIENTES B ´; sqlMaster :=sqlMaster + ´ WHERE ´; sqlMaster :=sqlMaster + ´ B.CODIGO=A.CLIENTE ´; sqlMaster :=sqlMaster + ´ AND ´; sqlMaster :=sqlMaster + ´ A.ENTREGA>=:Data1 AND A.ENTREGA<=:Data2 ´; if FrmRelPedidos.RdPedidos.ItemIndex=0 then Begin QrParametro.caption :=QrParametro.caption+´ - (Todos os tipos)´; End; if FrmRelPedidos.RdPedidos.ItemIndex=1 then Begin QrParametro.caption :=QrParametro.caption+´ - (Abertos)´; sqlMaster :=sqlMaster + ´ AND ´; sqlMaster :=sqlMaster + ´ A.STATUS=´´N´´ ´; End; if FrmRelPedidos.RdPedidos.ItemIndex=2 then Begin QrParametro.caption :=QrParametro.caption+´ - (Cancelados)´; sqlMaster :=sqlMaster + ´ AND ´; sqlMaster :=sqlMaster + ´ A.STATUS=´´C´´ ´; End; if FrmRelPedidos.RdPedidos.ItemIndex=3 then Begin QrParametro.caption :=QrParametro.caption+´ - (Faturados)´; sqlMaster :=sqlMaster + ´ AND ´; sqlMaster :=sqlMaster + ´ A.STATUS=´´S´´ ´; End; sqlMaster :=sqlMaster + ´ ORDER BY ´+OrdemDados; ADO_Pedidos.Close; ADO_Pedidos.SQL.clear; ADO_Pedidos.SQL.Add( sqlMaster ); ADO_Pedidos.ParamByName(´Data1´).AsDateTime :=DataIni; ADO_Pedidos.ParamByName(´Data2´).AsDateTime :=DataFim; ADO_Pedidos.Open; // visualizar QuickRep1.Preview; close; end;
so que ele so m esta mostrando um cliente com seus produtos ele m mostra o pedido de numero 3 so esse com seus produtos...
Estou usando o Qreport e componente ZEOs fias as ligações entra tabelas mas contimia dessa forma...
Tchucky
Curtir tópico
+ 0Posts
19/10/2007
Mayron Cachina
vc está comparando
sqlMaster :=sqlMaster + ´ B.CODIGO=A.CLIENTE ´;
esse campo cliente e esse campo codigo o que são?
Gostei + 0
19/10/2007
Dr. Interbase
sqlMaster :=sqlMaster + ´( A.ENTREGA>=:Data1 AND A.ENTREGA<=:Data2 )´;
Gostei + 0
19/10/2007
Tchucky
sqlMaster :=sqlMaster + ´( A.ENTREGA>=:Data1 AND A.ENTREGA<=:Data2 )´;
e nada so aparece um cliente com seu determinados produtos e o mais curioso q ele pega um cliente do meio da tabela...
sqlMaster :=sqlMaster + ´ B.CODIGO=A.CLIENTE ´;
esses dois campos são da tabela de pedidos q eu estou fazendo a referencia sendo q eu tenho os mesmos campos na tabela de Intens
para fazer o relacionamento entre as duas tabelas....
Gostei + 0
19/10/2007
Mayron Cachina
eui to achando estranho (pelo menos a nomenclatura...costumo colocar IDTABELA) :D
se for nesse estado o sql ta certo... n sei pq n ta retornando certo...
Gostei + 0
19/10/2007
Tchucky
mas o mais estranho é q so pega dois cadastras tipo eu tenho 50 cadastro ele so esta m mostrando 2... mas mesmo assim naum esta certo pq se eu colocar uma data tipo 02/02/2000 a 10/10/2007 ele so m mostra 1 sendo que teria q m mostrar os dois...
desses 50 cadastros ele so m mostra o 3º e o 1º sendo q tenho varias cadastros entre esses....
Gostei + 0
20/10/2007
Mayron Cachina
tipo os bancos aceitam a data nesse formato ano-mes-dia
ex: 2007-10-19
Gostei + 0
20/10/2007
Tchucky
e o formato é 02/02/2000 esse mesmo...
o engraçado que quando eu tiro a outra tabela do master detals ele me mostra todos os clientes perfeitamente...
mas quando eu faço a ligação com a tabela itens ai começa a fazer dessa forma so ma da um cliente...
Gostei + 0
20/10/2007
Weber
SELECT A.*, B.CODIGO, B.NOME FROM ORCAMENTOS A LEFT JOIN CLIENTES B ON A.CLIENTE = B.CODIGO WHERE A.ENTREGA>=:Data1 AND A.ENTREGA<=:Data2
Gostei + 0
19/03/2008
Wanderok
E vá acertando até os dados aparecerem da forma como deseja.
Somente quando estiver tudo correto é que deverá tratar o relatório.
No relatório, é comum linkar errado os datasets.
veja se dá certo assim.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)