Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StrinGrid mit Linien über Ravereport ausdrucken. (https://www.delphipraxis.net/107861-stringrid-mit-linien-ueber-ravereport-ausdrucken.html)

Code 3. Feb 2008 18:17


StrinGrid mit Linien über Ravereport ausdrucken.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Alle.

Ich möchte ein StrinGrid mit Linien mit dem Ravereport ausdrucken. Im Prinzip klappt das ganze, nur der Text ist nicht da wo er hingehört.

Ich benutze diesen Code. Was mache ich da falsch, ich komme nicht darauf.
Delphi-Quellcode:
      procedure TForm4.RvSystem1Print(Sender: TObject);
var
     I: Integer;
     RP1: TBaseReport;

     procedure PHeader;
     begin
          with RP1 do
          begin
               Home;
               // *** Seiteneinstellung
               SectionLeft := 0.5;
               SectionRight := PageWidth - 0.5;
               SectionTop := 1.0;
               SectionBottom := PageHeight - 1.5;

               SetFont ('Arial', 16);
               FontColor := clNavy;
               Bold := True;
               PrintCenter ('Raumverwaltung', PageWidth / 2);
               Bold := False;
               NewLine;
               NewLine;
               SetFont ('Arial', 12);
               FontColor := clBlack;

               ClearTabs;
               SetTab (SectionLeft, pjCenter, 1.0, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 2.2, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 3.4, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 4.6, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 5.8, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 7.0, 5, BoxLineAll, 5);
               SetTab (NA, pjCenter, PageWidth - 2, 5, BoxLineAll, 5);

               Bold := True;
               PrintTab ('Raum');
               PrintTab ('belegt');
               PrintTab ('von');
               PrintTab ('bis');
               PrintTab ('als');
               PrintTab ('Bemerkung');
               Bold := False;
               NewLine;

          end;
     end;
begin
     RP1 := Sender as TBaseReport;
     with RP1 do
     begin
          PHeader; // *** Seitenkopf
          for I := 1 to StringGrid1.RowCount - 1 do
          begin
               if LinesLeft < 5 then // Neue Seite
               begin
                    NewPage;
                    PHeader;
               end;
               PrintTab (StringGrid1.Cells[1,I]);
               PrintTab (StringGrid1.Cells[2,I]);
               PrintTab (StringGrid1.Cells[3,I]);
               PrintTab (StringGrid1.Cells[4,I]);
               PrintTab (StringGrid1.Cells[5,I]);
               PrintTab (StringGrid1.Cells[6,I]);
               NewLine;
          end;
     end;
end;

grenzgaenger 3. Feb 2008 18:51

Re: StrinGrid mit Linien über Ravereport ausdrucken.
 
mal ins blaue hinein geschossen

Delphi-Quellcode:
procedure TForm4.RvSystem1Print(Sender: TObject);
var
     I: Integer;
     RP1: TBaseReport;

     procedure PHeader(const rp1: TBaseReport);
     begin
          with RP1 do
          begin
               Home;
               // *** Seiteneinstellung
               SectionLeft := 0.5;
               SectionRight := PageWidth - 0.5;
               SectionTop := 1.0;
               SectionBottom := PageHeight - 1.5;

               SetFont ('Arial', 16);
               FontColor := clNavy;
               Bold := True;
               PrintCenter ('Raumverwaltung', PageWidth / 2);
               Bold := False;
               NewLine;
               NewLine;
               SetFont ('Arial', 12);
               FontColor := clBlack;

               ClearTabs;
               SetTab (SectionLeft, pjCenter, 1.0, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 2.2, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 3.4, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 4.6, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 5.8, 5, BoxLineAll, 5);
               SetTab (SectionLeft, pjCenter, 7.0, 5, BoxLineAll, 5);
             //  SetTab (NA, pjCenter, PageWidth - 2, 5, BoxLineAll, 5);

               Bold := True;
               PrintTab ('Raum');
               PrintTab ('belegt');
               PrintTab ('von');
               PrintTab ('bis');
               PrintTab ('als');
               PrintTab ('Bemerkung');
               Bold := False;
               NewLine;

          end;
     end;
begin
     RP1 := Sender as TBaseReport;
     with RP1 do
     begin
          PHeader(rp1) // *** Seitenkopf
          for I := 1 to StringGrid1.RowCount - 1 do
          begin
               if LinesLeft < 5 then // Neue Seite
               begin
                    NewPage;
                    PHeader(rp1);
               end;
               PrintTab (StringGrid1.Cells[1,I]);
               PrintTab (StringGrid1.Cells[2,I]);
               PrintTab (StringGrid1.Cells[3,I]);
               PrintTab (StringGrid1.Cells[4,I]);
               PrintTab (StringGrid1.Cells[5,I]);
               PrintTab (StringGrid1.Cells[6,I]);
               NewLine;
          end;
     end;
end;
probier es mal so ...

Code 3. Feb 2008 19:14

Re: StrinGrid mit Linien über Ravereport ausdrucken.
 
Zitat:

Zitat von grenzgaenger
mal ins blaue hinein geschossen
probier es mal so ...

Vielen Dank für die Mühe. Aber leider keine Änderung. Darstellung bleibt die Gleiche. Ne Gute Sache der Ravereport, aber an so kleine Sachen scheitert es dann bei mir.

Gruß
Klaus

grenzgaenger 3. Feb 2008 19:38

Re: StrinGrid mit Linien über Ravereport ausdrucken.
 
tja, der scheint nicht mitzubekommen, dass die tabstops gesetzt sind...

müsst mir das mal genauer ansehen...

andere möglichkeit wäre printxy... da bräuchtest keine tabstops mehr...

Code 4. Feb 2008 08:39

Re: StrinGrid mit Linien über Ravereport ausdrucken.
 
Zitat:

Zitat von grenzgaenger
tja, der scheint nicht mitzubekommen, dass die tabstops gesetzt sind...

müsst mir das mal genauer ansehen...

andere möglichkeit wäre printxy... da bräuchtest keine tabstops mehr...

Mit printxy Hatte ich auch schon daran gedacht, nur ist mir nicht bekannt wie ich dann die Linien zeichnen soll?

Gruß
Klaus

Code 4. Feb 2008 13:52

Re: StrinGrid mit Linien über Ravereport ausdrucken.
 
Ich habe jetzt selbst den Fehler raus gefunden. Für Alle die es interessiert
Delphi-Quellcode:
.
               ClearTabs;
               SetTab (SectionLeft, pjCenter, 1.0, 5, BoxLineAll, 5);
               SetTab (NA, pjCenter, 1.0, 0, BoxLineAll, 5);
               SetTab (NA, pjCenter, 1.0, 0, BoxLineAll, 5);
               SetTab (NA, pjCenter, 1.0, 0, BoxLineAll, 5);
               SetTab (NA, pjCenter, 1.0, 0, BoxLineAll, 5);
               SetTab (NA, pjCenter, 1.0, 0, BoxLineAll, 5);
Mit diesen Abänderungen klappt es prima.

Gruß
Klaus

grenzgaenger 4. Feb 2008 22:55

Re: StrinGrid mit Linien über Ravereport ausdrucken.
 
wunderbar :-)

zum pinseln brauchst du nur die richtigen funktionen wählen .. Beispiel einfach auf die codevervollständigung drücken und die richtigen funktionen zum linienzeichnen auswählen... oder schau einfach mal nach codebasedprinting auf nevrona.. da gibts genügend beispiele, wie z.b. auch grafiken millimetergenau auf das papier gebracht werden können :-)

grüsse und noch einen schönen abend
GG


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz