(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Входные параметры отчета

Источник: msdatabase

Input Parameters  


 
Применительно Аксесс 2000 и выше, ADP  
 
Для того чтобы использовать в качестве источника данных отчета хранимую процедуру MSSQL Server с параметрами входные параметры хранимой процедуры должны быть указаны в соответствующем свойстве отчета.  
 
В отличие от форм, в отчетах смена Входных параметров по событию открытие не приводит   к изменению в содержимом отчета. Поэтому приходится прибегать к некоторым трюкам чтобы получить возможность динамически определять получаемые данные.  
 
Самый простой способ получить желаемый результат состоит в том что часть строкового значения свойства отчета "Input Parameters" может быть вычислена из функций VBA.  
 
Задача:  
Передать из отчета "finctrl_platlist" два параметра "@prj" и "@Dohod"  
 
Решение:  
Создаем в отчете две ПУБЛИЧНЫЕ ФУНКЦИИ:  
Public Function GetReportdohod()  
GetReportdohod = Dohod 'Присвоим функции значение внутренней переменной отчета  
End Function  
 
Public Function GetReportprj()  
GetReportprj = prj  
End Function  
 
При этом свойство "Input Parameters" отчета "finctrl_platlist" должно иметь следующий вид:  
@prj nvarchar(50)= reports!finctrl_platlist.GetReportprj , @dohod bit = reports!finctrl_platlist.GetReportdohod  
 
Формат:  
@ИмяПеременнойХП ТипДанныхTSQL = reports!ИмяОтчета.НазваниеПубФункцииОтчета , следующий параметр в таком же формате  
 
Обратите внимание что при использовании функций отчета во входных параметрах функция при вызове не завершается скобками. Существует принципиальное отличие при использовании функций ОБЩИХ МОДУЛЕЙ ПРОЕКТА. В том случае если функция расположена не в модуле отчета, а в ОБЩЕМ МОДУЛЕ строка входные параметры имеет такой вид:  
@prj nvarchar(50)= GetReportprj() , @dohod bit = GetReportdohod()  
т.е. должны присутствовать скобки, а имя модуля в котором эти функции расположены указывать не обязательно.  
 
Полный листинг модуля отчета:  
 
Option Compare Database  
Option Explicit  
Private Dohod As Integer  
Private prj As String  
 
Private Sub Report_Open(Cancel As Integer)  
'Прием аргументов открытия отчета и разбор строки на параметры  
'OpenArgs в отчетах начиная с Access XP !!!!  
 
If Nz(Me.OpenArgs, "") = "" Then Exit Sub  
Dim Ta  
Ta = Split(Me.OpenArgs, "<nextfield>", , vbTextCompare)  
prj = Ta(0)  
Dohod = Ta(1)  
If Dohod = 0 Then  
Me.Caption = "Фактические расходы по проекту"  
Else  
Me.Caption = "Фактические доходы по проекту"  
End If  
 
'Этого было бы достаточно в случае с формой  
'Me.InputParameters = "@prj = '" & prj & "', @dohod = " & Dohod  
End Sub  
 
Public Function GetReportdohod()  
GetReportdohod = Dohod  
End Function  
 
Public Function GetReportprj()  
GetReportprj = prj  
End Function  
 
 

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 12.12.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft 365 Business Standard (corporate)
Microsoft 365 Business Basic (corporate)
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Apps for business (corporate)
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
CASE-технологии
Программирование на Microsoft Access
Утиль - лучший бесплатный софт для Windows
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100