Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?

Joss
Дата: 23.11.2015 16:38:47
Отчёт с группировками. Большой. Несколько сот страниц. Группы могут располагаться на нескольких страницах. Чтоб не путаться, в заголовке группы на последующих страницах пишется слово "(продолжение)". Реализовано это следующим образом.

В модуле отчёта задаётся переменная intNewPage
Option Compare Database
Public intNewPage As Integer

Private Sub ЗаголовокГруппы0_Format(Cancel As Integer, FormatCount As Integer)
intNewPage = 0 ' обнуляем значение
End Sub

Private Sub ЗаголовокГруппы1_Print(Cancel As Integer, PrintCount As Integer)
intNewPage = intNewPage + 1 ' изменяем значение
End Sub

В самом отчёте, в поле, где должна выводиться надпись, параметру Данные присваиваю значение
=IIf([intNewPage]>1;"(продолжение)";"")
В 2003 такая конструкция работала без проблем. А в 2007 вместо значения пишет #Имя?
Что делать?



-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
guest_rusimport
Дата: 23.11.2015 17:40:18
Joss,
посмотри , как пример отработает в 2007-м (к сожалению его у меня нет :( )
Joss
Дата: 24.11.2015 08:52:07
guest_rusimport, это немного не тот случай.

А теперь решение. Так как в 2007 (наверно и выше) к переменной в отчёте запретили обращаться как к полю, то будем обращаться к ней, как к функции. Вот так.
Option Compare Database
Public intNewPage As Integer

Private Sub ЗаголовокГруппы0_Format(Cancel As Integer, FormatCount As Integer)
intNewPage = 0 ' обнуляем значение
End Sub

Private Sub ЗаголовокГруппы1_Print(Cancel As Integer, PrintCount As Integer)
intNewPage = intNewPage + 1 ' изменяем значение
End Sub

Private Function fnNewPageA() As Integer
    fnNewPageA = intNewPage 
End Function
В самом отчёте, в поле, где должна выводиться надпись, параметру Данные присваиваю значение
=IIf(fnNewPageA()>1;"(продолжение)";"")
И всё начинает работать.
guest_rusimport
Дата: 24.11.2015 09:00:34
Joss,

ну, да, пример не по ТЗ, но я имел ввиду, что можно отображать результаты подсчета глобальной переменной в скрытом поле intNewPage в отчете и тогда тоже всё будет работать :)
Анатолий ( Киев )
Дата: 24.11.2015 11:24:32
Joss, может вместо функции лучше создать свойство (PropertyGet) и обращаться к нему?
Александр Маркин
Дата: 24.11.2015 16:40:20
Joss,
Дим, а почему Public, а не Dim?
---------------------------------
ПЕНСИОНЕРКА
Дата: 24.11.2015 17:07:35
Joss,

Public применяю только в общих модулях, а модулях форм/отчетов не применяю
__Michelle
Дата: 24.11.2015 17:37:26
Public - значение по умолчанию.
Так что, везде, где не Private - Public.
Естественно, с учетом области видимости.
Joss
Дата: 24.11.2015 20:46:52
Прощу прощения. Конечно же Private Ошибся при переносе с базы описался. При использовании Public выдаётся ошибка компиляции.

То Анатолий ( Киев ), а я просто не знаю, как использовать свойство (PropertyGet)
ROI
Дата: 26.11.2015 14:20:00
Joss
То Анатолий ( Киев ), а я просто не знаю, как использовать свойство (PropertyGet)

Да ну...
А интернет, а наш форум, куча сайтов (Гетц) на худой конец.
Как вы достали своей ленью, значимостью......
Баньте меня мне по баробану.