AGB  ·  Datenschutz  ·  Impressum  







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

DBGrid Ausdrucken mit Records?

Ein Thema von Dragongott · begonnen am 20. Jan 2009 · letzter Beitrag vom 20. Jan 2009
Antwort Antwort
Dragongott

Registriert seit: 14. Jan 2009
6 Beiträge
 
#1

DBGrid Ausdrucken mit Records?

  Alt 20. Jan 2009, 11:30
Hi an Alle,
Ich wende mich noch mal mit einer Frage, bei meinem Programm, an dieses Forum.

Ich habe ein Programm zur Verwaltung von Kunden und Rechnungen geschrieben und möchte diese nun Ausdrucken.
Mein Formular, was ich in Word ausdrucken möchte besteht aus DBEdit-Feldern und einer DBGrid.

Die DBEditFelder hab ich in Word bekommen mit
Word.WordBasic.Insert("Kundenid: " +dbeditfeld +#13);

Nun will ich auch die Daten aus dem DBGrid-Feld in ein Word einfügen. Ich hab mir überlegt auf die einzelnen Records von der Query zuzugreifen und diese dann einzelnt in Word einzufügen.

Allerdings weis ich nicht wie genau ich das mache, könntet Ihr mir damit helfen oder eine bessere Methode nennen wie ich die DBGrid-Daten in Word bekomme.

MfG Tobias
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: DBGrid Ausdrucken mit Records?

  Alt 20. Jan 2009, 11:34
Wenn es unbedingt Word sein muss und kein Reportingtool, ist der genannte Ansatz in meinen Augen der einzig Richtige. Ein DBGrid dient ja nur zur Visualisierung der Daten, welche in einem Dataset vorhanden sind. Die Verknüpfung zwischen diesen beiden geschieht ja im Normalfall über eine Datasource.
Du könntest also das Dataset direkt abfragen oder über DBGrid.Datasource.Dataset gehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
rd3
(Gast)

n/a Beiträge
 
#3

Re: DBGrid Ausdrucken mit Records?

  Alt 20. Jan 2009, 11:46
Hi,

ich würde mir die TypeLibrary von Word nach Delphi importieren und ein vorbereitetes Dokument mit Platzhaltern benutzen, wie <Vorname> <Name>
<Adresse> ...

<GridDaten>...
usw... und dann über Ersetzen gehen...
D.h. Du lädst (WordApplication.Documents.Open({Parameter-Liste als OleVariants})) das Dokument mit den Platzhaltern (ggf. verschieben, falls Du mit Speichern arbeitest) temporär... Dann gehst Du über die ReplaceOld oder Replace-Methode.

Alternativ kannst Du das Word-Dokument als RTF-Vorlage haben in einen WideString laden, dort dann alles ersetzen, dann speichern und die RTF-Datei dann einfach über WordApplication.Documents.Open() öffnen und drucken... (WordApplication.Documents.PrintOutOld/PrintOut()). Ich benutze PrintOutOld (sind weniger Parameter, denen Du EmptyParam übergeben musst ). Ich mach das auch manchmal so und geh den RTF-Weg. Funktioniert einwandfrei...

Viele Grüße

//EDIT: falls Du Fragen zu den Parametern hast, erstelle einfach ein Macro... Das kannst Du fast 1:1 übernehmen in Delphi.
  Mit Zitat antworten Zitat
Dragongott

Registriert seit: 14. Jan 2009
6 Beiträge
 
#4

Re: DBGrid Ausdrucken mit Records?

  Alt 20. Jan 2009, 12:13
Danke für die schnelle Antwort allerdings bin ich damit noch nicht wirklich weitergekommen da ich nicht weis wie ich das genau in den Quellcode einfüge.
Ich muss halt nachgucken wie viele Datensätze in der DBGrid drinstehen 1-4 und die dann einzelnt in Word einfügen.
Könnte man mir da vieleicht nen Codebeispiel geben?
MfG Tobias
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

Re: DBGrid Ausdrucken mit Records?

  Alt 20. Jan 2009, 12:28
Hallo,

mal grob ohne Testen hingeschrieben:
Delphi-Quellcode:
Var
     i : Integer;
begin
  with DBGrid.DataSource.DataSet do begin
    First;
    while not EoF do begin
      for i := 0 to FieldCount - 1 do begin
        Word.WordBasic.Insert(Fields[i].FieldName + ': ' + Fields[i].AsString + #13);
      end;
      Next;
    end;
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:42 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