Yazdırınca Preview ekranını kapatmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Yazdırınca Preview ekranını kapatmak
Merhaba,
Hem Zreport'ta hem de Qreport'ta şu işlemi yapmak istiyorum :
Zreport1.preview; ile preview ekranına girdim, burada print'e bastıktan sonra ana forma dönmek için Exit'e basmak gerekiyor. Benim istediğim, print'e basınca print ettikten sonra exit'e basılmış gibi ana forma dönmek.
(Zreport1.print; kullanmak istemiyorum)
Şimdiden teşekkürler....
Hem Zreport'ta hem de Qreport'ta şu işlemi yapmak istiyorum :
Zreport1.preview; ile preview ekranına girdim, burada print'e bastıktan sonra ana forma dönmek için Exit'e basmak gerekiyor. Benim istediğim, print'e basınca print ettikten sonra exit'e basılmış gibi ana forma dönmek.
(Zreport1.print; kullanmak istemiyorum)
Şimdiden teşekkürler....
Sevgi, Saygı.....
Preview yapmak bizim için önemli.
Zreport procedure ları bunlar. Sanırım burada bir numara yapmak lazım, ama ne ? İşi karıştırırım korkusuyla bulaşamadım.
Bir de, doğru değişikliği yaptık farzedelim, daha sonra Zreport için tekrar derleme gibi bir işlem yapmak gerekir mi ?
Kod: Tümünü seç
procedure TZReport.Preview;
begin
if PreparePrinter(Self) then
try
Printer.Preview;
Generate(False);
if Assigned(Printer) then Printer.Finished;
repeat
Application.ProcessMessages;
until not Assigned(Printer) or not Printer.InPreview or Application.Terminated;
finally
Printer.Free;
SetPrinter(nil);
end;
end;
procedure TZReport.Print;
begin
if PreparePrinter(Self) then begin
try
if ShowProgress then Printer.ProgressForm.Show;
Generate(False);
if Assigned(Printer) then begin
Printer.Finished;
if not Printer.Cancelled then Printer.Print;
end;
finally
Printer.Free;
SetPrinter(nil);
end;
end;
end;
Zreport procedure ları bunlar. Sanırım burada bir numara yapmak lazım, ama ne ? İşi karıştırırım korkusuyla bulaşamadım.
Bir de, doğru değişikliği yaptık farzedelim, daha sonra Zreport için tekrar derleme gibi bir işlem yapmak gerekir mi ?
Sevgi, Saygı.....
üstad c++ builder de dedigin olayi yaptim.(QuickRep için) Fakat delphi bilmedigim için delhiye nasıl cevrilir bilmiyorum.
Artik hem Delphi hem c++ builder bilen üstadlar belki delphiye cevirir.
Projede iki form var. Form1 ve Form2. Form1 de bir buton, Form2 de quickrep var.
Form1 için:
.h dosyası
..........
.cpp dosyası
........
Artik hem Delphi hem c++ builder bilen üstadlar belki delphiye cevirir.
Projede iki form var. Form1 ve Form2. Form1 de bir buton, Form2 de quickrep var.
Form1 için:
.h dosyası
.....
Kod: Tümünü seç
public: // User declarations
__fastcall TForm1(TComponent* Owner);
void __fastcall BenimClick(TObject *Sender);
.cpp dosyası
....
Kod: Tümünü seç
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BenimClick(TObject *Sender)
{
ShowMessage("Yazıp Cikacam");
Form2->QuickRep1->Print();
Form2->QuickRep1->QRPrinter->Client->Parent->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled=true;
Form2->QuickRep1->Preview();
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TForm *pPreviewForm=NULL;
TToolBar *pToolBar=NULL;
TToolButton *pToolBtn=NULL;
if( Form2->QuickRep1->QRPrinter==NULL ||
Form2->QuickRep1->QRPrinter->Client==NULL ||
Form2->QuickRep1->QRPrinter->Client->Parent==NULL)
return;
pPreviewForm = dynamic_cast<TForm *>(Form2->QuickRep1->QRPrinter->Client->Parent);
if( pPreviewForm==NULL)
return;
for(int i=0;i<pPreviewForm->ControlCount;i++)
{
pToolBar=dynamic_cast< TToolBar *>(pPreviewForm->Controls[i]);
if(pToolBar!=NULL)
{
for(int j=0;j<pToolBar->ControlCount;j++)
{
pToolBtn=dynamic_cast<TToolButton *>(pToolBar->Controls[j]);
if(pToolBtn!=NULL && pToolBtn->Name=="Print")
{
pToolBtn->OnClick = BenimClick;
Timer1->Enabled=false;
break;
}
}
break;
}
}
}
üstad zaten program dedigini yapiyor.
Şimdi Formda senin YAZDIR butonun var. bu butona basınca quickrep in preview ekranı geliyor.
QuickRep1->Preview(); calisiyor yani.
sona QuickRep deyken kullanıcı quickrep in yazdır butonuna basti.
program yazdirma işlemini yapip quickrep in CLOSE butonuna basmaya gerek kalmadan preview penceresi kapaniyor. Ve programa geri dönüyor.
yukarıdaki kodu delphiye cevirmeye calistim fakat delphi bilmedigim icin yapamadım.
bu delphide nasıl yazilir bilemiyorum mesela...
Kodu fikir verir diye yazdım.
Şimdi Formda senin YAZDIR butonun var. bu butona basınca quickrep in preview ekranı geliyor.
QuickRep1->Preview(); calisiyor yani.
sona QuickRep deyken kullanıcı quickrep in yazdır butonuna basti.
program yazdirma işlemini yapip quickrep in CLOSE butonuna basmaya gerek kalmadan preview penceresi kapaniyor. Ve programa geri dönüyor.
yukarıdaki kodu delphiye cevirmeye calistim fakat delphi bilmedigim icin yapamadım.
Kod: Tümünü seç
pToolBar=dynamic_cast< TToolBar *>(pPreviewForm->Controls[i]);
Kodu fikir verir diye yazdım.