| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
fabiodurgante Aprendiz

Registrado: Sexta-Feira, 8 de Novembro de 2013 Mensagens: 197
|
Enviada: Seg Dez 02, 2013 9:06 pm Assunto: sql |
|
|
tenho o meu relatorio sql
Form4.IBQuery1.Close;
Form4.IBQuery1.sql.Clear;
Form4.IBQuery1.SQL.Add('select id_reserv, id_cliente, id, nome_cliente, nome_produto, QTD_RESERVADA, QTD_RESERV, DATA_RESERVA');
Form4.IBQuery1.SQL.Add('from quantidade_reservada JOIN TB_EST_PRODUTO ON quantidade_reservada.id_produto=TB_EST_PRODUTO.id');
Form4.IBQuery1.SQL.Add('where id_produto = id');
Form4.IBQuery1.SQL.Add('order by nome_cliente');
Form4.IBQuery1.Open ;
assim ele lista no quickrep cliente fabio possui 3 produtos reservados,
ai lista
NOME QTD total
fabio X teria que mostrar 2
produto 1 2
produto 2 2
produto 3 2
joao X
produto 1 1
produto 2 1
produto 3 1
assim por diante, quero somar para mostrar no X, coloquei outro ibquery somente para o X
while not Form4.IBQuery1.Eof do
begin
Form4.IBQuery2.Close;
Form4.IBQuery2.sql.Clear;
Form4.IBQuery2.SQL.Add(' SELECT sum (QTD_RESERVADA) as QTD_RESERVADA');
Form4.IBQuery2.SQL.Add('from quantidade_reservada');
Form4.IBQuery2.SQL.Add('where id_cliente =:id');
Form4.IBQuery2.ParamByName('id').AsInteger := Form4.IBQuery1.FieldByName('id_cliente').AsInteger;
Form4.IBQuery2.Open ;
Form4.IBQuery1.Next;
end;
so que ele pega somente no "X" aparece somente a ultimo resgitro o somatorio do ultimo resgitro, como poderia fazer ???????? |
|
| Voltar ao Topo |
|
 |
juniorpba Colaborador

Registrado: Quarta-Feira, 25 de Janeiro de 2012 Mensagens: 1690 Localização: Paranaiba - MS
|
Enviada: Seg Dez 02, 2013 11:33 pm Assunto: |
|
|
Amigo usa mais ou menos assim pra vc pegar a quantidade
| Código: | | IntToStr(DM.tabela.RecordCount); | ai vc joga este valor para onde que vc quiser so apenas adequar com seu codigo _________________ "Conhece a teu inimigo e a ti mesmo e lutará 100 batalhas sem medo da derrota" |
|
| Voltar ao Topo |
|
 |
juniorpba Colaborador

Registrado: Quarta-Feira, 25 de Janeiro de 2012 Mensagens: 1690 Localização: Paranaiba - MS
|
Enviada: Seg Dez 02, 2013 11:36 pm Assunto: |
|
|
ou se nao vc faz assim
| Código: |
while not Form4.IBQuery1.Eof do
begin
close;
SQL.Clear;
SQL.Add('sql todo );
ParamByName('parametro ai').AsString := onde ele vai receber este parametro
Open;
llabel.Caption := Fields[0].AsString; |
_________________ "Conhece a teu inimigo e a ti mesmo e lutará 100 batalhas sem medo da derrota" |
|
| Voltar ao Topo |
|
 |
fabiodurgante Aprendiz

Registrado: Sexta-Feira, 8 de Novembro de 2013 Mensagens: 197
|
Enviada: Ter Dez 03, 2013 7:27 am Assunto: |
|
|
IntToStr(DM.tabela.RecordCount);
eu nao tenho nenhuma tabela, somente a ibquery ligada no quickrep, mas eu preciso somar a quantidade de cada cliente, somo quantidade do cliente 1, do cliente 2 assim por diante. |
|
| Voltar ao Topo |
|
 |
fabiodurgante Aprendiz

Registrado: Sexta-Feira, 8 de Novembro de 2013 Mensagens: 197
|
Enviada: Ter Dez 03, 2013 7:30 am Assunto: |
|
|
while not Form4.IBQuery1.Eof do
begin
close;
SQL.Clear;
SQL.Add('sql todo );
ParamByName('parametro ai').AsString := onde ele vai receber este parametro
Open;
llabel.Caption := Fields[0].AsString;
"onde ele vai receber este", onde eu pego esse valor no meu codigo acima, foi quase igual a isso que eu fiz, so que essa sua linha
ParamByName('parametro ai').AsString := onde ele vai receber este
o parametro teria q ser um array de valores, porque o cliiente 1 tem 3 produtos, 2 cada total 6,o cliente joao tem 3 produtos quantidade 1, total 3, tenho que pegar direto do outro select da outra ibquery como quepoderia fazer ?????? |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
|
| Voltar ao Topo |
|
 |
fabiodurgante Aprendiz

Registrado: Sexta-Feira, 8 de Novembro de 2013 Mensagens: 197
|
Enviada: Ter Dez 03, 2013 6:15 pm Assunto: |
|
|
while not Form4.IBQuery1.Eof do
begin
Form4.IBQuery2.Close;
Form4.IBQuery2.sql.Clear;
Form4.IBQuery2.SQL.Add(' SELECT sum (QTD_RESERVADA) as QTD_RESERVADA');
Form4.IBQuery2.SQL.Add('from quantidade_reservada');
Form4.IBQuery2.SQL.Add('where id_cliente =:id');
Form4.IBQuery2.ParamByName('id').AsInteger := Form4.IBQuery1.FieldByName('id_cliente').AsInteger;
Form4.IBQuery2.Open ;
Form4.IBQuery1.Next;
end;
o problema é aqui o parametro que eu passo pra ibquery, ele so mostra o ultimo valor tem que fazer todos !!!!!! |
|
| Voltar ao Topo |
|
 |
fabiodurgante Aprendiz

Registrado: Sexta-Feira, 8 de Novembro de 2013 Mensagens: 197
|
Enviada: Ter Dez 03, 2013 6:20 pm Assunto: |
|
|
exatamente funcionou como acima no evento BeforePrint da QRBand em que deve ser impressa a quantidade.
coloquei
Form4.IBQuery2.Close;
Form4.IBQuery2.sql.Clear;
Form4.IBQuery2.SQL.Add(' SELECT sum (QTD_RESERVADA) as QTD_RESERVADA');
Form4.IBQuery2.SQL.Add('from quantidade_reservada');
Form4.IBQuery2.SQL.Add('where id_cliente =:id');
Form4.IBQuery2.ParamByName('id').AsInteger := Form4.IBQuery1.FieldByName('id_cliente').AsInteger;
Form4.IBQuery2.Open ;
funcionou correto agradeço a todos VALEU!!!!!!!!!! |
|
| Voltar ao Topo |
|
 |
|