Avatar billede jisch Mester
09. november 2008 - 20:33 Der er 9 kommentarer og
1 løsning

Toolbar/Statusbar i QuickReport

Delphi 7, QuickReport 3,
Jeg har det problem at jeg har et par programmer der skal udvides og disse programmer bruger QuickReport. Jeg vil helst undgå at omskrive programmerne med en anden reportgenerator. Mine spørgsmål er følgende:
1) Hvordan kan jeg kontrollere Toolbar og Statusbar ved QR.Preview; med hensyn til antal Buttons - Captions og Hints?
2) Jeg kan beregne antal sider med en funktion (Int(RecordCount/antal items udskrevet pr side + 0.99)), men findes der ikke en funktion i QR der indeholder denne værdi?

Hilsen
Avatar billede hrc Mester
09. november 2008 - 20:42 #1
ad. 1. Så vidt jeg ved kan du bare lave din egen toolbar; alle funktionerne er af finde i QuickRep'en. Altså noget med en TTActionList (TImageList) og en TToolbar.. Det burde kunne lade sig gøre. I øvrigt en gammel version af QR, men der er måske ikke andre der kan køre på 7'eren.

ad. 2. Hvis du låser det til altid at lave en Preview kan du finde antallet af sider der. Når brugeren vælger print skal du vælge at gendanne rapporten (noget man gør når der bruges OnNeedData), nu med antallet af sider.
Avatar billede jisch Mester
09. november 2008 - 21:25 #2
>hrc: Tak,
Ad.1. Den er jeg næsten med på, men ved QR.Preview vises QR's toolbar - hvordan får jeg smidt den ud og hvordan får jeg implementeret min egen?
Ad.2. Den er jeg også næsten med på, men hvilken "variabel" fortæller mig antal sider?
Avatar billede hrc Mester
10. november 2008 - 00:45 #3
For at tage det sidste først: I QuickRep'ens OnAfterPreview kan du aflæse antallet af sider. Måske kan du springe det over og snuppe værdien i OnBeforePrint, men jeg er ikke sikker på hvorvidt siderne nulstilles på det tidspunkt - må undersøges.

Hvordan man ombytter toolbaren må jeg kigge på, på arbejdet i morgen. Mener at da man har VCL-koden til preview-formen, kan man bare tilrette den efter eget behov.
Avatar billede jisch Mester
10. november 2008 - 20:43 #4
>hrc: Dejligt at du gider se på det!
Ad.1. Jeg har fundet frem til denne side:
  http://www.qusoft.com/Downloaddoc.html
Herfra kan man downloade "customPreview.zip".
Jeg har afprøvet koden og ved forskellige tilretninger (der er fejl i koden) har jeg fået det til at virke (ikke i mit program endnu). Det ser ud til at koden er skrevet til QuickReport 5. I Delphi 7 er det QR 3 (manglende funktionskald).
Koden er svær tilgængelig og sjusket.

Ad.2. Jeg har set lidt på koden nævnt ovenfor. Der er en funktion qrprint.PageCount. Den skal jeg se lidt nærmere på.
Avatar billede jisch Mester
10. november 2008 - 20:48 #5
>hrc:
Jeg mangler lige at spørge: Hvor har du VCL-koden til Preview-formen fra? Der følger da ikke source-kode med til QR.
Avatar billede jisch Mester
10. november 2008 - 22:52 #6
Ad.2. Da QR ikke kender sideantal før efter Preview eller Print kan PageCount ikke bruges før udskriften er tilendebragt. Jeg har fundet følgende løsning:

Function FindPageCount(Sender: TObject): Integer;
Begin
  (Sender As TQuickRep).Prepare;
  Result:=(Sender As TQuickRep).QRPrinter.PageCount;
  (Sender As TQuickRep).QRPrinter.Free;
  (Sender As TQuickRep).QRPrinter:=Nil;
End;
Avatar billede hrc Mester
11. november 2008 - 09:52 #7
Jeg har sourcekoden til det meste (tror ikke jeg har alt, noget er sikkert binært) af QuickReport (og det er skodkode) og dens "Standard Preview Form" hedder QRPrev.pas (og .dfm).

Jeg bruger sammentællingen af sider i en rapport, hvor jeg tæller frem vha. OnNeedData. Ved ikke om man kan gøre samme hvis rapporten er tilknyttet et dataset:

procedure TfrmReportOutput.QuickRepAfterPreview(Sender: TObject);
begin
  fTotalCount := QuickRep.PageNumber;
end;

Humlen er, at man genererer rapporten forfra når man udskriver til printer.
Avatar billede jisch Mester
14. november 2008 - 10:15 #8
>hrc:
Jeg har ingen sourcekode - *.pas filer til QR!! Hvor har du dem fra. Kan det evt. skyldes at min Delhi 7 er Interprise-versionen hvor det er RAVE der er installeret?
Avatar billede hrc Mester
14. november 2008 - 10:26 #9
Nej, det er ikke grunden. Troede du havde købt QR Pro for så får man sourcen med. I Enterprise versionen får man den vist i en lettere forkrøblet version (de var nok sure over at blive parkeret på et sidespor med introduktionen af Rave).
Avatar billede jisch Mester
01. december 2008 - 04:22 #10
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester