Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
i
Зарегистрирован: 20.02.2009 Сообщения: 12
|
Добавлено: Пт Фев 20, 2009 14:47 Заголовок сообщения: использование *.dot шаблонов в произвольных отчетах. |
|
|
Простите, может быть торможу.
Добавил шаблон с {docvariable <name>} в шаблоны отчетов, из произвольных теперь могу вызвать его чере report <имя_файла>
Подскажите пожалуйста, как в docvariable передать какое-нибудь значение, чтобы в репорте отобразилось? На каком нибудь простеньком примере, если можно изобразите, плз. |
|
Вернуться к началу |
|
 |
Eng Site Admin
Зарегистрирован: 13.05.2008 Сообщения: 160
|
Добавлено: Пт Фев 20, 2009 15:19 Заголовок сообщения: |
|
|
Поглядите в списке работников - справки - пропуск, проще всего начать именно с него, он простой и понятный.
В администраторе находите этот отчет, в переменной этого отчета помимо всего прочего есть строки
Код: |
wordApp.ActiveDocument.Variables.Add( "ФАМИЛИЯ", :ФАМИЛИЯ [""] );
....
wordApp.ActiveDocument.Variables.Add( "Подразделение", :Подразделение [""] );
wordApp.ActiveDocument.Variables.Add( "ДАТА", :ДАТА [""] );
|
Это и есть передача значений в шаблон.
Откройте шаблон на редактирование, в параметрах ворда на закладке "дополнительно" включите галку "отображать коды полей вместо их значений" и увидите, как оно должно выглядеть в ворде.
Ну и на сколько я знаю, для того, чтобы все работало "Как надо", необходим еще некоторый VBA скрипт в шаблоне, я в него обычно не лазил, брал работающий шаблон, удалял из него все не нужное и сохранял с новым именем, тем самым сохраняя этот скрипт в новом шаблоне. Можно и скрипт из работающего отчета в свой шаблон скопировать с помощью VBA.
Имеет смысл поглядеть также раздел "ПРИМЕР: Примеры построения отчетов" в произвольных отчетах, там много интересного, есть примеры простых отчетов и больших табличных.
Удачи. |
|
Вернуться к началу |
|
 |
i
Зарегистрирован: 20.02.2009 Сообщения: 12
|
Добавлено: Пт Фев 20, 2009 15:40 Заголовок сообщения: |
|
|
Спасибо, я значит на правильном пути был. Все равно не открывается, но если руками на поле сделать Обновить поле - тогда значение отображается). Подскажите плз, как программно можно обновить поле docvariable? |
|
Вернуться к началу |
|
 |
i
Зарегистрирован: 20.02.2009 Сообщения: 12
|
Добавлено: Пт Фев 20, 2009 15:41 Заголовок сообщения: |
|
|
Все спасибо, нашел в примерах! )
wordApp.Run("DocVarUpdate"); |
|
Вернуться к началу |
|
 |
Eng Site Admin
Зарегистрирован: 13.05.2008 Сообщения: 160
|
Добавлено: Пт Фев 20, 2009 15:51 Заголовок сообщения: |
|
|
 |
|
Вернуться к началу |
|
 |
i
Зарегистрирован: 20.02.2009 Сообщения: 12
|
Добавлено: Пт Фев 20, 2009 16:23 Заголовок сообщения: |
|
|
Что-то я рано порадовался. Вываливается екзепшен - MS Word: Не удается запустить указанный макрос. После чего приходится рефрешить поля руками((
Даже пробовал в работающий шаблон свой перенести - все равно не пашет. Может быть дело в 2003 ворде? |
|
Вернуться к началу |
|
 |
Eng Site Admin
Зарегистрирован: 13.05.2008 Сообщения: 160
|
Добавлено: Пт Фев 20, 2009 17:43 Заголовок сообщения: |
|
|
Ну если стандартные отчеты с подобной ошибкой не вываливаются, значит проблема все таки не в нем
Давайте еще раз, правильная последовательность действий:
Открываем на редактирование стандартный (работающий) шаблон, удаляем из него все лишнее, вставляем переменные (кстати удобно копировать переменную и менять ее название), сохраняем в виде шаблона (.dot), загружаем в администраторе. Копируем "переменную" из похожего отчета, заменяем нужные нам селекты и переменные...
Все должно работать.
...Может вы новый шаблон (с макросами) в босс не загрузили? |
|
Вернуться к началу |
|
 |
Anastasiya
Зарегистрирован: 19.05.2014 Сообщения: 7
|
Добавлено: Пн Фев 16, 2015 11:51 Заголовок сообщения: |
|
|
Добрый день!
Столкнулась с проблемой при заполнении документа .dot.
Может кто-нибудь знает, как ее обойти? Подскажите, пожалуйста!!!
В word передаю значения переменных (коды полей DocVariable). На месте тех переменных, которым ничего не было передано (0-ые значения) пишет "Ошибка! Переменная документа не указана." При этом смотрю аналогичные шаблоны: в такой же ситуации поле остается просто незаполненным, без этой надписи об ошибке.
Логично, что отличие где-то в настройках Word.
Сравнила параметры Word, пока отличий не увидела... |
|
Вернуться к началу |
|
 |
Joenka
Зарегистрирован: 08.11.2013 Сообщения: 77 Откуда: Moscow
|
Добавлено: Вт Фев 17, 2015 10:12 Заголовок сообщения: |
|
|
Читайте выше по тексту: wordApp.Run("DocVarUpdate");
В вашем случае просто видимо либо в dot нету макроса, либо он не запускается при формировании документа.
Текст макроса там примерно такой:
...
Dim fld as Fields
for each fld in activedocument.fields
x = fld.update
if not x then fld.delete
next
.....
Собственно макрос вам просто эти "пустые" переменные и удалит после формирования текста документа.
ЗЫ:
Еще проще в макросе сделать:
ActiveDocument.fields.unlink |
|
Вернуться к началу |
|
 |
|