Verwenden Sie Delphi4.0, um Word97 direkt zu steuern
Nr.: QA003053
Erstellungsdatum: 15. Juni 2000. Letztes Änderungsdatum: 15. Juni 2000
Kategorie:
Artikel :
Zusammenfassung: Freunde, die PowerBuilder gespielt haben, müssen wissen, dass die wichtigste Technologie in PB die DataWindow-Technologie ist. Sie ist sehr praktisch, um Formulare zu entwerfen, Dateneingaben zu verarbeiten und Berichte zu entwerfen. Allerdings ist die Berichtsunterstützungsfunktion von Delphi weitaus geringer als die von PB. Die professionelle Version von Delphi enthält QuickReport, es handelt sich jedoch um eine Sammlung von Berichtskomponenten, die von QSD AS (einem norwegischen Unternehmen) lizenziert werden. Selbstverständlich können wir auch externe Reporting-Tools wie ReportSmith oder Cristal Report nutzen. Allerdings sind die Steuerelemente etwas komplex und es mangelt an Integration zwischen ihnen und Delphi.
Als wir die Online-Version des „Official Document Management System“ entwickelten, haben wir verschiedene Methoden zum Drucken offizieller Dokumente ausprobiert. Unsere Anforderung besteht darin, ein gewöhnliches offizielles Dokument im offiziellen Dokumentformat zu drucken, und der Benutzer kann einige einfache Kontrollen über dessen Schriftsatz vornehmen. Xiaohui versuchte es zunächst mit QuickReport, aber der Effekt war sehr unbefriedigend, insbesondere im Hinblick auf die Unterstützung einiger chinesischer Formate. Später war Xiaohui so besessen davon, dass er das Druckprogramm einfach von Hand schrieb, ohne auf Design-Tools zurückzugreifen, was schade war Xiaohuis Fähigkeiten waren nicht gut genug und er konnte nicht weiterspielen, als er mit dem Schreiben fertig war, also musste er einen anderen Weg finden. Zufälligerweise kam an diesem Tag eine Ausgabe von „China Computer News“ und es gab einen Artikel über die Verwendung von Excel in VB. Xiaohui dachte: Warum nicht Delphi verwenden, um die Daten an Word zu senden und Word die Bearbeitungs- und Satzarbeit abschließen zu lassen? Um es ganz klar auszudrücken: Es nutzt die OLE-Automatisierungstechnologie.
Xiaohui hat es ausprobiert und die Wirkung war in Ordnung. ——Obwohl für einen Programmierer das von ihm geschriebene Programm mit der Anwendung eines anderen verbunden sein muss, um seine eigenen Funktionen vollständig zu realisieren, ist es, als würde er eine Ente in eine Hühnerherde einfügen, und es gibt immer etwas in seinem Herzen. Aufgrund der engen Entwicklungsaufgaben kam der Regisseur jedoch alle drei oder vier Mal, um ihn zu drängen. Obwohl es am Ende etwas unscheinbar war, war es Xiaohui egal. Okay, schauen wir uns ohne weitere Umschweife an, wie Xiaohui es geschafft hat –
Link: http://www.xiaohui.com
Moderator: Weil der ursprüngliche Link abgelaufen ist. Den Originaltext stellen wir hier zur Verfügung:
1. Vorwort
Freunde, die PowerBuilder gespielt haben, müssen wissen, dass die wichtigste Technologie in PB die DataWindow-Technologie ist. Sie ist sehr praktisch, um Formulare zu entwerfen, Dateneingaben zu verarbeiten und Berichte zu entwerfen. Allerdings ist die Berichtsunterstützungsfunktion von Delphi weitaus geringer als die von PB. Die professionelle Version von Delphi enthält QuickReport, es handelt sich jedoch um eine Sammlung von Berichtskomponenten, die von QSD AS (einem norwegischen Unternehmen) lizenziert werden. Selbstverständlich können wir auch externe Reporting-Tools wie ReportSmith oder Cristal Report nutzen. Allerdings sind die Steuerelemente etwas komplex und es mangelt an Integration zwischen ihnen und Delphi.
Als wir die Online-Version des „Official Document Management System“ entwickelten, haben wir verschiedene Methoden zum Drucken offizieller Dokumente ausprobiert. Unsere Anforderung besteht darin, ein gewöhnliches offizielles Dokument im offiziellen Dokumentformat zu drucken, und der Benutzer kann einige einfache Kontrollen über dessen Schriftsatz vornehmen. Xiaohui versuchte es zunächst mit QuickReport, aber der Effekt war sehr unbefriedigend, insbesondere im Hinblick auf die Unterstützung einiger chinesischer Formate. Später war Xiaohui so besessen davon, dass er das Druckprogramm einfach von Hand schrieb, ohne auf Design-Tools zurückzugreifen, was schade war Xiaohuis Fähigkeiten waren nicht gut genug und er konnte nicht weiterspielen, als er mit dem Schreiben fertig war, also musste er einen anderen Weg finden. Zufälligerweise kam an diesem Tag eine Ausgabe von „China Computer News“ und es gab einen Artikel über die Verwendung von Excel in VB. Xiaohui dachte: Warum nicht Delphi verwenden, um die Daten an Word zu senden und Word die Bearbeitungs- und Satzarbeit abschließen zu lassen? Um es ganz klar auszudrücken: Es nutzt die OLE-Automatisierungstechnologie.
Xiaohui hat es ausprobiert und die Wirkung war in Ordnung. ——Obwohl für einen Programmierer das von ihm geschriebene Programm mit der Anwendung eines anderen verbunden sein muss, um seine eigenen Funktionen vollständig zu realisieren, ist es, als würde er eine Ente in eine Hühnerherde einfügen, und es gibt immer etwas in seinem Herzen. Aufgrund der engen Entwicklungsaufgaben kam der Regisseur jedoch alle drei oder vier Mal, um ihn zu drängen. Obwohl es am Ende etwas unscheinbar war, war es Xiaohui egal. Okay, werfen wir ohne weitere Umschweife einen Blick darauf, wie Xiaohui es geschafft hat –
2. Formulardesign
Um es ganz klar auszudrücken: Es ist eigentlich ganz einfach. Xiaohui hat hier ein einfaches Beispielprogramm erstellt:
1. Setzen Sie den Font.name von Form1 auf „Songti“ und Font.size auf 12;
2. Platzieren Sie fünf tLable-Steuerelemente, label1-labe5, der Reihe nach auf dem Formular. Ihre Beschriftungseigenschaften sind „Dokumentnummer“, „Titel“, „Empfangseinheit“, „Text“ und „Sendeeinheit“.
3. Platzieren Sie fünf Bearbeitungssteuerelemente: tEdit, tEdit, tEdit, tMemo und tEdit nacheinander auf dem Formular. Ihre Namensattribute sind: ED_WenHao, ED_BiaoTi, ED_ShouWenDanWei, ED_ZhenWen und ED_FaWenDanWei.
4. Platzieren Sie zwei tButton-Steuerelemente nacheinander auf dem Formular. Ihre Namensattribute sind Btn_PRintToWord und btn_Quit, und ihre Caption-Attribute sind „Print“ bzw. „Exit“.
Informationen zum Formularentwurfsformat finden Sie im Bild am Ende dieses Artikels.
3. Code-Design
Der Programmabschnitt ist wie folgt:
Einheit Einheit1;
Schnittstelle
verwendet
Windows, Nachrichten, SysUtils, Klassen, Grafiken, Steuerelemente, Formulare, Dialoge,
StdCtrls,OleCtnrs,ComObj;
Typ
TForm1 = Klasse(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
ED_WenHao: TEdit;
ED_BiaoTi: TEdit;
ED_ShouWenDanWei: TEdit;
ED_ZhenWen: TMemo;
ED_FaWenDanWei: TEdit;
Btn_PrintToWord: TButton;
Btn_Quit: TButton;
procedure Btn_PrintToWordClick(Sender: TObject);
procedure Btn_QuitClick(Sender: TObject);
Privat
{Private Erklärungen}
öffentlich
{Öffentliche Erklärungen}
Ende;
var
Form1: TForm1;
Durchführung
{$R *.DFM}
//Start: Daten werden an das Wortereignis gesendet
procedure TForm1.Btn_PrintToWordClick(Sender: TObject);
vAR
VarWord: Variant;// wird beim Erstellen von WORD verwendet
beginnen
versuchen
// 1. OleObject erstellen und Word97 verbinden
VarWord:=CreateOleObject('word.basic');
// 2. Erstellen Sie eine neue Datei für Word97
VarWord.FileNew;
// 3. Stellen Sie den Grundstatus von Word97 ein
VarWord.ViewZoom75; //Stellen Sie das Anzeigeverhältnis auf 75 % ein
VarWord.ViewPage; //In den Seitenanzeigemodus wechseln
// 4. Senden Sie die Informationen zur aktuellen Datenkontrolle an Word97
// 4.1 Dokumentnummerndaten senden
VarWord.CenterPara; //Zentriert
Varword.font('宋体'); //Legen Sie die Schriftart fest
VarWord.FontSize(14); //Legen Sie die Schriftgröße fest
varword.insert(#13+#13+ ED_WenHao.Text+#13+#13+#13);
// 4.2 Header-Daten senden
VarWord.font('HeiBi');
VarWord.Fontsize(16);
VarWord.insert( ED_BiaoTi.text+#13);
// 4.3 Senden Sie die Daten der empfangenden Einheit
VarWord.LeftPara; //Linksbündig
VarWord.Font('宋体');
VarWord.fontSize(14);
VarWord.Insert(#13+ ED_ShouWenDanWei.Text+':'+#13);
// 4.5 Textdaten senden
VarWord.fontSize(14);
VarWord.Insert( ED_ZhenWen.Text+#13);
// 4.6 Daten der Sendeeinheit senden
VarWord.RightPara; //rechte Ausrichtung
VarWord.fontSize(14);
VarWord.Insert( ED_FaWenDanWei.Text+#13);
// 5 endgültige Einstellungen
VarWord.StartOfdocument; //Gehe zum Anfang des Dokuments
VarWord.AppMaxiMize; //Das Fenster auf Maximieren einstellen
VarWord.AppShow; //Anwendung anzeigen
außer
showmessage('Microsoft Word konnte nicht ausgeführt werden!');
end; //Ende des Versuchs
Ende;
// Ende: An Wortereignis gesendete Daten
//Start: Ereignis zum Schließen des Fensters
procedure TForm1.Btn_QuitClick(Sender: TObject);
beginnen
schließen;
Ende;
//End: Ereignis zum Schließen des Fensters
Ende.
// Dies ist das Ende des Hauptprogramms
4. Notizen
1. Beschreibung
1. Da es sich nur um ein Demonstrationsbeispiel handelt, ist es nicht mit der Hintergrunddatenbank verbunden. Im tatsächlichen Betrieb können die entsprechenden tEdit- und tMemo-Steuerelemente durch tDBEdit- und tDBMemo-Steuerelemente ersetzt werden, und tTable, tDataSource und andere Steuerelemente können zur Verbindung hinzugefügt werden zur Datenbank.
2. In dieser Anleitung geht es nicht um den Stapeldruck.
3. Das Programm läuft unter Pwin97, Delphi 4.0 Professional Edition und Chinese Word97.
4. Da es unterschiedliche Versionen von Word gibt, hat Microsoft einige OLE-Automatisierungsschnittstellen in jede Fremdsprache konvertiert. Wenn Sie andere Versionen von Word verwenden, kann es sein, dass dieses Programm fehlerhaft läuft.
5. Sie können die entsprechenden Treiberbefehle über die in der Word97-Hilfe zusammengefassten Makrobefehle abrufen oder auf das Menü [Extras] unter Word97 klicken – auf [Anpassen] klicken – auf die Schaltfläche [Tastatur] klicken, um die in Kategorien angezeigten Word-Befehle anzuzeigen Wort97.
2. Vor- und Nachteile
1. Durch die OLE-Automatisierungstechnologie wird die Satz- und Druckarbeit offizieller Dokumente an Word übergeben, was die Steuerung für den Endbenutzer komfortabler macht.
2. Wenn in Word97 die Daten geändert werden, können sie nicht an das Hauptprogramm, das sie aufgerufen hat, zurückgesendet und in der Datenbank widergespiegelt werden. Das ist die Unannehmlichkeit daran.
3. Dieses Beispiel ist nur eine Anwendung unter besonderen Umständen. Wenn Sie eine große Anzahl von Datenetiketten drucken und Tabellen erstellen möchten, ist die Verwendung von Berichten nach Ansicht von Xiaohui flexibler.
Artikelquelle: Xiaohuis Reise als Programmierer .