Fórum Relatórios em aplicação MDI #286309

28/06/2005

0

Oi gente,

Tenho uma aplicação MDI onde um dos forms é o form Preview para pré-visualização dos relatórios antes de serem impressos.
Meu problema é o seguinte:
Todos meus forms(exceto principal), inclusive o preview, estão com a propriedade formStyle=MDIChild. Utilizo o seguinte código pra imprimir meus relatórios:

//no onclik do botão para pré-visualização
procedure TfrmProdutos.ImprimiClick(Sender: TObject);
begin
if not Assigned(frmRelProdutos) then
frmRelProdutos:=TfrmRelProdutos.create(self); frmRelProdutos.QRProdutos.preview;
end;

// no onpreview do TQuickRep
procedure TfrmRelProdutos.QRProdutosPreview(Sender: TObject);
begin
if not assigned(FrmPreview) then
FrmPreview:=TFrmPreview.create(self);
FrmPreview.Qrpreview1.qrprinter:=QRProdutos.qrprinter;
FrmPreview.show;
end;

No momento em que eu crio o form frmRelProdutos, o delphi, mesmo sem eu dar o comando show neste formulário, mostra em tempo de execução esse form que tem o QuickRep no modo de estrutura dele e logo em seguida abre o preview com a visualizaçào correta. OS dois formulários ficam visíveis na tela e só fecham qdo o usuário da o comando.
O engraçado é que qdo eu deixo a propriedade do formulário formStyle=fsNormal roda normal, ou seja, qdo o usuario clica no botão para pré-visualizaçào, o form que starta é o preview como deveria ser.
Só que não posso manter a propriedade assim certo? Como fazer então pra manter a propiedade formStyle=MDIChild e poder criar meu form sem que ele apareça na tela?

Ai, será que fui clara? :roll:


Michelle

Michelle

Responder

Posts

29/06/2005

Isoft

Michelle,

é aconselho não usar o comando ´ frmRelProdutos.QRProdutos.preview;´

Faça o seguinte, exclua a seguinte linha:
[i:5b85f0c22d]frmRelProdutos.QRProdutos.preview; [/i:5b85f0c22d]

transfira essa função para dentro do proprio formulário frmRelProdutos no evento [i:5b85f0c22d]FormCreate[/i:5b85f0c22d], e escreva como sendo as ultimas linhas na ordem:
[b:5b85f0c22d]QRProdutos.preview;
Close;[/b:5b85f0c22d]

no mesmo formulário coloque no evento [i:5b85f0c22d]FormClose[/i:5b85f0c22d], e escreva tambem como sendo a ultima linha:
[b:5b85f0c22d]Action:=caFree[/b:5b85f0c22d];

O comando [b:5b85f0c22d]Action:=caFree[/b:5b85f0c22d]; libera a memoria utilizada pelo formulário evitando posteriormente a tela design do QReport.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar