Fórum O que está errado neste código? #197897
29/11/2003
0
Código:
var cliente, baixado:string;
begin
cliente:=edit1.Text;
baixado:=´false´;
with form_principal.tb_receber do
begin
form_principal.Query1.SQL.Clear;
form_principal.Query1.SQL.Add(´select (cliente baixado) from receber where cliente= :pzonal and baixado= :pzonal2´);
form_principal.Query1.ParamByName(´pzonal´).AsString := (cliente);
form_principal.Query1.ParamByName (´pzonal2´).AsString := (baixado);
form_principal.Query1.Prepare;
form_principal.Query1.Open;
form_rel_clientes_receber.QuickRep1.Preview;
Machado
Curtir tópico
+ 0Posts
29/11/2003
Rfpsatin
q erro esta dando?????????
form_principal.Query1.SQL.Add(´select (cliente baixado) from receber where cliente= :pzonal and
talvez teria q ser algo como
select c.baixado from receber r, cliente c
where c.cliente.......
entendeu?
Gostei + 0
29/11/2003
Douglas Bitencourt
Veja se isso resolve...
Código:
var cliente, baixado:string;
begin
cliente:=edit1.Text;
baixado:=´false´;
with form_principal.tb_receber do
begin
form_principal.Query1.SQL.Clear;
form_principal.Query1.SQL.Add(´select cliente, baixado from receber where cliente =:pzonal and baixado =:pzonal2´);
[b:86bdef24f4]
(*
tirei os parêntesis após o select e coloquei uma virgula entre os campos. Separei o sinal de igual na cláusula where dos campos e juntei ao sinal de dois pontos.
*)
[/b:86bdef24f4]
form_principal.Query1.ParamByName(´pzonal´).AsString := (cliente);
form_principal.Query1.ParamByName (´pzonal2´).AsString := (baixado); //remova esta linha caso use a dica abaixo
[b:86bdef24f4]
(*
pelo que entendi Baixado é = a pago, e vc quer os que não pagaram. Se vc vai definir em runtime quem fez o que aconselho a usar o campo baixado como tipo string, e usar flags (PG/NP - pago/não pago por exemplo) o que pode ser definido por um dbcombobox.
Agora se é vc quem vai definir isso, tente esta cláusula:
Where cliente =:pzonal and Baixado = false
*)
[/b:86bdef24f4]
form_principal.Query1.Prepare;
form_principal.Query1.Open;
form_rel_clientes_receber.QuickRep1.Preview;
Espero que ajude
informe se funcionar
Douglas.
Gostei + 0
30/11/2003
Machado
procedure TForm_Busca_receber_rel.SpeedButton1Click(Sender: TObject);
var cliente, baixado:string;
begin
cliente:=edit1.Text;
baixado:=´false´;
with form_principal.tb_receber do
begin
form_principal.Query1.SQL.Clear;
form_principal.Query1.SQL.Clear;
form_principal.Query1.SQL.Add(´select cliente, baixado from receber where cliente =:pzonal and baixado =:pzonal2´);
form_principal.Query1.ParamByName(´pzonal´).AsString := (cliente);
form_principal.Query1.ParamByName (´pzonal2´).AsString := (baixado);
form_principal.Query1.Prepare;
form_principal.Query1.Open;
form_rel_clientes_receber.QuickRep1.Preview;
Gostei + 0
01/12/2003
Douglas Bitencourt
reparei mais no seu código, não sei se seria isso, mas veja o seguinte:
Na sua primeira mensagem vc escreveu:
...e baixado (campo logico true e false...
Na descrição de sua variável vc escreveu:
[b:e4edcc6694]var cliente, baixado:string; [/b:e4edcc6694]
[i:e4edcc6694]Repare que vc declarou sua variável como [b:e4edcc6694]string[/b:e4edcc6694] e está usando um campo do tipo [b:e4edcc6694]lógico[/b:e4edcc6694] em sua tabela.[/i:e4edcc6694]
[b:e4edcc6694]baixado:=´false´; [/b:e4edcc6694]
[i:e4edcc6694] E atribuiu a variável [b:e4edcc6694]baixado[/b:e4edcc6694] um valor do tipo [b:e4edcc6694]string[/b:e4edcc6694].[/i:e4edcc6694]
Tente declarar assim:
[b:e4edcc6694]
var
cliente : string;
baixado : boolean;
[/b:e4edcc6694]
E atribua o seguinte valor a sua variável:
[b:e4edcc6694]
begin
cliente := edit1.Text;
baixado := false; // sem aspas
[/b:e4edcc6694]
Ve se funciona agora.
avisa ae se funcionar.
[]s
Douglas.
Gostei + 0
01/12/2003
Machado
Gostei + 0
01/12/2003
Douglas Bitencourt
tente este...
Desconsidere o sublinhado, é só para indentar...
Em um problema que tive semana passada aconteceu coisa parecida. Após remover as origens e colocar parecido como acima, o código passou a funcionar.
boa sorte
[]s
Douglas.
Gostei + 0
02/12/2003
Dedi
tente assim ,testei aqui e funcionou Perfeitamente.
var cliente:string; begin cliente:=edit1.Text; //faça uma verificação se o que esta passando esta igual ao que esta na tabela. with form_principal.Query1 do begin Close; SQL.Clear; SQL.Add(´select cliente,baixado from receber where (cliente =:pzonal) and (baixado =:pzonal2)´);//pzonal e pzonal2 deve estar junto ao (dois pontos). ParamByName(´pzonal´).AsString := cliente; ParamByName (´pzonal2´).Asboolean := FALSE;//se o conteudo será sempre false não precisa gastar uma variavel pra isso Prepare; Open; end; form_rel_clientes_receber.QuickRep1.Preview; end;
Dedi
Gostei + 0
03/12/2003
Machado
Vejam o código que funciona em outro relatório.
var final:boolean; // vARIAVEL
begin
final:=(false); // COLOCANDO DENTRO DA VARIAVEL O VALOR QUE EU DESEJO BUSCA
with form_principal.tb_receber do // TABLE ONDE ESTA CONTIDO OS DADOS QUE QUERO PESQUISAR
begin
form_contas_receber.Query1.Close;
form_contas_receber.Query1.SQL.Clear;
form_contas_receber.Query1.SQL.Add(´select * from receber WHERE baixado= :pzonal´);// baixado é o campo onde quero proburar que de ser true ou fase
form_contas_receber.Query1.ParamByName(´pzonal´).AsBoolean := (final);
form_contas_receber.Query1.Prepare;
form_contas_receber.Query1.Open;
form_rel.QuickRep1.Preview;
end;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)