Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

Delphi && Microsoft Word   Найти похожие ветки 

 
Egor   (2003-10-14 17:48) [0]

Постановка задачи:
Есть шаблон-договор в формате Microsoft Word
Надо заполнить этот договор даными из базы данных.

Подскажите как мне выставить "курсор" в файле Worda
(думаю должно что-то быть типа функции seek).
Это нужно для того чтобы вписать данные в НУЖНОЕ место в файле Worda.

Вот так я подключаюсь к Wordу:

MSWord := CreateOLEObject("Word.Application");
MSWord.Documents.Open (FileName:="d:\test.doc", ReadOnly:=false);

У меня DELPHI6.

Заранее благодарен!


 
AlexKniga ©   (2003-10-14 17:52) [1]

Egor
> Есть шаблон-договор в формате Microsoft Word
> Надо заполнить этот договор даными из базы данных.

Для этого не надо Delphi.
Почитай справку M$ Word о полях слияния.


 
Семен Сорокин ©   (2003-10-14 18:05) [2]

2Egor
поищи файл на подобе vbawd10.chm - для XP (vbawd8.chm, vbawd9.chm) в папке (\Program Files\Microsoft Office\Office10\1033) офиса - там будет описание всех методов и свойств объекта Application


 
Sergey_Masloff   (2003-10-14 22:23) [3]

>Это нужно для того чтобы вписать данные в НУЖНОЕ место в файле >Worda.
Для этого служат поля или букмарки например в таблицах.


 
Романов Р.В. ©   (2003-10-14 22:36) [4]

Еще можно заменой текста...


 
Goffman ©   (2003-10-15 08:20) [5]

Я делал примерно то же самое c Excel. У меня это выглядело так:
Excel.Cells.Replace("#OBOZN#",Obozn);
Первый параметр - то что нужно заменить в шаблоне.
Второй параметр - то, чем нужно заменить.

С вордом примерно так же должно быть.


 
nstur   (2003-10-15 09:39) [6]

Есть мой компонент для работы, в таких, случаях с Word, который можно скачать на http://www.nstur.narod.ru/Delphi/index.html

Назначение: Этот компонент предназначен для работы с текстами Word.

Методы и свойства:
TNsWord = class(TWordApplication)
public
property NsDocument: _Document; - Экземпляр документа
property Application;
procedure Connect; - загрузить и подключиться к Word
procedure Disconnect; - отключиться и закрыть Word
procedure Refresh; - если Word не подключен, тогда Connect
function Connected: boolean; - признак связи с Word
function OpenedDocument: boolean; - признак открытия документа
function NewDoc(Template: String = ""): _Document; - Refresh и открытие документа
procedure CloseDoc; - закрыть документ
procedure InsertText(Text: String); - вставить текст. Для перевода строки добавлять #13
procedure Print; - печать документа
procedure SaveAs(Filename: String); - сохранить документ
procedure EndDocument; - переместить курсор в конец документа
procedure ExecuteReplace; - выполнить замену текста.
procedure SetTabs(const DefaultTabStop: single; TabStops: array of single); - установить табуляторы(в сантиметрах)
published
property Caption: String;
property Visible: Boolean;
property WindowState: TWindowState;
property MsFont: TMicrosoftFont;
property Alignment: TWdAlignmen;
property ReplaceStyle: TReplaceStyle;
property OtherEvents: TNsOtherEvents; - дополнительные события.
property OnLocalReplace: TLocalReplaceEvent;
end;

ExecuteReplace: Компонент производит проверку на вхождение в текст символов шаблона. Если он найден, тогда вызывается событие OnLocalReplace (TLocalReplaceEvent = procedure (var ReplaceText: string) of object;). Под шаблоном понимается текст заключенный в символы установленные ReplaceStyle. ReplaceStyle имеет следующие ворианты rsDefault = |, rsPercent = %, rsTwiddle = ~.
Пример: Если используется шаблон |ФИО|, в реализации события в параметре ReplaceText возвращается текст ФИО, который вы можите заменить ReplaceText:= "Петров А.А.".

OtherEvents: Это колекция дополнительных событий, которые будут возникать если в тексте документа встретиться шаблон с текстом утазанным в свойстве Text.

Дополнительные методы для работы с шаблоними:
var
WordSh: record Разбор шаблонов Word
Code: integer;
Abr: boolean;
BText: string;
EText: string;
end;
function SetWordSh(Value: string): boolean;

Сам текст шаблона может и должен содержать шаблоны типа |%6*<Текст_>_г.|
Шаблон должен быть заключён в знаки ReplaceStyle и начинаться с %, затем идёт номер получаемого значения (WordSh.Code), который заполнит этот шаблон. Знак * определяет значение WordSh.Abr(например дата: со столетием или без). Далее указываются необязательные параметры, которые говорят, что < - текст ставиться перед значением (WordSh.BText), а > - после значения (WordSh.EText). Знак _ заменяется на пробелы, но пробелы тоже можно использовать. Прошу запомнить, что символы %,*,<,> и ReplaceStyle являются управляющими символами.Функция SetWordSh возвращает True если Value обработалось нормально.



Страницы: 1 вся ветка

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
3-89183
vario
2003-10-06 12:48
2003.10.27
простите за ламерский вопрос, но как подсоедениться к MsSQL ?


7-89597
INTAARI
2003-08-13 15:34
2003.10.27
Возможна ли самопроизвольное закрытие СОМ порта


3-89181
RealShip
2003-10-08 15:16
2003.10.27
Ошибка


11-89193
Юрец
2003-02-09 16:06
2003.10.27
KOL.mastak.ru


4-89650
Анюта
2003-08-20 11:40
2003.10.27
PrintScreen windows окна