08.09.2006, 18:33 | #1 |
Участник
|
Вывод в Word
Дорогие эксперты!
Может есть какой-нибудь "бубен" (или хороший шаман), чтобы разрешить следующую проблему? Есть класс, выводящий данные в шаблон Word. Строиться документ по столбцам, в зависимости от заданных значений. На листе помещается три таких столбца. Если необходимо вывести больше - делается разрыв страницы, unlink полей и продолжается вставка на новом листе. А в строках заголовка страницы, окончания записи повторяются. Ну так вот, все вставляет, все выводит, можно сказать все идеально кроме одного: в конце страницы строится динамически табличка. Именно в одной этой табличке как будто не срабатывает unlink и все значения, что должны быть выведены на последующих страницах в аналогичной таблице - выводятся в одной ячейке на первой странице. Уже варианты кончились. В чем может быть загвозка? |
|
11.09.2006, 15:14 | #2 |
Пенсионер
|
Я чего-то не понял:
1."Если необходимо вывести больше - делается разрыв страницы" вывести бльше чего? Столбцов или строк 2."в конце страницы строится динамически табличка" строится где? в Ворде или в Аксапте. И что за "динамическая табличка" 3.Опишите алгоритм формирования столбцов в Ворде....
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
12.09.2006, 09:09 | #3 |
Дмитрий Ерин
|
А можно ламерский вопрос - что такое "unlink полей"?
|
|
12.09.2006, 17:00 | #4 |
Участник
|
есть шаблон, в котором для вывода данных - три столбца, соответственно для трех сотрудников.
Если необходимо вывести данные на четырех хотябы сотрудников - делается два листа, идентичных друг другу, отличия соотоят в данных сотрудников и на первом листе три столбца заполнены, на втором - один. Та табличка, чтоя пыталась сформировать, предназначена для вывода ФИО тех, кто будет подписывать. Список подписывающих изменяется. В зависимости от их количества я добавляю и/или удаляю соответствующие строчки таблички. Беда в том, что после того как пишется worddocument.unlinkFields(); worddocument.insertDocFile(templateFile); я могу обращаться к новому листу и вставлять на нужные места данные (продолжить формирование документа), но кроме этой таблички. Здесь указание идет на нее единственну, т.е. я пытаюсь обратиться например на второй лист, а у меня печатает на первом, и такое только с этой табличкой. |
|
12.09.2006, 20:41 | #5 |
Moderator
|
Третьим буду непонявшим практически ничего...
Показали бы страничку свою вордовую для примера! Всяко легче было бы разбираться. Пропишите там вместо реальных своих фамилий вымышленные типа Иванов И.И., Петров П.П., Сидоров С.С. и покажите. |
|
13.09.2006, 11:59 | #6 |
Пенсионер
|
Возможно проблемма, в том, что инфа выводится именно в виде "таблички". Там проблемма с определением bookmark после того как вставляется шаблон!
В свое время помучился с этим, потом плюнул ... и доделал методы класса так, что в качестве параметра еще и порядковый номер таблички передаю (1 шаблон - номер1 2-2 ит.д.) все получилось пучком и гораздо проще чем с bookmark - ами. зыж тока там навигация уже по ячейкам таблицы...
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
13.09.2006, 12:01 | #7 |
Пенсионер
|
В догонку, посмотрите какие букмарки в первой и второй табличках (1 и 2 листа) после вставки шаблона и все поймете сами..
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
13.09.2006, 12:07 | #8 |
Developer
|
А как данные в ворд выводятся, собственно? Используются ли букмарки, как предполагает blokva? используются ли поля (Range.Fields)? Или няпрямую в нужную ячейку нужной таблицы? Вообщем неплохо бы посмотреть фрагмент кода, а то ничего не понятно...
P.S. Судя по наверное через поля..., но хорошо бы все-таки код посмотреть... Последний раз редактировалось vallys; 13.09.2006 в 12:10. |
|
13.09.2006, 12:22 | #9 |
Пенсионер
|
щас уже не помню, но по-моему, доступ к полям осуществляется тоже через букмарки, по-любому 2-ой шаблон не перебивает первый и там возникают проблеммы с однозначной идентификацией
зыж как альтернатива : выводить все в Ёксель...
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
13.09.2006, 12:28 | #10 |
Developer
|
Цитата:
с букмарками - однозначно! |
|
13.09.2006, 13:44 | #11 |
Moderator
|
Золотые слова. Тем более, там есть опция типа FitToPage. Тем более, судя по скудном описанию, коллега пытается ваять некий бланк с ФИО, т.е. текст явно не длинный (не такой, что в одной из колонок текст располагается на нескольких страницах). Похоже, ситуация явно не та, когда преимущества Word'а являются подавляющими.
|
|
13.09.2006, 15:08 | #12 |
Дмитрий Ерин
|
Цитата:
1. Формировать табличку однократно, а затем копировать ее на остальные листы. 2. Запихнуть табличку в нижний колонтитул (не пинайте, если фигню сморозил , но почему бы и нет). Если же данные для таблицы могут меняться в зависимости от листа, то самое простое - действительно Эксель, как уже тут говорили... Хотя есть еще одна, совершенно бредовая мысль (не берусь оценить трудоемкость) - данные выводить опять же в Эксель (безо всяких шаблонов, в простом табличном виде), а в Ворде использовать т.н. "Слияние", обращаясь к сформированному экселевскому файлу! Изврат, наверное, полнейший, но вдруг получится?
__________________
|
|
13.09.2006, 16:50 | #13 |
Участник
|
Открываем HELP по VBA в самом Word и читаем описание метода Unlink
Цитата:
Сообщение от Unlink Method
When you unlink a field, it's current result is converted to text or a graphic and can no longer be updated automatically.
Зачем вообще нужно было использовать метод Unlink()? |
|
13.09.2006, 17:56 | #14 |
Developer
|
|
|
Теги |
excel, word, интеграция |
|
Похожие темы | ||||
Тема | Ответов | |||
Вывод отчета в WORD | 15 | |||
axcoder: WordSL - Microsoft Word as a visual XSLT editor | 0 | |||
Вывод в Excel в определнный Worksheet... | 1 | |||
Как импортировать из Word | 4 | |||
Вывод в Word | 1 |
|