Fórum Ordenar consulta #239617
25/06/2004
0
Tenho um form de consulta de Funcionários onde estou usando uma consulta SQL, mas não consigu classificar por nome do funcionário.
Segue o código do botão pesquisar:
[color=orange:96a750db17]With Qry_Funcionario Do
Begin
Close;
SQL.Clear;
sql.Add(´Select Funcionario.Codigo,Funcionario.Nome,Funcionario.CPF, Funcionario.Fone1,Funcionario.Fone2,Funcionario.Comissao,Funcionario.Endereco,Funcionario.Bairro, Funcionario.Cidade,Funcionario.Cargo, Funcionario.Dataadm, Funcionario.Email´);
sql.Add(´From Funcionario´);
sql.Add(´where´);
if (trim(editFunc.Text) <> ´´) then SQL.Add(´(Nome like´ + #39 + ´¬´ + editfunc.text + ´¬´+ 39 +´) and ´);
if (trim(editcodigo.Text) <> ´´) then sql.add(´(codigo =´ + editCodigo.text + ´) and ´);
if (trim(EditCPF.Text) <> ´´) then sql.add(´(CPF like´ + 39 + EditCPF.Text + 39 +´) and ´);
DBgrid1.Columns[0].FieldName:= ´codigo´;
DBgrid1.Columns[1].FieldName:= ´Nome´;
DBgrid1.Columns[2].FieldName:= ´CPF´;
DBgrid1.Columns[3].FieldName:= ´Fone1´;
DBgrid1.Columns[4].FieldName:= ´Fone2´;
DBgrid1.Columns[5].FieldName:= ´Comissao´;
DBgrid1.Columns[6].FieldName:= ´Cargo´;
DBgrid1.Columns[7].FieldName:= ´Endereco´;
DBgrid1.Columns[8].FieldName:= ´Bairro´;
DBgrid1.Columns[9].FieldName:= ´Cidade´;
DBgrid1.Columns[10].FieldName:= ´DataAdm´;
DBgrid1.Columns[11].FieldName:= ´Email´;
s:= sql.text;
end;
delete(s,length(s)-5,5);
qry_Funcionario.SQL.Text:= s;
Try
QRy_Funcionario.Prepare;
Qry_Funcionario.Open;
except
on EDBEngineError do
begin
messagedlg(´Digite um parâmatro para consulta´,mtinformation,[mbok],0);
editFunc.setfocus;
exit;
end;
end;
if Qry_Funcionario.RecordCount=0 then
Begin
ShowMessage(´Nenhum Funcionário foi Encontrado com esses Dados!´);
End
Else
begin
Res:=QRY_Funcionario.RecordCount;
LBLRes.Caption:= inttostr(res);
end;[/color:96a750db17]
Como ue posso classificar pelo nome do Funcionário?
Tenho um outro código igual a este mas é uma consulta de fornecedor, nesta eu preciso colocar um RadioGroup com duas opções de classificação: por razão social e por nome do contato. Também não estou conseguindo. Este código que estou usando, eu peguei pronto em um programa de exemplo e funciona bem até, a não ser na questão da classificação que me enrosquei agora.
Será que alguem pode me ajudar???
Valeu Galera....
Segue o código do botão pesquisar:
[color=orange:96a750db17]With Qry_Funcionario Do
Begin
Close;
SQL.Clear;
sql.Add(´Select Funcionario.Codigo,Funcionario.Nome,Funcionario.CPF, Funcionario.Fone1,Funcionario.Fone2,Funcionario.Comissao,Funcionario.Endereco,Funcionario.Bairro, Funcionario.Cidade,Funcionario.Cargo, Funcionario.Dataadm, Funcionario.Email´);
sql.Add(´From Funcionario´);
sql.Add(´where´);
if (trim(editFunc.Text) <> ´´) then SQL.Add(´(Nome like´ + #39 + ´¬´ + editfunc.text + ´¬´+ 39 +´) and ´);
if (trim(editcodigo.Text) <> ´´) then sql.add(´(codigo =´ + editCodigo.text + ´) and ´);
if (trim(EditCPF.Text) <> ´´) then sql.add(´(CPF like´ + 39 + EditCPF.Text + 39 +´) and ´);
DBgrid1.Columns[0].FieldName:= ´codigo´;
DBgrid1.Columns[1].FieldName:= ´Nome´;
DBgrid1.Columns[2].FieldName:= ´CPF´;
DBgrid1.Columns[3].FieldName:= ´Fone1´;
DBgrid1.Columns[4].FieldName:= ´Fone2´;
DBgrid1.Columns[5].FieldName:= ´Comissao´;
DBgrid1.Columns[6].FieldName:= ´Cargo´;
DBgrid1.Columns[7].FieldName:= ´Endereco´;
DBgrid1.Columns[8].FieldName:= ´Bairro´;
DBgrid1.Columns[9].FieldName:= ´Cidade´;
DBgrid1.Columns[10].FieldName:= ´DataAdm´;
DBgrid1.Columns[11].FieldName:= ´Email´;
s:= sql.text;
end;
delete(s,length(s)-5,5);
qry_Funcionario.SQL.Text:= s;
Try
QRy_Funcionario.Prepare;
Qry_Funcionario.Open;
except
on EDBEngineError do
begin
messagedlg(´Digite um parâmatro para consulta´,mtinformation,[mbok],0);
editFunc.setfocus;
exit;
end;
end;
if Qry_Funcionario.RecordCount=0 then
Begin
ShowMessage(´Nenhum Funcionário foi Encontrado com esses Dados!´);
End
Else
begin
Res:=QRY_Funcionario.RecordCount;
LBLRes.Caption:= inttostr(res);
end;[/color:96a750db17]
Como ue posso classificar pelo nome do Funcionário?
Tenho um outro código igual a este mas é uma consulta de fornecedor, nesta eu preciso colocar um RadioGroup com duas opções de classificação: por razão social e por nome do contato. Também não estou conseguindo. Este código que estou usando, eu peguei pronto em um programa de exemplo e funciona bem até, a não ser na questão da classificação que me enrosquei agora.
Será que alguem pode me ajudar???
Valeu Galera....
Tcharlos
Curtir tópico
+ 0
Responder
Posts
25/06/2004
Emerson Nascimento
veja se dessa forma te ajuda:
with Qry_Funcionario do
begin
    S := ´ Select Codigo,Nome,CPF,Fone1,Fone2,Comissao,Endereco,Bairro,Cidade,Cargo,Dataadm,Email´+
              ´ From Funcionario´+
              ´ Where ´;
    if Trim(editFunc.Text) <> ´´ then
        S := S + ´ (Nome like ´ + QuotedStr(´¬´+EditFunc.Text+´¬´) + ´) and ´;
    if Trim(editcodigo.Text) <> ´´ then
        S := S + ´ (codigo = ´ + EditCodigo.Text + ´) and ´;
    if Trim(EditCPF.Text) <> ´´ then
        S := S + ´ (CPF = ´ + QuotedStr(EditCPF.Text) + ´) and ´;
    Delete(S,length(S)-5,5);
    S := S + ´ order by Nome´; // aqui é feita a classificação
    Close;
    SQL.Text := S;
end;
with DBgrid1 do
begin
    Columns[0].FieldName:= ´codigo´;
    Columns[1].FieldName:= ´Nome´;
    Columns[2].FieldName:= ´CPF´;
    Columns[3].FieldName:= ´Fone1´;
    Columns[4].FieldName:= ´Fone2´;
    Columns[5].FieldName:= ´Comissao´;
    Columns[6].FieldName:= ´Cargo´;
    Columns[7].FieldName:= ´Endereco´;
    Columns[8].FieldName:= ´Bairro´;
    Columns[9].FieldName:= ´Cidade´;
    Columns[10].FieldName:= ´DataAdm´;
    Columns[11].FieldName:= ´Email´;
end;
try
    QRy_Funcionario.Prepare;
    Qry_Funcionario.Open;
except
    on EDBEngineError do
    begin
        messagedlg(´Digite um parâmetro para consulta´,mtinformation,[mbok],0);
        editFunc.setfocus;
        exit;
    end;
end;
if Qry_Funcionario.IsEmpty then
    ShowMessage(´Nenhum Funcionário foi Encontrado com esses Dados!´)
else
    LBLRes.Caption:= inttostr(QRY_Funcionario.RecordCount);
with Qry_Funcionario do
begin
    S := ´ Select Codigo,Nome,CPF,Fone1,Fone2,Comissao,Endereco,Bairro,Cidade,Cargo,Dataadm,Email´+
              ´ From Funcionario´+
              ´ Where ´;
    if Trim(editFunc.Text) <> ´´ then
        S := S + ´ (Nome like ´ + QuotedStr(´¬´+EditFunc.Text+´¬´) + ´) and ´;
    if Trim(editcodigo.Text) <> ´´ then
        S := S + ´ (codigo = ´ + EditCodigo.Text + ´) and ´;
    if Trim(EditCPF.Text) <> ´´ then
        S := S + ´ (CPF = ´ + QuotedStr(EditCPF.Text) + ´) and ´;
    Delete(S,length(S)-5,5);
    S := S + ´ order by Nome´; // aqui é feita a classificação
    Close;
    SQL.Text := S;
end;
with DBgrid1 do
begin
    Columns[0].FieldName:= ´codigo´;
    Columns[1].FieldName:= ´Nome´;
    Columns[2].FieldName:= ´CPF´;
    Columns[3].FieldName:= ´Fone1´;
    Columns[4].FieldName:= ´Fone2´;
    Columns[5].FieldName:= ´Comissao´;
    Columns[6].FieldName:= ´Cargo´;
    Columns[7].FieldName:= ´Endereco´;
    Columns[8].FieldName:= ´Bairro´;
    Columns[9].FieldName:= ´Cidade´;
    Columns[10].FieldName:= ´DataAdm´;
    Columns[11].FieldName:= ´Email´;
end;
try
    QRy_Funcionario.Prepare;
    Qry_Funcionario.Open;
except
    on EDBEngineError do
    begin
        messagedlg(´Digite um parâmetro para consulta´,mtinformation,[mbok],0);
        editFunc.setfocus;
        exit;
    end;
end;
if Qry_Funcionario.IsEmpty then
    ShowMessage(´Nenhum Funcionário foi Encontrado com esses Dados!´)
else
    LBLRes.Caption:= inttostr(QRY_Funcionario.RecordCount);
Responder
Gostei + 0
25/06/2004
Tcharlos
Valeu cara, mas infelismente não deu. Eu até já tinha tentado isso com algumas pequenas alterações.Aparece a seguinte mensagem quando o botão é clicado:
[b:074e7fc6bd]Invalid use Keyword
Token: order[/b:074e7fc6bd]
de qualquer forma obrigado. Vou aguardar alguém que possa me ajudar.
[b:074e7fc6bd]Invalid use Keyword
Token: order[/b:074e7fc6bd]
de qualquer forma obrigado. Vou aguardar alguém que possa me ajudar.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)