AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.09.2006, 18:33   #1  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
Вывод в Word
Дорогие эксперты!

Может есть какой-нибудь "бубен" (или хороший шаман), чтобы разрешить следующую проблему?

Есть класс, выводящий данные в шаблон Word. Строиться документ по столбцам, в зависимости от заданных значений. На листе помещается три таких столбца. Если необходимо вывести больше - делается разрыв страницы, unlink полей и продолжается вставка на новом листе. А в строках заголовка страницы, окончания записи повторяются.
Ну так вот, все вставляет, все выводит, можно сказать все идеально кроме одного:
в конце страницы строится динамически табличка. Именно в одной этой табличке как будто не срабатывает unlink и все значения, что должны быть выведены на последующих страницах в аналогичной таблице - выводятся в одной ячейке на первой странице.

Уже варианты кончились. В чем может быть загвозка?
Старый 11.09.2006, 15:14   #2  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Я чего-то не понял:
1."Если необходимо вывести больше - делается разрыв страницы" вывести бльше чего? Столбцов или строк
2."в конце страницы строится динамически табличка" строится где? в Ворде или в Аксапте. И что за "динамическая табличка"
3.Опишите алгоритм формирования столбцов в Ворде....
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 12.09.2006, 09:09   #3  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
А можно ламерский вопрос - что такое "unlink полей"?
Старый 12.09.2006, 17:00   #4  
Прокопьева is offline
Прокопьева
Участник
 
40 / 10 (1) +
Регистрация: 02.03.2006
есть шаблон, в котором для вывода данных - три столбца, соответственно для трех сотрудников.
Если необходимо вывести данные на четырех хотябы сотрудников - делается два листа, идентичных друг другу, отличия соотоят в данных сотрудников и на первом листе три столбца заполнены, на втором - один.

Та табличка, чтоя пыталась сформировать, предназначена для вывода ФИО тех, кто будет подписывать. Список подписывающих изменяется. В зависимости от их количества я добавляю и/или удаляю соответствующие строчки таблички.

Беда в том, что после того как пишется worddocument.unlinkFields();
worddocument.insertDocFile(templateFile);
я могу обращаться к новому листу и вставлять на нужные места данные (продолжить формирование документа), но кроме этой таблички. Здесь указание идет на нее единственну, т.е. я пытаюсь обратиться например на второй лист, а у меня печатает на первом, и такое только с этой табличкой.
Старый 12.09.2006, 20:41   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Третьим буду непонявшим практически ничего...

Показали бы страничку свою вордовую для примера! Всяко легче было бы разбираться.
Пропишите там вместо реальных своих фамилий вымышленные типа Иванов И.И., Петров П.П., Сидоров С.С. и покажите.
Старый 13.09.2006, 11:59   #6  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Возможно проблемма, в том, что инфа выводится именно в виде "таблички". Там проблемма с определением bookmark после того как вставляется шаблон!
В свое время помучился с этим, потом плюнул ... и доделал методы класса так, что в качестве параметра еще и порядковый номер таблички передаю (1 шаблон - номер1 2-2 ит.д.) все получилось пучком и гораздо проще чем с bookmark - ами.
зыж тока там навигация уже по ячейкам таблицы...
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 13.09.2006, 12:01   #7  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
В догонку, посмотрите какие букмарки в первой и второй табличках (1 и 2 листа) после вставки шаблона и все поймете сами..
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 13.09.2006, 12:07   #8  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
А как данные в ворд выводятся, собственно? Используются ли букмарки, как предполагает blokva? используются ли поля (Range.Fields)? Или няпрямую в нужную ячейку нужной таблицы? Вообщем неплохо бы посмотреть фрагмент кода, а то ничего не понятно...

P.S. Судя по
Цитата:
Сообщение от Прокопьева Посмотреть сообщение
... worddocument.unlinkFields(); ...
наверное через поля..., но хорошо бы все-таки код посмотреть...

Последний раз редактировалось vallys; 13.09.2006 в 12:10.
Старый 13.09.2006, 12:22   #9  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
щас уже не помню, но по-моему, доступ к полям осуществляется тоже через букмарки, по-любому 2-ой шаблон не перебивает первый и там возникают проблеммы с однозначной идентификацией

зыж как альтернатива : выводить все в Ёксель...
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 13.09.2006, 12:28   #10  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от blokva Посмотреть сообщение
щас уже не помню, но по-моему, доступ к полям осуществляется тоже через букмарки
тоже не помню , но по-моему через Range.Fields.Item(FieldIndex).MethodOfFieldObject
Цитата:
Сообщение от blokva Посмотреть сообщение
по-любому 2-ой шаблон не перебивает первый и там возникают проблеммы с однозначной идентификацией
с букмарками - однозначно!
Старый 13.09.2006, 13:44   #11  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от blokva Посмотреть сообщение
зыж как альтернатива : выводить все в Ёксель...
Золотые слова. Тем более, там есть опция типа FitToPage. Тем более, судя по скудном описанию, коллега пытается ваять некий бланк с ФИО, т.е. текст явно не длинный (не такой, что в одной из колонок текст располагается на нескольких страницах). Похоже, ситуация явно не та, когда преимущества Word'а являются подавляющими.
Старый 13.09.2006, 15:08   #12  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Цитата:
Сообщение от Прокопьева Посмотреть сообщение
Та табличка, чтоя пыталась сформировать, предназначена для вывода ФИО тех, кто будет подписывать. Список подписывающих изменяется. В зависимости от их количества я добавляю и/или удаляю соответствующие строчки таблички.
ФИО подписывающих могут отличаться на разных листах? То есть, в Вашем примере - для первых трех сотрудников - подписывают одни, а для четвертого другие? Если нет, и этот динамический список будет идентичным для всех листов, то можно попробовать:
1. Формировать табличку однократно, а затем копировать ее на остальные листы.
2. Запихнуть табличку в нижний колонтитул (не пинайте, если фигню сморозил , но почему бы и нет).

Если же данные для таблицы могут меняться в зависимости от листа, то самое простое - действительно Эксель, как уже тут говорили...

Хотя есть еще одна, совершенно бредовая мысль (не берусь оценить трудоемкость) - данные выводить опять же в Эксель (безо всяких шаблонов, в простом табличном виде), а в Ворде использовать т.н. "Слияние", обращаясь к сформированному экселевскому файлу! Изврат, наверное, полнейший, но вдруг получится?
__________________
Старый 13.09.2006, 16:50   #13  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,668 / 1188 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Открываем 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, объект перестает быть полем и становиться обчным текстом. Разумеется, никакие вставки в него не проходят.

Зачем вообще нужно было использовать метод Unlink()?
Старый 13.09.2006, 17:56   #14  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Зачем вообще нужно было использовать метод Unlink()?
Видимо для того, чтобы после insertfile(...) старые поля "не мешали" новым из вставленного файла... Но это только автору известно
Теги
excel, word, интеграция

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод отчета в WORD ea DAX: Программирование 15 10.01.2008 13:19
axcoder: WordSL - Microsoft Word as a visual XSLT editor Blog bot DAX Blogs 0 26.01.2007 05:45
Вывод в Excel в определнный Worksheet... soin DAX: Программирование 1 22.10.2004 13:53
Как импортировать из Word chuf DAX: Программирование 4 21.06.2003 15:33
Вывод в Word Dron AKA andy DAX: Программирование 1 28.03.2002 20:16

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:55.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.