Необходимо как-то получать параметры запрограммированного отчета. Через проект не подходит, потому что один и тот же отчет подключается несколько раз и запускается с разными параметрами.
Когда этот отчет подключается к элементу акцента, в таблице Reports возникает новая строка со своим идентификатором. Хотелось бы к этому идентификатору привязать параметры отчета. Но этот идентификатор никак нельзя получить.
Возможно ли каким либо образом получить идентификатор запускаемого отчета из таблицы REPORTS?
Необходимо как-то получать параметры запрограммированного отчета. Через проект не подходит, потому что один и тот же отчет подключается несколько раз и запускается с разными параметрами.
Когда этот отчет подключается к элементу акцента, в таблице Reports возникает новая строка со своим идентификатором. Хотелось бы к этому идентификатору привязать параметры отчета. Но этот идентификатор никак нельзя получить.
Возможно ли каким либо образом получить идентификатор запускаемого отчета из таблицы REPORTS?
Тебе нужно просто запомнить параметры отчета, выбранные пользователем? Используй
Добавлено: Вт Окт 04, 2011 9:58 am Заголовок сообщения:
Пытаюсь решить аналогичную задачу, однако столкнулся со странными проблемами (странными, потому что все эти проблемы устранены в параметрах основных сущностей акцента):
1. Нельзя явно установить тип параметра (кроме как прямым запросом)
2. Если тип параметра меняется, то он как бы не меняется. Пример для простоты восприятия:
Код:
Workarea.UserParam("test") = 10
смотрим что в базе:
Код:
select PRM_NAME, PRM_TYPE, LEFT(PRM_STRING,5) as PRM_STRING, PRM_CY, PRM_LONG, PRM_DATE
from USR_PARAMS
Нетрудно увидеть, что поле хранения данных изменилось, а тип - нет. Соответственно при попытке чтения этого параметра Акцент вернет 0.
Кто-нибудь может объяснить, как UserParam можно использовать при таких явных недоработках и багах? Требую срочного исправления!
Добавлено: Вт Окт 04, 2011 10:04 am Заголовок сообщения:
Если кому нужно до нового билда (мы его будем ждать еще долго, я чувствую), то бага исправляется элементарной правкой хранимки:
Код:
ALTER procedure [dbo].[ap_usrprm_set]
@name nvarchar(256),
@type smallint,
@str nvarchar(256),
@cy money,
@lng int,
@dt datetime
as
set nocount on
begin tran
if (@str is null and @cy is null and @lng is null and @dt is null) or (@type = 1)
begin
-- delete
delete from USR_PARAMS where PRM_NAME=@name
end
else
begin
if exists(select * from USR_PARAMS where PRM_NAME=@name)
begin
-- update
update USR_PARAMS set PRM_STRING=@str, PRM_CY=@cy, PRM_LONG=@lng, PRM_DATE=@dt, PRM_TYPE = @type
where PRM_NAME=@name
end
else
begin
-- insert
insert into USR_PARAMS (PRM_NAME, PRM_TYPE, PRM_STRING, PRM_CY, PRM_LONG, PRM_DATE)
values (@name,@type,@str,@cy,@lng,@dt)
end
end
commit tran
Добавлено: Вт Окт 04, 2011 11:25 am Заголовок сообщения:
1. Тип параметра установить можно и нужно, например Workarea.UserParam("test") = CLng(10)
2. ошибка в процедуре правится только для SQL версии, а как быть с DAO?
3. Но совсем не понятно, зачем менять тип параметра, ведь это заведомо будет приводить к ошибкам (IMHO), что мешает создать другой параметр ?
Добавлено: Ср Окт 05, 2011 7:27 am Заголовок сообщения:
winnypuch писал(а):
1. Тип параметра установить можно и нужно, например Workarea.UserParam("test") = CLng(10)
2. ошибка в процедуре правится только для SQL версии, а как быть с DAO?
3. Но совсем не понятно, зачем менять тип параметра, ведь это заведомо будет приводить к ошибкам (IMHO), что мешает создать другой параметр ?
Ошибка - да, но во вред ли ?
Мне кажется, что нужно явно менять тип параметра, а не случайно :)
Добавлено: Ср Окт 05, 2011 11:16 am Заголовок сообщения:
winnypuch писал(а):
1. Тип параметра установить можно и нужно, например Workarea.UserParam("test") = CLng(10)
2. ошибка в процедуре правится только для SQL версии, а как быть с DAO?
3. Но совсем не понятно, зачем менять тип параметра, ведь это заведомо будет приводить к ошибкам (IMHO), что мешает создать другой параметр ?
1. Не всегда бывает возможно, особенно если работаешь со многими параметрами и не имеешь возможности узнать их тип (я разрешаю юзерам создавать свои параметры специальным диалогом).
2. А я не пользую ДАО
3. Ошибка проявилась случайно потому что параметр изначально внес как целое число через модуль, а потом попытался то же самое сделать инпутбоксом. И все. Полчаса мучался пока нашел корень зла.
Добавлено: Ср Окт 05, 2011 11:23 am Заголовок сообщения:
olimp писал(а):
Мне кажется, что нужно явно менять тип параметра, а не случайно
Билд будет. Его нет по нескольким причинам : мне некогда, Кухтину некогда, нет критичных ошибок.
Вообще хотелось бы сделать фейс-лифтинг в стиле W7.
К сожалению, то, что вы предлагаете, показывает "изначальный" тип. можно, конечно, нагородить огородов, но... Ведь ошибка явная? ;)
Критичной ошибкой считаю украинский перевод. Звыняйте, но пользователи просто смеются и говорят "что же это за программа, как же она написана, если ее даже перевести не могут?" Понимаю, что для восточного региона это не проблема, где все по-русски говорят. Но мои клиенты примерно 50/50 хотят использовать украинский интерфейс. Вспоминают китайские мануалы, в которых английские слова русскими буквами написаны...
Честно - лучше бы не было украинской локализации, меньше бы проблем было...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах