Страница 3 из 3

Добавлено: 13 окт 2005, 11:50
Dr_Grizzly
Дак вот к чему я шел та! Есть документ, не важно, договор или еще чего, в тексте этого документа надо вставить цифры которы человек считает вручную, да еще и по огромным формулам, потом начальство делает изменения в данных, и сиди пересчитывай это все снова. Офигенная ручная работа, да еще и нудная. Делаем прогу, которая будет расчитывать данные, после чего вставлять их в указанные Lablel'ами места, а у этого компонета можно в ворде выставлять свойства "в тексте","перед текстом", и т.д. Удобно, неправда ли? Да и еще у компонента есть свойство Autosize что еще больше облегчает вставку и выравнивание текста. Вот суть поей проги, это часть из дипломной работы ;-)

Добавлено: 14 окт 2005, 10:37
Игорь Акопян
нет, не удобно. ;)
У меня немного по другому, и имхо, логичнее.
Пишем шаблон (dot) в него вставляем закладки через меню Вставка.

Код: Выделить всё

var
  DocIntf: IWordDocument;
  ...
  DocIntf := g_WordAppIntf.CreateDocument("шаблон.dot");
  DocIntf.Bookmarks['bmSuperLabel'].Value := 'bla-bla'
У нас правда чел писал надстройку над импортированным type library когда ещё не было стандартных компонентов... но я думаю адаптировать труда не составит

Добавлено: 14 окт 2005, 23:23
Naeel Maqsudov
Дак вот к чему я шел та! Есть документ, не важно, договор или еще чего, в тексте этого документа надо вставить цифры которы человек считает вручную, да еще и по огромным формулам, потом начальство делает изменения в данных, и сиди пересчитывай это все снова.
"- Так что ж вы дяденька животинку ту тираните?!
- Не видишь? Змея запускаю!" (с) известный мультфильм.

Во-первых, Word и сам умеет считать почти как Excel. Пойдем в соседний формум - расскажу.
Во-вторых, на случай нехватки стандартных фишек в самом Worde есть супер мощный инструмент VBA. (Тоже не здесь обсуждаемо)

Категорически считаю, что применять что-то кроме самого MS Office (например, Delphi) для таких задач неэффективно и расточительно, так как в самом MSOffice есть для этого сразу несколько технологий на выбор!. Другое дело, когда Delphi-приложению требуется вывесли данные в виде документа Word (в качестве отчета, например) или наоборот, извлечь данные из документов для дальнейшего использования...

Итак, давайте подведем итоги темы:

1) То что Автор вопроса хотел сделать можно получить используя только стандартные средства MSOffice ВООБЩЕ не прибегая к программированию (обсуждение можно продолжить в установленном месте).
2) Между тем мы (и я в том числе отчасти) научились работать с некоторыми интерфейсами, обеспечивающими доступ к объектам MSWord (включая закладки).
3) Интересно, что если в документе присутствуют объекты (элементы управления Label, EditBox, и прочие OLE-объекты) нам достаточно знать их имена, чтобы обращаться к ним и использовать их методы и свойства. Для этого нам нужен только интерфейс к объекту Word.Document имя объекта.

//впечатать текст в закладку:
Doc.Bookmarks['bmSuperLabel'].Value := 'bla-bla' ;
//впечатать текст в элемент управления:
Doc.Label1.Caption := 'qwe';

4) Все остальное, что можно написать после "Doc." можно найти в справке по VBA.

На этом тему рекомендую закрыть.

Добавлено: 18 окт 2005, 10:45
Dr_Grizzly
Так точно Naeel Maqsudov, все что мне нужно было, мне уже растолковали парни, за что им огромное санькью! Прога уже работает, так что тему можно закрыть ;)