Relatório
20/12/2003
0
No botão ok, coloquei o seguinte:
procedure TFRelEsquemaTipo.SpeedButton1Click(Sender: TObject);
begin
FRelEsquemaTipo.close;
query1.filter:=´marca=´+quotedstr(DBLookupComboBox1.text);
query1.filtered:=true;
application.createform(tFRelEsquemaMod,FRelEsquemaMod);
FRelEsquemaMod.QuickRep1.preview;
end;
Mas só funciona com o primeiro que eu selecionar, ou seja, se eu selecionar a marca Panasonic aparece todos os registros. Se eu selecionar a marca Sony, aparece o relatório da Panasonic, e é assim com todas as marcas. Como eu posso arrumar isto :?: :?: :?:
:)
Franck.c
Posts
20/12/2003
Tnaires
Acho que seu código não está dando certo pq vc não tá liberando seu formulário da memória qdo dá um close. Acrescente a linha Action := caFree; no OnClose, e não esqueça de criá-lo antes de filtrar a query.
Sucesso
20/12/2003
Tnaires
O usuário escolheu a marca Panasonic. Vc filtra legal, e aí vc cria outro formulário (dois forms do mesmo tipo existentes: um filtrado e o outro não), mas o Sender (quem disparou o evento) foi o q já existia. Então, o filtro anterior prevalece.
Depois, escolheu a marca Sony. Filtrou legal, mas um terceiro formulário é criado (o primeiro sem filtro, o segundo filtrado com Panasonic e o terceiro com Sony). Como quem disparou o evento foi o Panasonic, esse relatório é mostrado. E assim sucessivamente...
No final, sua memória fica cheia d forms. Cuidado com overflow.
Bom, é isso, qq coisa poste pra nós.
Sucesso
21/12/2003
Tnaires
function FormularioExistente(F: TForm): boolean; var i: integer; begin Result := false; for i := 0 to Application.ComponentCount - 1 do if Application.Components[i] = F then Result := true; end; procedure TFRelEsquemaTipo.SpeedButton1Click(Sender: TObject); begin FRelEsquemaTipo.close; if not FormularioExistente(FRelEsquemaMod) then Application.CreateForm(TFRelEsquemaMod, FRelEsquemaMod); query1.filter:=´marca=´+quotedstr(DBLookupComboBox1.text); query1.filtered:=true; FRelEsquemaMod.QuickRep1.preview; end;
Não esquecer tb d colocar, no evento OnClose do FRelEsquemaMod, essa linha:
Action := caFree;
Tomara q dessa vez dê certo! Até logo.
Clique aqui para fazer login e interagir na Comunidade :)