![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Доступ из delphi в Microsoft Word [D6, WinXP]
Sloosar © (2008-05-17 11:18:00)Я занимаюсь программированием и паралельно пишу отчёты для родителей. Но меня задалбывает каждый раз всё писать и я подумал автоматизировать этот процес.
Полазил по интернету нашёл простой способ доступа из Делфи в Ворд но у меня есть пару вопросов по этой теме.
Stas (2008-05-19 14:23:00) [1]тому самому из Sloosar (17.05.08 17:04) [7]?
ANB (2008-05-19 14:17:00) [2]
> и FR вместо Word'a ?
Попробуй сказать об этом юзеру :)
Stas (2008-05-19 13:56:00) [3]Sloosar © (17.05.08 19:57) [10]
Может для автоматизации попробывать использовать BD вместо ini файлов
и FR вместо Word'a ?
ANB (2008-05-19 12:42:00) [4]
> TStas © (19.05.08 00:08) [11]
Первый вариант очень тормозной и неудобный. Часто бывают глюки.
Стас, я же рассказывал тебе про вордовые поля. Очень шустро и без глюков.
TStas (2008-05-19 00:08:00) [5]По большому счету есть всего два способа делать что-то в Ворде из внешней программы:
1) Замена по шаблону. Т. е. беред некий документ, в нем какие-то части объявляем шаблоном и из заменяем на свои данные. Это хорошо, если многое в документе остаётся одним и тем же. (Пример: устав фирмы. Там почти всё одинаково у всех, меняется лишь название, учредители и т. д.)
2) Создание документа с нуля. Это годится, например, для доверенности, т. е. небольшого документа, у которого меняется всё. (Создать шаблон доверенности можно, но не нужно, т. к. он получится из одного слова)
Вариант (1) - это строковая замена в Ворде. Ворд чудестно понимает команду заменить строку на другую строку. Тут удобно, что он там сам с регистрами букв разбирается.
Какой способ выбрать - зависит от задачи.
Sloosar (2008-05-17 19:57:00) [6]А как можно загрузить в ComboBox данные из ini файла или собственного файла? Искал по сайту не нашол :-(
Сергей М. (2008-05-17 17:31:00) [7]
> Данные отчёта вводятся с программы
Уточнение ценнейшее, слов нет.
> отчёты нужны Для Господа Бога
Честно признаться, ни разу еще не интересовался у него шаблонами)
> у меня существует 3 виды отчёта. И все они пишутся по одному
> и тому самому сценарию
С чем тебя и поздравляем.
Нам это оченьинтересно, сколько их там у тебя)
Sloosar (2008-05-17 17:13:00) [8]Вообще у меня существует 3 виды отчёта. И все они пишутся по одному и тому самому сценарию.
Sloosar (2008-05-17 17:04:00) [9]Сергей М.
Данные отчёта вводятся с программы.
А отчёты нужны Для Господа Бога.
Сергей М. (2008-05-17 16:32:00) [10]И насколько нам важно знать , для родителейтебе нужен отчет или, к примеру, для налоговой или для господа бога ?)
Сергей М. (2008-05-17 16:31:00) [11]
> Sloosar (17.05.08 16:26) [4]
А мданные для отчета откуда берутся ?
Sloosar (2008-05-17 16:26:00) [12]можна и не в формате ворда.
Сергей М. (2008-05-17 15:41:00) [13]"Родители", о коих ты печещься, "требуют" от тебя, сына, отчеты ? И именно в формате Ворда ?
Savek (2008-05-17 12:22:00) [14]par.Range.ParagraphFormat.Alignment := wdAlignParagraphCenter
Sloosar (2008-05-17 11:20:00) [15]вот пример кода
// ñîçäàåì ýêçåìïëÿð âîðäà
wordapp:=cowordApplication.Create;
// äåëàåì åãî âèäèìûì
WordApp.Visible:=true;
// øàáëîí
template:='Normal';
// ñîçäàòü øàáëîí
OpenAsTemplate:=false;
// ÷òî-òî òèïà îïåðàòîðà with, ìîæíî áûëî è íàïðÿìóþ îáðàòèòüñÿ
Docs:=WordApp.Documents;
// äîáàâëÿåì äîêóìåíò
Doc:=Docs.AddOld(template,OpenAsTemplate);
// âûäåëèòü âñå
ARange:=Doc.Range(EmptyParam,EmptyParam);
// ìàññèâ ïàðàãðàôîâ
pars:=doc.Paragraphs;
// ïåðåìåííàÿ - ïàðàìåòð
template:=arange;
// íîâûé ïàðàãðàô
par:=pars.Add(template);
// öâåò çåëåííûé
par.Range.Font.ColorIndex:=1;
// âñòàâëÿåì òåêñò
par.Range.Font.Bold:=5;
par.Range.Font.Underline:=1;
par.Range.Font.Size:=16;
par.Range.InsertBefore('Àêò');
Вопрос
№1 как сделать что бы текст выводился по центру?