Fórum DELPHI: Ajudem-me a criar uma pesquisa no banco de dados onde eu consiga obter todos os nomes repetidos dentro de um mês ordenados #533234
01/10/2015
0
Eu sou iniciante e gostaria que me ajudassem com um código no delphi. Eu crie um banco de dados no firebird contendo três colunas(código,nome,turma,data). Esse sistema cadastra os alunos por dia que chegam atrasados. Porém eu gostaria que me ajudassem com um código utilizando o SIMPLEDATASET na qual eu fizer uma pesquisa no banco de dados através de dois DATETIMEPICKER com data inicial(datetimepicker1) e data final(datetimepicker2) onde obterei todos os nomes dos alunos que se repetiram no mês por chegarem atrasados e exibidos no DBGRID. Inclusive gostaria de gerar um relatorio através do FASTREPORT. Lembrando que estou usando o DATAMODULE.
FORM PRINCIPAL
[img]http://arquivo.devmedia.com.br/forum/imagem/456595-20151001-064747.jpg[/img]
FORM DE PESQUISA
[img]http://arquivo.devmedia.com.br/forum/imagem/456595-20151001-064838.jpg[/img]
Eunapio
Curtir tópico
+ 0Posts
01/10/2015
Raimundo Pereira
VAR
CONV_DE:STRING;
CONV_ATE:STRING;
SCRIPT_SELECT:STRING;
CLIENTE:STRING;
//----------------------------------------------------------------------
//----------------------------------------------------------------------
DATETIMEPICKER1 RENOMEI PARA DE_DATA
DATETIMEPICKER2 RENOMEI PARA ATE_DATA
//----------------------------------------------------------------------
PROCEDIMENTO DO BUTTON PESQUISAR
BEGIN
//-------------------------------------------------- // AQUI VERIFICA SE FOI DIGITADO ALGO NO EDIT NOME E PREECHE A STRING CLIENTE
if (Ed_nome_cliente.Text<>'') then
BEGIN
CLIENTE:=' AND NOME LIKE ''%'+Ed_nome_cliente.Text+'%''';
END
ELSE
BEGIN
CLIENTE:=' AND NOME IS not NULL';
END;
//--------------------------------------------------
CONV_DE:='';
CONV_ATE:='';
CONV_DE:=DateToStr(DE_DATA.Date); //AQUI ELE VAI LANÇAR A DATA INFORMADA NO DATEPICKER1 PARA A VARIÁVEL CONV_DE
CONV_ATE:=DateToStr(ATE_DATA.Date); //AQUI ELE VAI LANÇAR A DATA INFORMADA NO DATEPICKER2 PARA A VARIÁVEL CONV_ATE
CONV_DE:=StringReplace(CONV_DE,'/','.', [rfReplaceAll, rfIgnoreCase]); //AQUI ELE VAI SUBSTITUIR A / POR .- FIRIBIRD ARMAZENA DATAS POR PONTO
CONV_ATE:=StringReplace(CONV_ATE,'/','.', [rfReplaceAll, rfIgnoreCase]); ///AQUI ELE VAI SUBSTITUIR A / POR .- FIRIBIRD ARMAZENA DATAS POR PONTO
DM.COLETA.Close;
//------------------------------------------------------------------------------------------------------------------------------------------------ CONSTRUÇÃO DO SELECT
SCRIPT_SELECT:='SELECT * FROM SUA_TABELA WHERE '+CLIENTE+' AND DATA BETWEEN '''
+CONV_DE+''' AND '''
+CONV_ATE+''''+
' ORDER BY NOME;';
//--- AQUI ELE ENVIA O SELECT PARA A SUA QRY
DM.SUA_QUERY.SQL.Text:=SCRIPT_SELECT;
DM.SUA_QUERY.OPEN;
if DM.SUA_QUERY.RecordCount=0 then
BEGIN
Application.MessageBox('Nenhum registro encontrado','Resultado da Consulta');
END
else
begin
DM.SUA_QUERY.FetchAll;
end;
Gostei + 0
02/10/2015
Eunapio
Gostei + 0
02/10/2015
Eunapio
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)