• Расчет количества страниц 5 2
Текущий рейтинг:  

Автор Тема: Расчет количества страниц  (Прочитано 565 раз)

wizzzart

  • Ученик
  • *
  • Сообщений: 13
  • Благодарностей 0
Расчет количества страниц
« : Июль 25, 2016, 08:48:09 am »
Здравствуйте. Помогите рассчитать количество страниц в списке товаров. Идея вроде простая, но нигде не смог найти как ее реализовать.
Имеется объект "Договор" и связанный с ним "Список товаров". Список пронумерован, соответственно знаем количество товаров. Знаем так же, что на страницу при печати влезает 37 товаров. Если просто делить количество товаров на 37, руна округляет результат по общим правилам.
Отсюда первый вопрос: Есть ли в руне функция округления результатов деления?
Если такой функции нет, может быть расчет можно сделать в Ворде? Там есть поле NumPages но оно рассчитывается неправильно, так как список товаров формируется после договора, соответственно, после расчета этого поля. Менять местами договор и список не желательно...
Есть еще какие-нибудь варианты?

vladimir.runa

  • Главный модератор
  • Мастер
  • **
  • Сообщений: 341
  • Благодарностей 22
  • skype: vladimir.runa
Re: Расчет количества страниц
« Ответ #1 : Июль 25, 2016, 11:38:08 am »
Давно уже стал насущным вопрос по округлению вычисляемых значений. Поставим добавление функций в расчётном поле в ближайшие доработки.

РУНАТВОРЕЦ.РФ

  • Партнёры
  • Посвященный
  • *
  • Сообщений: 85
  • Благодарностей 15
Re: Расчет количества страниц
« Ответ #2 : Июль 25, 2016, 04:57:59 pm »
Здравствуйте, wizzzart.
Хотел бы вам помочь. Но для этого мне нужно разобраться в вашей ситуации. Вы пишите:

Цитировать
...может быть расчет можно сделать в Ворде? Там есть поле NumPages но оно рассчитывается неправильно, так как список товаров формируется после договора, соответственно, после расчета этого поля. Менять местами договор и список не желательно...

но этой информации мне не достаточно. В идеале выложите базу для ознакомления (можно в личку). Если нет, пожалуйста опишите подробнее последовательность формирования документов.

wizzzart

  • Ученик
  • *
  • Сообщений: 13
  • Благодарностей 0
Re: Расчет количества страниц
« Ответ #3 : Июль 26, 2016, 10:12:05 pm »
но этой информации мне не достаточно. В идеале выложите базу для ознакомления (можно в личку). Если нет, пожалуйста опишите подробнее последовательность формирования документов.
Когдя я пытаюсь показать количество страниц в ворде, от базы уже ничего не зависит. Проблема с вордом.
Опишу подробней ситуацию:
1. Руной формируется договор. Первые 3 страницы занимает текст договора. После текста договора, в качестве приложения к договору, формируется список товаров.
2. В текст договора необходимо указать количество страниц в приложении.
3. В ворде вставляю "Экспресс блоки" - "Поле" - NumPages - это поле показывает количество страниц в документе.
4. Отнимаю от NumPages количество страниц в договоре и по идее должно рассчитаться количество страниц в приложении: { = {NUMPAGES } - 3}

Проблема в том, что поле нужно вручную обновлять: наводить на него курсор и жать F9. Тогда оно рассчитывается правильно. При формировании документа программой такого обновления естественно не происходит.
Я сначала думал, что проблема в том, что это поле вставлено до списка товаров и рассчитывается до того, как руна формирует список, но оказалось, что даже если сначала вставлять список товаров, а потом поле, ничего не меняется - поле нужно вручную обновлять.

Так что придется ждать функции округления в руне.

РУНАТВОРЕЦ.РФ

  • Партнёры
  • Посвященный
  • *
  • Сообщений: 85
  • Благодарностей 15
Re: Расчет количества страниц
« Ответ #4 : Июль 27, 2016, 12:06:36 pm »
Здравствуйте, wizzzart.
Прежде всего благодарю вас за подробное описание вашей задачи. Теперь я могу вам помочь.

Ознакомившись с тем что вы уже предприняли, могу сказать: вы двигаетесь в правильном направлении. Осталось немного "дожать" задачу. Вы уже создали формулу расчета количества страниц в приложении к договору, но эта формула требует обновления для получения верного результата. Что-ж,  призовем в помощь макрос - он сделает за нас эту работу в автоматическом режиме при формировании документа из RUNA (пожалуйста ознакомьтесь со статьей.)
Ниже привожу код макроса:

Sub runa()
    Selection.WholeStory
    Selection.Fields.Update
End Sub

Теперь все будет работать. Задача решена...

...но предлагаю вам перейти на следующий уровень ;)

В предложенной вами формуле { = {NUMPAGES } - 3} есть один недостаток, а именно фиксированное количество страниц договора. Если вдруг это количество изменится, то формула будет показывать неверный результат. Давайте исправим это. Нам потребуется в конце текста договора поставить "разрыв раздела со следующей страницы". А уже на странице приложения вставить поле (Ctrl + F9) с кодом { SECTIONPAGES \* Arabic }. Это поле будет выводить количество страниц именно в текущем разделе (в котором у нас находится приложение к договору). Конечно нам потребуется еще и макрос для автоматического обновления этого поля.

Успехов вам в рунатворчестве. Теперь вы можете  поблагодарить автора поста.

wizzzart

  • Ученик
  • *
  • Сообщений: 13
  • Благодарностей 0
Re: Расчет количества страниц
« Ответ #5 : Июль 28, 2016, 06:23:59 pm »
Спасибо. Буду пользоваться.
Поблагодарить не могу - не вижу кнопок "плюс" и "минус"

 

Яндекс.Метрика