На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! В разделе обсуждаются следующие темы:
1) Процесс разработки программного обеспечения.
2) Определение требований к программному обеспечению.
3) Составные части и процесс проектирования (см. Шаблоны проектирования).
4) Документирование программного продукта(проекта).
5) Руководство разработкой программного обеспечения.
6) Проектирование пользовательского интерфейса.
7) Контроль версий проекта (см. Управление версиями в Subversion, Стратегии использования svn).
Модераторы: ElcnU
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Формирование документов MS Office из программы
    Очень часто программы формируют документы word, excel и т.п. Я знаю только 1 способ эффективной работы с ними:
    1 Создать заранее шаблон с неизменным текстом
    2 В шаблон вставить подменные переменные - например %ФИО_АБОНЕНТА%
    3 Программа создает документ на основе шаблона и подменяет подменные переменные на нужные.

    Есть-ли какие-то ещё способы формирования подобных документов? Как например формируются документы в ворд\экселе точные копии экрана программы? Т.е. программа показала в себе форму, эта-же форма попала в вордовский файл.
      Printscreen? :-?

      Начали писАть про документ а закончили копией с экрана.
      Вообще точную копию можно сделать либо как картинку либо что-то типа документа pdf. Я например в своей программе создаю документ (правда HTML), даю посмотреть/распечатать через стандартный webbrowser, а далее при желании, можно этот же документ экспортировать в файл.
        Он наверно имел в виду, что программа показывает превьюшку будущего документа. А потом формирует документ, который выглдит, как эта превьюшка.

        PDF не всегда удобен. Бывает нужно сформировать документ, а потом его как-то доработать руками. С PDF это сделать затруднительно.

        Есть библиотеки, позволяющие сформировать нужный файл. Но практически это та же работа с шаблоном, только спрятанная внутрь программы. Программа не читает шаблон, меняет текст и пишет файл, а сразу пишет с нужным текстом.

        Шаблоны особенно удобно использовать, если формируется файл типа RTF (Rich Text Format), его можно обработать любой программой обработки текста, вообще без использования каких-либо библиотек.
          Цитата amk @
          Программа не читает шаблон, меняет текст и пишет файл, а сразу пишет с нужным текстом.

          Так там куча форматирования - цвет, шрифт и т.д.


          Цитата DIS @
          ачали писАть про документ а закончили копией с экрана.

          Да, имел в виду превью.
            Ответ от kosten:
            ^D^ima, ты вроде с 1С работаешь? Вот там печатную форму можно сохранить как документ word или excel.

            Цитата ^D^ima @
            1 Создать заранее шаблон с неизменным текстом
            2 В шаблон вставить подменные переменные - например %ФИО_АБОНЕНТА%
            3 Программа создает документ на основе шаблона и подменяет подменные переменные на нужные.

            Ты описал самый простой случай. Представь, что в шаблоне у тебя есть таблица. Количество строк заранее не известно. Как будешь действовать?
              Цитата OpenGL @
              Ответ от kosten:
              ^D^ima, ты вроде с 1С работаешь? Вот там печатную форму можно сохранить как документ word или excel.

              Вопрос не про 1С, а о разработке софта языком высокого уровня.


              Цитата OpenGL @
              Ты описал самый простой случай. Представь, что в шаблоне у тебя есть таблица. Количество строк заранее не известно. Как будешь действовать?

              Так это и есть мой вопрос. Возможно есть какие-то print-report'ы, где все делается само, и люди не изобретают велосипед, а пользуются готовыми решениями?
                Цитата ^D^ima @
                Так это и есть мой вопрос. Возможно есть какие-то print-report'ы, где все делается само, и люди не изобретают велосипед, а пользуются готовыми решениями?

                Не знаю :unsure: У нас в компании пользуются своим велосипедом, формирующим документ по шаблону через COM. Он позволяет вставлять не только строки, но и содержимое файлов, более того, это делается рекурсивно - если во вставляемом документе тоже есть теги, которые надо заменить - они заменятся. Конкретно таблицы c динамическим количеством строк генерируются в html.
                Совет от kosten-а тоже сводится к COM :)
                  Цитата OpenGL @
                  формирующим документ по шаблону через COM.

                  Цитата OpenGL @
                  Совет от kosten-а тоже сводится к COM


                  Так я так и написал в первом посте, по другому с вордом я не знаю ка ещё можно взаимодействовать.

                  В общем ответ - через шаблон с подменой текста, как понимаю
                    Цитата OpenGL @
                    Количество строк заранее не известно. Как будешь действовать?

                    ...ActiveDocument->Tables->Item(N) - выбираем N-ю таблицу а у таблицы есть методы добавления новых строк.

                    Добавлено
                    Можно через закладку по диапазону , накладываем на все колонки таблицы.
                      Цитата ^D^ima @
                      В общем ответ - через шаблон с подменой текста, как понимаю

                      Не только подмена, но и с использованием других возможностей, которые тебе дает COM-объект.

                      Цитата ^D^ima @
                      Вопрос не про 1С, а о разработке софта языком высокого уровня.

                      Ты решил обидеть 1С?
                        Ешхё можно использовать сторонние библиотеки, например Aspose (Aspose Word, Aspose Cells, Aspose PDF etc)
                          Гуру VBA могут пояснить какой подход в заполнении вордовского документа лучше - DocVariables или поиск и замена текстовых меток?
                            Цитата kosten @
                            Ты решил обидеть 1С?

                            :D Я имел в виду универсальным языком высого уровня(delphi, C)
                              Вариант создать XML/HTML установленного формата и открыть его как документ офиса?
                              используя "разметку" создать RTF документ (формат ЕМНИП открытый)
                              Сообщение отредактировано: Павел Калугин -
                                Цитата Павел Калугин @
                                XML

                                XML не имеет форматирования внутри
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0339 ]   [ 14 queries used ]   [ Generated: 8.11.24, 23:22 GMT ]