uso da instrução SUM ou COUNT no paradox
Amigos,
O banco de dados é Paradox. Tenho um relatorio onde existem os campos SITIGREJA (ativo ou inativo) e o campo SC06 (com as informações A (ausente) ou P(presente).
Ao final do relatorio, preciso saber quantos membros estão Ativos, quantos Ausentes e quantos Presentes.
Escrevi o seguinte codigo:
procedure TFrm_Rel_Freq_Sta_Ceia.SummaryBand1BeforePrint(
Sender: TQRCustomBand; var PrintBand: Boolean);
var
vApto, vPresente, vAusente : integer;
begin
vApto := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vApto, controle from MEMBROS where SITIGREJA = "ATIVO"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
vPresente := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vPresent, controle from MEMBROS where SITIGREJA = "ATIVO" and Sc06 = "P"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
vAusente := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vAusente, controle from MEMBROS where SITIGREJA = "ATIVO" and Sc06 = "P"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
QrLabel21.Caption := InttoStr(vApto);
QrLabel22.Caption := InttoStr(vPresente);
QrLabel23.Caption := InttoStr(vAusente);
end;
não esta funcionando. Podem me orientar? (é delphi)
O banco de dados é Paradox. Tenho um relatorio onde existem os campos SITIGREJA (ativo ou inativo) e o campo SC06 (com as informações A (ausente) ou P(presente).
Ao final do relatorio, preciso saber quantos membros estão Ativos, quantos Ausentes e quantos Presentes.
Escrevi o seguinte codigo:
procedure TFrm_Rel_Freq_Sta_Ceia.SummaryBand1BeforePrint(
Sender: TQRCustomBand; var PrintBand: Boolean);
var
vApto, vPresente, vAusente : integer;
begin
vApto := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vApto, controle from MEMBROS where SITIGREJA = "ATIVO"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
vPresente := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vPresent, controle from MEMBROS where SITIGREJA = "ATIVO" and Sc06 = "P"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
vAusente := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vAusente, controle from MEMBROS where SITIGREJA = "ATIVO" and Sc06 = "P"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
QrLabel21.Caption := InttoStr(vApto);
QrLabel22.Caption := InttoStr(vPresente);
QrLabel23.Caption := InttoStr(vAusente);
end;
não esta funcionando. Podem me orientar? (é delphi)
Gilberto Moreira
Curtidas 0
Respostas
Michael Sampaio
02/06/2013
Fala rapaz,
Então faltou somente o seguinte vc anexar valor as variaveis declaradas segue o
codigo corrigido espero que funcione abraços
Então faltou somente o seguinte vc anexar valor as variaveis declaradas segue o
codigo corrigido espero que funcione abraços
procedure TFrm_Rel_Freq_Sta_Ceia.SummaryBand1BeforePrint(
Sender: TQRCustomBand; var PrintBand: Boolean);
var
vApto, vPresente, vAusente : integer;
begin
vApto := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vApto, controle from MEMBROS where SITIGREJA = "ATIVO"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
//Aqui Modifiquei
vapto:=Dtm_Secre.qMembros_O.FieldByName('vapto').AsInteger ;
vPresente := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vPresent, controle from MEMBROS where SITIGREJA = "ATIVO" and Sc06 = "P"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
//Aqui modifiquei
vpresente:=Dtm_Secre.qMembros_O.FieldByName('vpresente').AsInteger ;
vAusente := 0;
Dtm_Secre.qMembros_O.Close;
Dtm_Secre.qMembros_O.Sql.Clear;
Dtm_Secre.qMembros_O.Sql.Add('Select count(sitigreja) as vAusente, controle from MEMBROS where SITIGREJA = "ATIVO" and Sc06 = "P"');
Dtm_Secre.qMembros_O.ExecSql;
Dtm_Secre.qMembros_O.Open;
//Aqui modifiquei
vausente:=Dtm_Secre.qMembros_O.FieldByName('vausente').AsInteger ;
QrLabel21.Caption := InttoStr(vApto);
QrLabel22.Caption := InttoStr(vPresente);
QrLabel23.Caption := InttoStr(vAusente);
end;
GOSTEI 0
Gilberto Moreira
02/06/2013
Amigo, infelismente não funcionou. As variaveis vApto, vPresente e vAusente NÃO pertencem à tabela. deu o seguinte erro
QMEMBRO_O: FIELD 'VAPTO' NOT FOUND.
QMEMBRO_O: FIELD 'VAPTO' NOT FOUND.
GOSTEI 0
Michael Sampaio
02/06/2013
Então realizei tal procedimento antes o mandar aqui funcionou perfeitamente,
se quiser posso te mandar para que possa verificar qualquer coisa,
mas assim:
Para que o Execsql ??? ja que e um select nao vejo a necessidade do mesmo.
Qual versão do delphi?
E seu email para que possa estar lhe mandando o teste que realizei.
Testa sem o Execsql para ver no que que da ate mais abraços ...
se quiser posso te mandar para que possa verificar qualquer coisa,
mas assim:
Para que o Execsql ??? ja que e um select nao vejo a necessidade do mesmo.
Qual versão do delphi?
E seu email para que possa estar lhe mandando o teste que realizei.
Testa sem o Execsql para ver no que que da ate mais abraços ...
GOSTEI 0
Michael Sampaio
02/06/2013
Então realizei tal procedimento antes o mandar aqui funcionou perfeitamente,
se quiser posso te mandar para que possa verificar qualquer coisa,
mas assim:
Para que o Execsql ??? ja que e um select nao vejo a necessidade do mesmo.
Qual versão do delphi?
E seu email para que possa estar lhe mandando o teste que realizei.
Testa sem o Execsql para ver no que que da ate mais abraços ...
se quiser posso te mandar para que possa verificar qualquer coisa,
mas assim:
Para que o Execsql ??? ja que e um select nao vejo a necessidade do mesmo.
Qual versão do delphi?
E seu email para que possa estar lhe mandando o teste que realizei.
Testa sem o Execsql para ver no que que da ate mais abraços ...
Somente anexando entendo que os mesmos não sao campos da tabela mas ao
vc indicar o "as vApto" eles passam a ser uma coluna temporaria para essa
query podendo assim utilizar para tal exibção
GOSTEI 0