Проблема с Engine.startnewpage

отредактировано December 2009 Раздел: FastReport .NET
Собственно ничего нового я не делал, просто повторил скрипт, который работал в FR Studio 4.

Суть его в том, чтобы при печати накладной на последней странице был всегда хотя бы один бенд.
Public Class ReportScript
    
Dim Num as Integer = 0
    
Private Sub MasterData1_BeforePrint(ByVal sender As object, ByVal e As EventArgs)
      
Num = Num + 1

If (CType(Report.GetParameterValue("intTotalRecords"), Int32) = Num) And (Engine.FreeSpace < ReportSummary1.Height + 30) Then
   Engine.StartNewPage
End If

    
End Sub

End Class

Здесь переменная "intTotalRecords" - число строк в таблице = числу выводимых бендов.

Так вот, когда на последней странице после срабатывания Engine.StartNewPage оказывается всего один бенд, значение поля [Row#] остается пустым.
Если на последней странице после срабатывания Engine.StartNewPage оказывается более одного бенда, значение поля [Row#] отображается верно.

Для наглядности прикрепляю четыре скрина с разными количествами строк-бендов.

Комментарии

  • отредактировано 13:57
    Спасибо, исправлю в следующем билде. Кстати, для удержания хотя бы одной строки данных с подвалом, используйте свойство "Не отрывать от данных" у подвала. Скрипт не нужен.
  • отредактировано December 2009
    AlexTZ написал: »
    Спасибо, исправлю в следующем билде. Кстати, для удержания хотя бы одной строки данных с подвалом, используйте свойство "Не отрывать от данных" у подвала. Скрипт не нужен.
    Благодарю.
    Действительно обошлось без скрипта.

    И заодно уж, не подскажите, как лучше скрывать надпись в подвале страницы "Страниц N из M", когда страница одна и показывать ее, когда их больше одной?

    Я пока сделал так:
    Private Sub PageFooter1_BeforePrint(ByVal sender As object, ByVal e As EventArgs)
           
          If CType(Report.GetVariableValue("TotalPages"), Int32) = 1 Then
            MemoPages.Visible = False
          Else
            MemoPages.Visible = True
          End If
          
        End Sub
    
    но как то это не всегда срабатывает или срабатывает неправильно.
  • отредактировано December 2009
    - включите два прохода у отчета;
    - у объекта "Текст" задайте условное выделение:
    Выражение: [TotalPages] == 1 (если язык - Vb, то [TotalPages] = 1)
    и отключите флажок "Видимый" в настройках условного выделения.
  • отредактировано December 2009
    Благодарю, попробую.

    И заодно уж, чтобы не открывать новую тему.

    Не планируется ли у вас экспорт в формат MS.Office 2003 (xls), не (xml), как это у вас есть сейчас, без присутствия самого MS.Office 2003, как это есть у ваших конкурентов в StimulSoft?

    Это сейчас очень актуально, потому как мы работаем с Open Office, а файлы отправляем в формате MS.Office 2003 (xls) и пока что приходится программно сохранять файл формата Open Office в формате MS.Office 2003 (xls).

    Благодарю.
  • отредактировано 13:57
    Экспорт в xls не планируется. Раз вы работаете с OpenOffice, почему бы не использовать имеющийся экспорт в OpenOffice Calc?
  • отредактировано 13:57
    AlexTZ написал: »
    Экспорт в xls не планируется. Раз вы работаете с OpenOffice, почему бы не использовать имеющийся экспорт в OpenOffice Calc?
    Так это мы работаем с OpenOffice, а наши партнеры работают с MS Office, вот и приходится подстраиваться под них, чтобы не создавать им проблемы с конвертацией формата.

    А с чем связано, что вы это не планируете?
    Вещь то очень нужная в свете указанного мною, да и конкуренты ваши это уже давно реализовали.
  • отредактировано 13:57
    Очень трудоемкая поддержка формата, которому уже 12 лет. Тем более что для офиса2003 есть прекрасный заменитель в виде xml.
  • отредактировано December 2009
    И последнее, у вас вчера сменился номер билда - 1.3.1.

    Смена второй цифры в бильде означает какой то качественный сдвиг?
    Или это все относительные накопления?
  • отредактировано 13:57
    Это релиз версии 1.3. Скоро будет новость на сайте. Если сравнивать с версией 1.2.82, изменений никаких.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.