Rtf файли та колонтитули
Як до створюваного руками rtf файлу додати верхній колонтитул з часом і датою? Ніфіга розібратися не можу.
може краще fastReport?
>може краще fastReport? На жаль, вибір не мій. Мені треба підкоригувати зроблене іншим.
> Мені треба підкоригувати зроблене іншим
І що заважає скористатися для цієї мети будь-якимготовимдодатком? Чим не потрапив Word, OO?
←→Sdubaruhnul (2007-07-12 23:52) [4]
Word2007RTFSpec9 http://www.microsoft.com/downloads/details.aspx?Family > і PlainText := False, начебто.
>І що заважає скористатися для цієї мети будь-яким готовим додатком? Чим не догодив Word, OO? Вимоги замовника. Вони хочуть отримати готовий звіт.
> Вони хочуть отримати спочатку готовий звіт.
Нічерта не зрозуміло)
Яка замовнику різниця, якими засобами зверстаний той самий rtf, що містить "готовий звіт"?
>Яка замовнику різниця, якими засобами зверстаний той самий rtf, що містить "готовий звіт"?
зроби у ворді документ із колонтитулами, збережи його в rtf, а потім використовуй у себе.
> але звіт в rtf і їм потрібен колонтитул з даними
Мені однаково не зрозуміла твоя проблема.
> треба підкоригувати зроблене іншим
я собі уявляю ситуацію так: ти пишеш якусь програму, завдання якої - взяти готовий rtf-документ (той самий, зроблений іншим) і модифікувати його вміст з метою додавання колонтитулів.
Оскільки ти руками створюєш файл, то треба вчинити як сказано в [8] Створити порожнійrtf файл з колонтитулами та проаналізувати його. На основі отриманої інформації будеш створювати свій. Є і інший метод, але більш складний - спробувати прочитати специфікацію, але вона гігантська, простіше зробити за зразком і подобою.
я собі уявляю ситуацію так: ти пишеш якусь програму, завдання якої взяти якийсь готовий rtf-документ (той самий, зроблений іншим) і модифікувати його вміст з метою додавання колонтитулів. Неправильно ти уявляєш. Програма створює цей самий rtf документ як звіт з деякими даними. Мені в процесі формування цього файлу необхідно додати колонтитули з часом і датою формування документа. Створити порожній rtf файл з колонтитулами і проаналізувати його. Виходить колонтилул руками на кожній сторінці малюється окремо і розібрати що так до чого ціла проблема.
> Програма створює цей самий rtf документ як звіт > з деякими даними > Мені в процесі формування цього файлу необхідно додати колонтитули з часом та датою формування документа
Ага, ось тепер більш-менш ясно.
Тобто. ти з причин, що не залежать від "капризів" замовника, не хочеш кардинально переробляти код, що дістався тобі у спадок, у якому цей док-т формується "ручками" без використання сторонніх готових засобів, і волієш лише доопрацювати його в частині додавання (знову ж таки "Ручками") необхідних тегів ?
>Тобто. ти з причин, що не залежать від "капризів" замовника, не хочеш кардинально переробляти код, що дістався тобі у спадок, в якому цей док-т формується "ручками" без використання сторонніх готових засобів, і віддаєш перевагулише доопрацювати його в частині додавання (знову ж "ручками") необхідних тегів? Як говорить одна моя знайома "абсолютно в дірочку"
Ну тоді, якщо "розібрати що так до чого ціла проблема", я твоєму геморою не заздрю)
Ну хочеш я тобі на допомогу скину frxExportRTF.pas зі складу FR3?)
З'явився такий варіант, відкрити збережений файл rtf як ole об'єкт ворда і вже там обробити і додати ці окояні колонтитули. Залишилося питання, як зробити зроблений файл Ole об'єктом?
Такого OLE об'єкта в системі не зареєстровано, спочатку доведеться зробити сервер.
> як зробити зроблений файл Ole об'єктом?
Але можна отримати доступ до ole-об'єкта Word.Application і вже його засобами обробити rtf-документ.
>Але можна отримати доступ до ole-об'єкта Word.Application і вже його засобами обробити rtf-документ. А детальніше? Систаксим можна? З.И. Ідея виникла після того, як робив звіти в Excel через ole об'єкт і все чудово там оброблялося, можна ж зробити за ідеєю те саме з уже готовим файлом.
ActiveDocument.Sections[1].Headers[wdHeaderFooterPrimary].Range.Text := "Загальний колонтитул для всіх сторінок першої секції документа";
>ActiveDocument.Sections[1].Headers[wdHeaderFooterPrimary].Range.Text := "Загальний колонтитул для всіх сторінок першої секції документа"; А як зробити цей документ ActiveDocument?
> За ActiveDocument знайти нічого не можу
Шукай у довідці з MS Word VBA
>Шукай у довідці по MS Word VBA Ні, ти не зрозумів, тобто. слабкувати засобами VB я зможу, бо досвід із цим не малий, питання в іншому, як збережений rtf файл ЗРОБИТИ Ole об'єктом щоб до нього можна було застосовувати засоби роботи з VBA.
"слабати засобами VB" ти зможеш завдяки TWordApplication, TWordDocument із юніту WordХХХХ. Підключи його та користуйся.
Тобі ж вже відповіли, що б rtf можна було під'єднати як об'єкт потрібно розробити сервер.
краще переробити на фастрепорт або інший генератор звітів.