Passar valor de um parametro para um SELECT DINAMICO !!
27/12/2009
0
var
S1: TStringList;
begin
S1 := TStringList.Create; S1.Add('select cli.id_cliente, cli.nome, cli.cpf, vnd.data_venda, vnd.nome_agente, vnd.nome_banco,');
S1.Add('vnd.nome_produto,vnd.nome_tabela,vnd.plano_atl,vnd.porcentagem_paga,vnd.valor_refin,vnd.valor_parcela,');
S1.Add('vnd.valor_liberado,vnd.status_proposta,vnd.responsavel_lancamento,vnd.comissao_rec_banco,');
S1.Add('vnd.comissao_rec_promotora,vnd.comissao_rec_agente,vnd.porcentagem_banco,vnd.porcentagem_promotora,');
S1.Add('vnd.porcentagem_agente,vnd.plano_ant from clientes cli, vendas vnd');
S1.Add('where (cli.id_cliente = vnd.id_cliente)and vnd.data_venda between :DATAINI and :DATAFIM');
If dbeNomeBanco.Text <> EmptyStr then
S1.Add('and vnd.nome_banco ='+QuotedStr(dbeNomeBanco.Text)); If dbeNomeProduto.Text <> EmptyStr then
S1.Add('and vnd.nome_produto ='+QuotedStr(dbeNomeProduto.Text)); If edtNomeTabela.Text <> EmptyStr then
S1.Add('and vnd.nome_tabela ='+QuotedStr(edtNomeTabela.Text)); If edtStatus.Text <> EmptyStr then
S1.Add('and vnd.status_proposta ='+QuotedStr(edtStatus.Text)); cdsConsultaContratos.Close;
cdsConsultaContratos.CommandText := S1.Text;
cdsConsultaContratos.Open; FreeAndNil(S1);
No ibexpert roda perfeito, eu não estou sabendo passar o valor da DATAINI e DATAFIM para o select. Preciso disto urgente preciso entregar isto na terça-feira. Conto com a ajuda de vcs. Obrigado e abraços.
Osvaldo Domênico
Posts
28/12/2009
Luis Godinho
Acredito que funcionará assim. http://www.delphiwork.blogspot.com/
28/12/2009
Osvaldo Domênico
28/12/2009
Osvaldo Domênico
Obrigado pela grande ajuda, o problema estas 100% resolvido.
Segue o código abaixo para se alguem tiver a mesma dúvida de como montar um SELECT DINAMICO.
procedure TfrmAcompanhamentoProducao.btnGerarConsultaClick(Sender: TObject);
var
S1: TStringList;
begin
S1 := TStringList.Create;
S1.Add('select cli.id_cliente, cli.nome, cli.cpf, vnd.data_venda, vnd.nome_agente, vnd.nome_banco,');
S1.Add('vnd.nome_produto,vnd.nome_tabela,vnd.plano_atl,vnd.porcentagem_paga,vnd.valor_refin,vnd.valor_parcela,');
S1.Add('vnd.valor_liberado,vnd.status_proposta,vnd.responsavel_lancamento,vnd.comissao_rec_banco,');
S1.Add('vnd.comissao_rec_promotora,vnd.comissao_rec_agente,vnd.porcentagem_banco,vnd.porcentagem_promotora,');
S1.Add('vnd.porcentagem_agente,vnd.plano_ant from clientes cli, vendas vnd');
S1.Add('where (cli.id_cliente = vnd.id_cliente)and vnd.data_venda between '+QuotedStr(FormatDateTime('mm/dd/yyyy',edtDataIni.Date)));
S1.Add('and'+ QuotedStr(FormatDateTime('mm/dd/yyyy',edtDataFim.Date)));
If dbeNomeBanco.Text <> EmptyStr then
S1.Add('and vnd.nome_banco ='+QuotedStr(dbeNomeBanco.Text));
If dbeNomeProduto.Text <> EmptyStr then
S1.Add('and vnd.nome_produto ='+QuotedStr(dbeNomeProduto.Text));
If edtNomeTabela.Text <> EmptyStr then
S1.Add('and vnd.nome_tabela ='+QuotedStr(edtNomeTabela.Text));
If edtStatus.Text <> EmptyStr then
S1.Add('and vnd.status_proposta ='+QuotedStr(edtStatus.Text));
cdsConsultaContratos.Close;
cdsConsultaContratos.CommandText := S1.Text;
cdsConsultaContratos.Open;
FreeAndNil(S1);
Abraços e boas festas.
Clique aqui para fazer login e interagir na Comunidade :)