Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
3-89125
x_ANDREW_x
2003-10-08 00:18
2003.10.27
Пропадают UDF в базе


1-89201
REP
2003-10-15 11:54
2003.10.27
Файлы без расширения и OpenDialog


1-89339
Элина
2003-10-17 08:52
2003.10.27
КАК ИЗ ДЛЛ вызвать процедуру


3-89175
Дмитрий К.
2003-10-06 14:46
2003.10.27
Привилегии в системе


1-89355
TUser
2003-10-16 09:18
2003.10.27
Перестал ловиться глюк!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский