QRLabel como parâmetro
09/09/2004
0
Estou usando o seguinte código no evento BeforePrint do meu relatório (qr):
var
sDefault : String;
begin
sDefault := qr.Label.Caption;
qryTotEmit.Close;
qryTotEmit.SQL.Clear;
qryTotEmit.SQL.Add(´SELECT COUNT(USU) FROM USUARIO´);
qryTotEmit.SQL.Add(´WHERE USU = ´ + #39 + sDefault + 39 );
qryTotEmit.Open;
Isso está funcionando para um qr.Label.Caption, mas quero passar para a variável sDefault vários captions do qr.Label e depois passar todos como parâmetro para a minha query na cláusula Where.
Como posso fazer isso?
Obrigada
Barbara.michele
Posts
09/09/2004
Deryck
16/09/2004
Barbara.michele
1. O que devo colocar na propriedade DATASET do relatório, pois se colocar como sendo o DataSet a qry1, o valor da qry1 é exibido certo mas os valores das outras queries não são exibidos no relatório e se deixar a propriedade DataSet em branco, nada do relatório é exibido. Como faço para dizer que o relatório é ligado às três queries?
2. A primeira query é para buscar o codigo do usuário e está funcionando bem com a seguinte consulta:
with qry1 do begin
Close;
SQL.Clear;
SQL.Add(´SELECT DISTINCT USUARIO FROM RELATORIOS ´);
SQL.Add(´WHERE UF_RELAT = ´ + #39 + ComboUF.Text + 39 );
Open;
end;
O problema agora é que tenho as duas outras consultas, onde devo passar para as duas o resultado da query acima, ou seja, o USUARIO, e para cada usuário tenho um DBText no relatório para exibir o seu resultado.
Coloquei o seguinte código para isso:
with qry2 do begin
Close;
SQL.Clear;
SQL.Add(´SELECT COUNT(USUARIO) FROM AVALIACOES ´);
SQL.Add(´WHERE USUARIO = ´ + #39 + qry1.FieldByName(´USUARIO´).AsString + 39 );
Open;
end;
Onde deve ser inserida essa parte do código? Dentro do with da primeira query ou depois?
Há outra forma de fazer isso? Essa forma funcionou em parte, pois está exibindo o mesmo resultado para todos os usuários, não sei se o problema é a propriedade DataSet do relatório ou se é na hora de passar o resultado da qry1.
O que está errado?
Obrigada
16/09/2004
Rômulo Barros
Query.Close(); Query.Sql.Clear(); Query.Sql.Text := ´ SELECT COUNT(USUARIO) ´ + ´ FROM AVALIACOES ´ + ´ WHERE USUARIO IN ´ + ´( ´ + ´ SELECT DISTINCT USUARIO ´ + ´ FROM RELATORIOS ´ + ´ WHERE UF_RELAT = ´ + #39 + ComboUf.Text + 39 + ´) ´; Query.Open();
:wink: :wink: :wink: :wink: :wink: :wink:
17/09/2004
Barbara.michele
Obtenho um valor em determinada Query, que é o usuário, e tenho que passar esse valor como parâmetro para as outras três queries e exibir o resultado de cada consulta num QRDBText.
Obrigada
Clique aqui para fazer login e interagir na Comunidade :)