На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania 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 не имеет форматирования внутри
                                "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1217 ]   [ 17 queries used ]   [ Generated: 17.11.17, 23:00 GMT ]