Поддерживаемые функции отчетов Access (службы SSRS)
При импорте отчета в конструктор отчетов процесс импорта преобразует отчет Microsoft Access в файл Reporting Services языка определения отчетов (RDL). Reporting Services поддерживает несколько функций Access, однако из-за различий между Access и Reporting Services некоторые элементы изменяются незначительно или не поддерживаются. В этом разделе описано преобразование функций отчетов Access в функции на языке определения отчетов.
Импорт отчетов Access
Некоторые запросы содержат специальный код Access. Этот код не импортируется вместе с отчетом. Кроме того, если запрос содержит внедренные строки, то отчет может импортироваться неправильно. В этом случае необходимо заменить строки кодами символов. Например, запятую (,) нужно заменить на «CHAR(34)».
Процесс импорта неправильно передает точку с запятой (;) или символы разметки XML (<, >и т. д.) в сведениях о строке подключения. Если строка соединения содержит такой символ, то необходимо вручную задать пароль в новом отчете после импорта.
Параметры соединения и общего времени ожидания в строке соединения не импортируются. Эти параметры можно настроить после импорта отчета.
При импорте отчета не преобразуются запросы, содержащие параметры. Чтобы импортировать запрос вместе с отчетом, временно замените параметры запроса в отчете Access фиксированными значениями и заново замените их нужными параметрами после импорта отчета.
Макет страницы
Макет страницы в Access отличается от макета в Reporting Services. Access упорядочивает элементы на странице, используя «полосы», то есть разделы на странице располагаются вертикально. Эти разделы могут включать заголовок отчета, нижний колонтитул отчета, верхний и нижний колонтитулы страницы, группы и подробные сведения. Reporting Services обеспечивает более гибкий макет. Области данных предоставляют возможности группирования и отображения подробных сведений; многочисленные области данных можно размещать в любых местах текста отчета, в том числе и рядом друг с другом. Reporting Services также включает "чередующийся" верхний и нижний колонтитулы страницы, аналогичные верхним и нижним колонтитулам страницы в Access.
При импорте отчета из Access в конструктор отчетов верхний и нижний колонтитулы из отчета Access преобразуются в колонтитулы Reporting Services страницы отчета. Группы и подробности преобразуются в списочную область данных. Верхний и нижний колонтитулы помещаются в текст отчета, а не в отдельные полосы. Это приводит к тому, что расположение элементов немного отличается от макета отчета Access.
Примечание
В некоторых отчетах Access элементы отчета, которые на первый взгляд располагаются рядом, могут в действительности перекрываться. Если импорт отчета выполнялся с помощью конструктора отчетов, это перекрытие не корректируется и может привести к непредвиденным результатам при запуске отчета.
обозревателе решений
Reporting Services поддерживает источники данных OLE DB, например SQL Server. При импорте отчета из файла проекта Access (ADP) строка подключения для источника данных извлекается из этого файла. При импорте отчета из файла базы данных Access (MDB или ACCDB) строка соединения может указывать на базу данных Access. В этом случае ее придется изменить после импорта. Если источником данных отчета Access является запрос, то данные запроса импортируются в RDL-файл без изменений. Если источником данных отчета Access является таблица, то в процессе преобразования запрос создается на основе имени и полей таблицы.
Отчеты с пользовательскими модулями
Если в модулях содержится пользовательский код Microsoft Visual Basic, он не преобразуется. Если конструктор отчетов обнаруживает код во время импорта, в окне Список задач создается предупреждение.
Элементы управления отчетом
Reporting Services поддерживает следующие элементы управления доступом и включает их в преобразованные определения отчетов.
Изображение | Метка | график; | Прямоугольник |
SubForm | SubReport Примечание В то время как элемент управления SubReport преобразуется в отчете main, сам вложенный отчет преобразуется отдельно. |
TextBox |
Reporting Services не поддерживает следующие элементы управления:
BoundObjectFrame | CheckBox | ComboBox | CommandButton |
CustomControl | ListBox | ObjectFrame | OptionButton |
TabControl | ToggleButton |
Если конструктор отчетов обнаруживает какой-либо из этих элементов управления в процессе импорта, в окне Список задач создается предупреждение.
Такие элементы управления, как ActiveX и веб-компоненты Office, не импортируются. Например, если отчет Access содержит элемент управления «Диаграмма веб-компонентов Office», то этот элемент не будет преобразован при импорте.
Свойства отчета
Reporting Services поддерживает следующие свойства, доступные через пользовательский интерфейс Access. Свойства, доступные только в коде, не поддерживаются и не перечисляются ниже.
BackColor | BackStyle | BorderColor | BorderStyle |
BorderWidth | BottomMargin | CanGrow (текстовое поле) | CanShrink (текстовое поле) |
Caption | FontBold | FontItalic | FontName |
FontSize | FontUnderline | FontWeight | ForceNewPage |
ForeColor | Высота | HideDuplicates | Гиперссылка |
IsHyperlink | IsVisible | KeepTogether (группа) | Левый |
LeftMargin | LineSlant | LineSpacing | LinkChildFields |
LinkMasterFields | NewRowOrCol | PageFooter | PageHeader |
Страницы | Picture | PictureTiling (отчет) | ReadingOrder |
RepeatSection | RightMargin | RunningSum | SizeMode |
TextAlign | TOP | TopMargin | Ширина |
Reporting Services не поддерживает следующие свойства, доступные через пользовательский интерфейс Access.
CanGrow (раздел) | CanShrink (раздел) | DecimalPlaces | FastLaserPrinting |
Фильтр | FilterOn | Формат | FormatConditions |
GrpKeepTogether | KeepTogether (раздел) | NumeralShapes | Ориентация |
PaintPalette | PaletteSource | PictureAlignment | PicturePages |
PictureSizeMode | PictureTiling (изображение) | ScrollBars | SpecialEffect |
Vertical |
Группирование
В Access уровень групп определяется сочетанием трех свойств: выражением группы, свойством GroupOn
и свойством GroupInterval
. Группа, у которой отсутствуют верхний и нижний колонтитулы, объединяется с группой, которую она содержит. Если группа не содержит других групп, то сортировка применяется ко всему разделу и группа удаляется.
Выражения
С помощью выражений в Access задаются значения, отображаемые в текстовых полях. В дополнение к некоторым агрегатным функциям в access используется Visual Basic в качестве языка выражений. Конструктор отчетов преобразует эти выражения Access в выражения отчета.
Функции
В определении отчета Reporting Services используется Visual Basic .NET в качестве собственного языка выражений, а в Access 2002 — Visual Basic. В следующих списках описаны функции, поддерживаемые Reporting Services.
Функции массивов
Reporting Services поддерживает следующие функции массива:
LBound
UBound
Функции преобразования
Reporting Services поддерживает следующие функции преобразования.
Asc | CBool | CByte | CCur |
CDate | CDbl | CDec | Chr |
Chr$ | CInt | CLng | CSng |
CStr | CVar | CVDate | Формат |
FormatCurrency | FormatDateTime | FormatNumber | FormatPercent |
Hex | Hex$ | Nz | Окт |
Oct$ | Str | Str$ | StrConv |
Val |
Reporting Services не поддерживает следующие функции преобразования:
GUIDFromString
StringFromGUID
Функции базы данных
Reporting Services поддерживает следующие функции базы данных.
CreateReport | GetObject | HyperlinkPart | Секция |
Reporting Services не поддерживает следующие функции базы данных.
CodeDb | CreateControl | CreateForm | CreateGroupLevel |
CreateObject | CreateReportControl | CurrentDb | CurrentUser |
DeleteControl | DeleteReportControl | Eval | IMEStatus |
SysCmd |
Функции даты/времени
Reporting Services поддерживает следующие функции даты и времени.
Дата | Date$ | DateAdd | DateDiff |
DatePart | DateSerial | DateValue | День |
Hour | Минута | Месяц | MonthName |
Сейчас | Второе | Time | Time$ |
Таймер | TimeSerial | TimeValue | День недели |
WeekdayName | Год |
Функции DDE/OLE
Reporting Services не поддерживает следующие функции DDE/OLE.
DDE | DDEIntitate | DDERequest | DDESend |
LoadPicture |
Агрегатные функции домена
Reporting Services не поддерживает следующие агрегатные функции предметной области.
DAvg | DCount | DFirst | DLast |
DLookup | DMax | DMin | DStDev |
DStDevP | DSum | DVar | DVarP |
Функции обработки ошибок
Reporting Services поддерживает следующие функции обработки ошибок.
Err | Ошибка | Error$ | IsError |
Reporting Services не поддерживает следующую функцию обработки ошибок:
- CVErr
Финансовые функции
Reporting Services поддерживает следующие финансовые функции.
DDB | FV | IPmt | IRR |
MIRR | NPer | NPV | Pmt |
PPmt | PV | Тариф | SLN |
SYD |
Функции взаимодействия
Reporting Services поддерживает следующие функции взаимодействия.
Get-Help | Command$ | CurDir | CurDir$ |
DeleteSetting | Dir | Dir$ | Environ |
Environ$ | EOF | FileAttr | FileDateTime |
FileLen | FreeFile | GetAllSettings | GetAttr |
GetSetting | Loc | LOF | QBColor |
RGB | SaveSetting | Seek | SetAttr |
Оболочка | Spc | Вкладка |
Reporting Services не поддерживает следующие функции взаимодействия.
DoEvents | В | Входные данные | Input$ |
Функции проверки
Reporting Services поддерживает следующие функции проверки.
IsArray | IsDate | IsEmpty | IsError |
IsNull | IsNumeric | IsObject | TypeName |
VarType |
Reporting Services не поддерживает следующую функцию проверки:
- IsMissing
Математические функции
Reporting Services поддерживает следующие математические функции.
Abs | Atn | Cos | Exp |
Исправление | Int | Журнал | Rnd |
Round | Sgn | Синус | Sqr |
Tan |
Функции сообщений
Reporting Services не поддерживает следующие функции сообщений.
InputBox | InputBox$ | MsgBox |
Функции управления потоком выполнения программы
Reporting Services поддерживает следующие функции потока программ.
Нажмите кнопку | IIf | Коммутатор |
Агрегатные функции SQL
Reporting Services поддерживает следующие агрегатные функции SQL.
Avg | Count | Max | Min |
StDev | StDevP | SUM | Var |
VarP |
Текстовые функции
Reporting Services поддерживает следующие текстовые функции.
Формат | Format$ | InStr | InStrRev |
LCase | LCase$ | Левый | Left$ |
Len | LTrim | LTrim$ | Mid |
Mid$ | Заменить | Правый | Right$ |
RTrim | Пробел | Space$ | StrComp |
StrConv | Строка | String$ | StrReverse |
Trim | Trim$ | UCase | UCase$ |
Константы
Access не поддерживает специальные константы Visual Basic (например, vbTrue
) в выражениях, поэтому преобразование не требуется. Однако есть одно исключение: ключевое слово Null
преобразуется в System.DbNull.Value
.
Параметры
При импорте конструктор отчетов просматривает каждое выражение отчета на наличие переменных, которые не соответствуют именам полей и элементам управления. Эти переменные добавляются к параметрам отчета.
При импорте параметры хранимых процедур всегда преобразуются к строковому типу данных. После импорта отчета необходимо вручную восстановить для параметров нужные типы.
Имена объектов
Access позволяет полям иметь то же имя, что и элементы управления; Reporting Services нет. Visual Basic 6.0 разрешает пробелы в именах переменных; Visual Basic .NET не поддерживает. При импорте имена таких объектов заменяются допустимыми именами, а объектам с одинаковыми именами присваиваются уникальные имена. Просматриваются все выражения, и имена переменных, соответствующих переименованным объектам, заменяются новыми именами.
Прямоугольники и включение
В определении отчета Reporting Services прямоугольники могут содержать другие элементы отчета. Любой прямоугольник, превышающий размеры элемента отчета и перекрывающий более 90% его поверхности, становится контейнером этого элемента.
Растровые изображения
Все битовые карты, внедренные в отчет, преобразуются при импорте в формат BMP, независимо от первоначального формата. Например, если отчет содержит файлы в формате JPG или GIF, то ресурсы, импортированные вместе с отчетом, будут преобразованы в BMP-файлы. Битовые карты хранятся в отчете в виде внедренных изображений. Сведения о внедренных образах см. в разделе Образы (Report Builder и службы SSRS).
Другие вопросы
Дополнительно к приведенным выше сведениям при импорте отчетов Access необходимо учитывать следующие замечания.
Условное форматирование не преобразуется.
Поле описания в свойствах отчета Access не преобразуется.