AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drucken (ein leidiges Thema)

Ein Thema von MiniMax · begonnen am 8. Mai 2011 · letzter Beitrag vom 10. Mai 2011
Antwort Antwort
Seite 1 von 3  1 23      
MiniMax

Registriert seit: 15. Dez 2009
Ort: Bremen
193 Beiträge
 
Delphi 2009 Architect
 
#1

Drucken (ein leidiges Thema)

  Alt 8. Mai 2011, 18:57
Moin Zusammen,
ich habe mal wieder ein Problem:
Ich möchte in meiner Anwendung eine Art Rechnung Drucken. Sprich ich habe eine feste Vorlage mit Kopf, Tabellenüberschrift und Fußzeile. Diese möchte ich nun mit Text füllen (St, Artikel, Artikelnr, StPreis, Ges Preis).
Ich habe zwar Rave aber da komme ich net mitweiter --> wie bekomme ich da meine Daten rein? Was benötige ich aus der Rave Kompo?

Ich hoffe ihr könnt mir helfen!
Gruß
MiniMax
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Drucken (ein leidiges Thema)

  Alt 8. Mai 2011, 19:07
Moin,

für den ersten Anfang schon mal mit einem der Tutorials herumgespielt?
z.B. http://edn.embarcadero.com/article/30329
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
MiniMax

Registriert seit: 15. Dez 2009
Ort: Bremen
193 Beiträge
 
Delphi 2009 Architect
 
#3

AW: Drucken (ein leidiges Thema)

  Alt 8. Mai 2011, 19:40
Mhmm das geht net! Da bekomme ich nen fehler von wegen zugriffsverletzung! Kann ich dass net Manuell mit Printer machen? Und wenn wie?
Gruß
MiniMax
  Mit Zitat antworten Zitat
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
137 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Drucken (ein leidiges Thema)

  Alt 8. Mai 2011, 22:25
Hallo Minimax,

ich persönlich kann nur empfehlen FastReport zu nutzen. Wenn Du Rechnungen erstellen möchtest, nehme ich an, dass Du Deinen Kunden auch die Möglichkeit geben möchtest, selber das Design der Druckvorlagen zu verändern. Der Designer von FastReport ist m.E. deutlich eingängiger, sowohl für den Entwickler, als auch für den Endkunden. Die Testversion von FastReport ist auf 5 Seiten/Report und durch ein paar Nag-Screens bei Scriptverwendung beschränkt. Es gibt auch eine freie Version names FreeReport.

Die Anbindung der Daten ist recht einfach. Du erzeugst eine ganz normale Datenanbindung (tTable, tQuery, tADODataset etc) und verknüpfst eine tfrxDataset-Komponente damit. Schon kannst Du die Daten in einem Report verwenden.

Die Erzeugung mit Printer ist möglich, aber sehr aufwendig, wenn es einigermaßen flexibel und anwenderfreundlich sein soll.

Gruß
Guido R.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#5

AW: Drucken (ein leidiges Thema)

  Alt 9. Mai 2011, 07:47
Manuell geht auch,
entweder direkt über die entsprechenden WinAPIs
oder über TPrinter, welches ein Canvas besitzt, worauf man die aktuelle Seite draufmalen kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Drucken (ein leidiges Thema)

  Alt 9. Mai 2011, 09:15
Für ganz einfache Sachen (Tabellen, ein Bild) kann man schon TPrinter verwenden. Für flexible Formulare wie Rechnungen etc. ist das wirklich ein Haufen Arbeit und ein ReportDesigner wirklich empfehlenswert.

Beim "manuellen" drucken muss man sich noch entscheiden, ob man die Koordinaten/Maße an den Drucker anpasst oder den Drucker an den Maßstab (letzeres mit SetMapMode, SetViewPort etc.)

Ein kleines Beispiel für die erste Variante:
Delphi-Quellcode:
  private
    { Private-Deklarationen Form1 }
    FxFactor,
    FyFactor : Double;

[...]

procedure TForm1.CalculateLoMetricFactor;
var
  xDPI, yDPI : Integer;
begin
  xDPI := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
  yDPI := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
  FxFactor := xDPI / 254;
  FyFactor := yDPI / 254;
end;

function TForm1.CalcX(XValue : Integer): Integer;
begin
  Result := Round(XValue * FxFactor);
end;

function TForm1.CalcY(YValue : Integer): Integer;
begin
  Result := Round(YValue * FyFactor);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if PrintDialog1.Execute then
  begin
    CalculateLoMetricFactor;
    Printer.BeginDoc;
    with Printer.Canvas do
    begin
      // Maßangaben in 1/10 mm
      StretchDraw(Rect(CalcX(400),CalcY(100),CalcX(400+400),CalcY(100+400)),
                       Image1.Picture.Graphic);

      Font.Size := 12;
      TextOut(CalcX(100), CalcY(100), '- Zeile 1');
      TextOut(CalcX(100), CalcY(200), '- Zeile 2');
    end;
    Printer.EndDoc;
  end;
end;
Selbst bei so einem einfachen Beispiel muss schon viel berechnet werden, damit das auf jedem Drucker gleich aussieht.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Drucken (ein leidiges Thema)

  Alt 9. Mai 2011, 13:24
Moin Zusammen,
ich habe mal wieder ein Problem:
Ich möchte in meiner Anwendung eine Art Rechnung Drucken. Sprich ich habe eine feste Vorlage mit Kopf, Tabellenüberschrift und Fußzeile. Diese möchte ich nun mit Text füllen (St, Artikel, Artikelnr, StPreis, Ges Preis).
Ich habe zwar Rave aber da komme ich net mitweiter --> wie bekomme ich da meine Daten rein? Was benötige ich aus der Rave Kompo?

Ich hoffe ihr könnt mir helfen!
Bei Entwickler.com und bei Google findest du reichlich Tutorials.
  Mit Zitat antworten Zitat
MiniMax

Registriert seit: 15. Dez 2009
Ort: Bremen
193 Beiträge
 
Delphi 2009 Architect
 
#8

AW: Drucken (ein leidiges Thema)

  Alt 9. Mai 2011, 13:36
Moin,
Danke für eure Antworten! Ich möchte eig nur keine DB verwenden! Gibt es da ne möglichkeit?
Gruß
MiniMax

Geändert von MiniMax ( 9. Mai 2011 um 13:55 Uhr)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Drucken (ein leidiges Thema)

  Alt 9. Mai 2011, 13:39
Notfalls kann man auch schnell ein TClientDataSet füllen und verwenden.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Drucken (ein leidiges Thema)

  Alt 9. Mai 2011, 13:40
Moin,
Danke für eure Antworten! Ich möchte eig nur keine DB verwenden! Kann man die Kompo FreeReport auch ohne Nutzen?
Eine weitere Möglichkeit gestylter Ausgabe-Formulare wäre noch Ole-Automation mit MS-Office oder OpenOffice.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 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