Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть? / 11 сообщений из 11, страница 1 из 1
23.11.2015, 16:38
    #39111238
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
Отчёт с группировками. Большой. Несколько сот страниц. Группы могут располагаться на нескольких страницах. Чтоб не путаться, в заголовке группы на последующих страницах пишется слово "(продолжение)". Реализовано это следующим образом.

В модуле отчёта задаётся переменная intNewPage
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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


В самом отчёте, в поле, где должна выводиться надпись, параметру Данные присваиваю значение
Код: vbnet
1.
=IIf([intNewPage]>1;"(продолжение)";"")

В 2003 такая конструкция работала без проблем. А в 2007 вместо значения пишет #Имя?
Что делать?



-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
23.11.2015, 17:40
    #39111319
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
Joss,
посмотри , как пример отработает в 2007-м (к сожалению его у меня нет :( )
...
Рейтинг: 0 / 0
24.11.2015, 08:52
    #39111646
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
guest_rusimport, это немного не тот случай.

А теперь решение. Так как в 2007 (наверно и выше) к переменной в отчёте запретили обращаться как к полю, то будем обращаться к ней, как к функции. Вот так.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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

В самом отчёте, в поле, где должна выводиться надпись, параметру Данные присваиваю значение
Код: vbnet
1.
=IIf(fnNewPageA()>1;"(продолжение)";"")

И всё начинает работать.
...
Рейтинг: 0 / 0
24.11.2015, 09:00
    #39111652
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
Joss,

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

Public применяю только в общих модулях, а модулях форм/отчетов не применяю
...
Рейтинг: 0 / 0
24.11.2015, 17:37
    #39112488
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
Public - значение по умолчанию.
Так что, везде, где не Private - Public.
Естественно, с учетом области видимости.
...
Рейтинг: 0 / 0
24.11.2015, 20:46
    #39112653
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
Прощу прощения. Конечно же Private Ошибся при переносе с базы описался. При использовании Public выдаётся ошибка компиляции.

То Анатолий ( Киев ), а я просто не знаю, как использовать свойство (PropertyGet)
...
Рейтинг: 0 / 0
26.11.2015, 14:20
    #39114037
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
JossТо Анатолий ( Киев ), а я просто не знаю, как использовать свойство (PropertyGet)
Да ну...
А интернет, а наш форум, куча сайтов (Гетц) на худой конец.
Как вы достали своей ленью, значимостью......
Баньте меня мне по баробану.
...
Рейтинг: 0 / 0
29.11.2015, 22:52
    #39115884
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть?
ROIJossТо Анатолий ( Киев ), а я просто не знаю, как использовать свойство (PropertyGet)
Да ну...
А интернет, а наш форум, куча сайтов (Гетц) на худой конец.
Как вы достали своей ленью, значимостью......
Баньте меня мне по баробану.
Высказался... Полегчало? Ну не знаю я как поведёт себя свойство (PropertyGet) в данном случае. Не знаю. А использование функции у меня давно отработано.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема. Отчёт в 2003 работает, в 2007 - нет. Как быть? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]