On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 307
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.07.07 23:10. Заголовок: Как использовать DOC-файл в качестве шаблона ?


Всем привет.
Подскажите как можно реализовать печать Word-документа, в котором в нужном месте нужно поставить значение из полей БД или просто вычисляемые переменные (штук 20).
Т.е. есть заготовка SAMPLE.DOC, в ней нужно поставить в нужных местах @POLE_NUM и т.д.,
а в программе на хХарборе, открыть этот документ (это я знаю как) и проставить по всем @xxxxx соответствующие значения (это я не знаю как).

Может это нужно делать по другому, тогда подскажите как.

Заранее спасибо.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 33 , стр: 1 2 All [только новые]


постоянный участник


Пост N: 665
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 27.05.09 22:39. Заголовок: i это индех обьекта ..


i это индех обьекта Pane из коллекции Panes, как правило в несложных случаях используйте i := 1, не ошибетесь.
Из справки : A window has more than one pane if the window is split or the view is not print layout view and information such as footnotes or comments are displayed.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 306
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 27.05.09 22:46. Заголовок: Re: Петр


Ещё раз спасибо.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 869
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.09 19:50. Заголовок: Подскажите пожалуйст..


Подскажите пожалуйста, как программно задать параметры страницы документа ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 673
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.06.09 20:40. Заголовок: #xtranslate Centimet..


#xtranslate CentimetersToPoints( <w> ) => (<w> * 28.35 )

oWord := CreateObject( "Word.Application" )
oWord:Documents:Add()

WITH OBJECT oWord:ActiveDocument:PageSetup
:TopMargin := CentimetersToPoints(2.1)
:BottomMargin := CentimetersToPoints(2.1)
:LeftMargin := CentimetersToPoints(2.3)
:RightMargin := CentimetersToPoints(1.7)
:Gutter := CentimetersToPoints(0)
:HeaderDistance := CentimetersToPoints(1.25)
:FooterDistance := CentimetersToPoints(1.25)
:PageWidth := CentimetersToPoints(21)
:PageHeight := CentimetersToPoints(29.7)
// и т.д.
END WITH


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 338
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 15.06.09 11:12. Заголовок: Есть ли в xHarbour&#..


Есть ли в xHarbour'е функция OleUninitialize() ? А то я раскопал Harbour'ный примерчик, а линковка на эту функцию выдаёт ошибку Unresolved external...

Очень было бы полезно это и в xHarbour, а то если программа вываливается на ошибке в процессе работы объектом OLE, то объект так и остаётся висеть в системе, и пока его задачу не снимешь, ничего с файлом с тем же именем, что был открыт (например PRICELST.DBF) сделать невозможно! Ну не объяснять же юзверям - нажмите Alt Ctrl Del и так далее, - они же десять раз нажмут, запустят перезагрузку компа и меня же в этом обвинят!

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1161
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.06.09 12:23. Заголовок: Функция OleUninitial..


Функция OleUninitialize() в этом случае не поможет, так как для снятия приложения необходимо напрямую вызвать некоторый метод. К примеру, для MS Office - это oWord:Quit(), oExcel:Quit()

Вызов такого метода можно прописать в exit-процедуре. К примеру:

if ValType(oWord) == 'O'
oWord:Quit()
endif

или ловить ошибку в begin sequence - end


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 339
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 15.06.09 15:09. Заголовок: Pasha пишет: OleUni..


Pasha пишет:

 цитата:
OleUninitialize() в этом случае не поможет


А для чего она тогда вообще предназначена? Мне же не обязательно снимать приложение, достаточно закрыть OLE-объект, связанный с файлом. Но этот разговор ни о чём - функции-то нет...

Pasha пишет:

 цитата:
if ValType(oWord) == 'O'
oWord:Quit()
endif


И ещё oWord надо объявлять как public... Но да, наверное придётся так.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1163
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.06.09 15:44. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
А для чего она тогда вообще предназначена?



функция

WINOLEAPI OleInitialize(IN LPVOID pvReserved);

инициализирует библиотеку ole,
а функция

WINOLEAPI_(void) OleUninitialize(void);

закрывает ее и освобождает все ресурсы

Запущенные приложения надо закрывать их методами
Вместо exit-процедуры можно ловить ошибку стандартными средствами clipper/harbour

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 343
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 15.06.09 15:51. Заголовок: Pasha пишет: Запуще..


Pasha пишет:

 цитата:
Запущенные приложения надо закрывать их методами


Да не приложение мне надо закрыть, а по-минимуму - всего лишь объект! Вот я и думал, что может OleUninitialize() закрывает все созданные программой OLE-объекты...

Кстати говоря, OLE вроде бы срабатывает шустрее, если Word или там Excel на момент обращения к OLE висит в памяти.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1164
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.06.09 16:25. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Да не приложение мне надо закрыть, а по-минимуму - всего лишь объект!



Обьект TOleAuto и запущенное приложение - это разные вещи
Обьект само собой закрывается, т.е выполняется его деструктор end
При этом приложение остается в памяти.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 345
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 15.06.09 16:33. Заголовок: Pasha пишет: Обьект..


Pasha пишет:

 цитата:
Обьект TOleAuto и запущенное приложение - это разные вещи


И я именно об этом, о том что объект можно закрыть без закрытия самого приложения... А ты всё о закрытии приложений толкуешь...
А oWord:Quit() закрывает и объект, и приложение.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2304
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.08.12 15:20. Заголовок: Кто работает с Офисо..


Кто работает с Офисом - смотрите ссылку:
http://www.script-coding.com/MSOffice.html

использование COM-серверов MS Office в скриптах
Конвертация форматов файлов (Save As...) с помощью Excel и Word
И т.д.

Разработка скриптов - http://www.script-coding.com/index.html


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 40
Зарегистрирован: 15.12.09
ссылка на сообщение  Отправлено: 27.08.12 12:15. Заголовок: Уж коли заявлена мул..


Уж коли заявлена мультиплатформенность инструмента смотри в сторону abiword ... с документом можно работать фактически как с текстом обычным парсингом или как XML

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 33 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 33
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет