Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Reporting Services Express 2008 R2 (выделить обновленные данные) / 8 сообщений из 8, страница 1 из 1
16.02.2011, 16:38
    #37120391
r12
r12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
Доброе время суток!

Помогите пожалуйста решить проблему:

Есть отчет по проходам людей через турникеты. Данные обновляются на странице автоматически. Для этого я поставил в настройках отчета
<AutoRefresh>30</AutoRefresh>
Т.е. начальник открыл отчет и сидит смотрит на отчет, а он сам обновляется через каждые 30 секунд...

НО есть пожелание

Что бы новые данные, которые добавились через 30 секунд (после очередного автоматического обновления) - выделялись другим цветом или как то отличались от старых, соответственно надо что бы это происходило при каждом обновлении...

Мне кажется такая возможность есть.... но только вот как все это настроить.... не знаю... хотя может и нету... что то я совсем запутался :)
Очень надеюсь на вашу помощь...
...
Рейтинг: 0 / 0
16.02.2011, 16:45
    #37120423
buven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
Ну вы же время прохождения передаете? Сравнивайте с текущим серверным. Если попало в интервал в 30 секунд - выставляйте флаг в датасете (отдельное скрытое поле IS_NEW например). В свойствах строки анализируйте флаг и раскрашивайте все строки, где IS_NEW='Y'.
...
Рейтинг: 0 / 0
16.02.2011, 17:10
    #37120532
r12
r12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
Да, время передаю

... Как флаг выставлять не знаю ....

В свойствах текстового поля (там де время), в разделе "шрифт" - цвет написал следующие

=IIF(Fields!EVENTIME.Value > TimeOfDay(), "Green", "Red")

он красит все красным :) так как время я беру текущее и с ним сравниваю...

Можно как то от TimeOfDay() отнять 30 секунд? и сравнивать с полученным значением...
если каким то образом отнять 30 сек, то мне кажется что все получится...
...
Рейтинг: 0 / 0
16.02.2011, 17:35
    #37120619
buven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
r12... Как флаг выставлять не знаю ....

я имел ввиду следующее:
В данный момент у вас что то вроде
Код: plaintext
 select NAME,DATETIME_ENTRY from tbl
приходит в датасорс.
Заменить это на

Код: plaintext
1.
2.
3.
4.
select NAME,DATETIME_ENTRY,case 
when datediff(second,current date, DATETIME_ENTRY)< 30  
then 'Y' 
else 'N' end as FLAG 
from tbl
Потом в свойствах
Код: plaintext
IIF(Fields!FLAG.Value = 'N', "Green", "Red")
Но сам флаг не выводить в отчет.

r12Можно как то от TimeOfDay() отнять 30 секунд? и сравнивать с полученным значением...
если каким то образом отнять 30 сек, то мне кажется что все получится...
Это вам в поиск по VB.
...
Рейтинг: 0 / 0
17.02.2011, 09:35
    #37121538
r12
r12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT     EVENTS.EVENTIME, EMP.LASTNAME, EMP.FIRSTNAME, EMP.MIDNAME, DIVISION.NAME, EMP.SSNO, READER.enter_exit, READER.NAMES


,case 
when datediff(second, GETDATE()/*current datetime*/, EVENTS.EVENTIME)< 30 
then 'Y' 
else 'N' end as FLAG


FROM         UDFEMP INNER JOIN
                      EMP ON UDFEMP.ID = EMP.ID INNER JOIN
                      EVENTS ON EMP.ID = EVENTS.EMPID INNER JOIN
                      DEPT ON UDFEMP.DEPT = DEPT.ID INNER JOIN
                      DIVISION ON UDFEMP.DIVISION = DIVISION.ID INNER JOIN
                      READER ON EVENTS.MACHINE = READER.PANELID AND EVENTS.DEVID = READER.READERID
 WHERE     (EVENTIME >= @EVENTIME) AND (EMP.SSNO IS NOT NULL) and (DIVISION.NAME = @шифр or @шифр is null) and DIVISION.NAME <> 'фирма' and (READER.NAMES=@тер or @тер='везде')
ORDER BY EVENTS.EVENTIME DESC

current datetime и current date - не работает, пишет - Неправильный синтаксис около ключевого слова "current".
Все запускается и выполняется НО флаг почему то всегда равен 'Y'

и когда я в свойствах текстового поля (цвет шрифта) пишу
Код: plaintext
=IIF(Fields!FLAG.Value = 'N', "Green", "Red")
выдает ошибку:
В выражении Color для фрагмент текста "EVENTIME.Paragraphs[0].TextRuns[0]" содержится ошибка: [BC30201] Expression expected.
...
Рейтинг: 0 / 0
17.02.2011, 09:56
    #37121581
r12
r12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
написал вот так:

Код: plaintext
when datediff(second, GETDATE()- 30 /*current datetime*/, EVENTS.EVENTIME)< 30 
Вроде заработало :) теперь есть и 'Y' и 'N'


Осталась только эта ошибка:
когда я в свойствах текстового поля (цвет шрифта) пишу

Код: plaintext
=IIF(Fields!FLAG.Value = 'N', "Green", "Red")

выдает ошибку:
В выражении Color для фрагмент текста "EVENTIME.Paragraphs[0].TextRuns[0]" содержится ошибка: [BC30201] Expression expected.
...
Рейтинг: 0 / 0
17.02.2011, 10:39
    #37121674
r12
r12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
Поторопился я с выводами:
автор
Код: plaintext
when datediff(second, GETDATE()- 30 /*current datetime*/, EVENTS.EVENTIME)< 30 

Вроде заработало :) теперь есть и 'Y' и 'N'
работает но как то не так...
...
Рейтинг: 0 / 0
17.02.2011, 12:07
    #37121980
r12
r12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reporting Services Express 2008 R2 (выделить обновленные данные)
Теперь вроде все заработало :)
вот так все написал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT     EVENTS.EVENTIME, EMP.LASTNAME, EMP.FIRSTNAME, EMP.MIDNAME, DIVISION.NAME, EMP.SSNO, READER.enter_exit, READER.NAMES
, CASE WHEN 
                      datediff(second, EVENTS.EVENTIME, GETDATE()) <  30  THEN 'Y' ELSE 'N' END AS FLAG,
                      datediff(second, EVENTS.EVENTIME, GETDATE()) AS RT -- для проверки

FROM         UDFEMP INNER JOIN
                      EMP ON UDFEMP.ID = EMP.ID INNER JOIN
                      EVENTS ON EMP.ID = EVENTS.EMPID INNER JOIN
                      DEPT ON UDFEMP.DEPT = DEPT.ID INNER JOIN
                      DIVISION ON UDFEMP.DIVISION = DIVISION.ID INNER JOIN
                      READER ON EVENTS.MACHINE = READER.PANELID AND EVENTS.DEVID = READER.READERID
 WHERE     (EVENTIME >= @EVENTIME) AND (EMP.SSNO IS NOT NULL) and (DIVISION.NAME = @шифр or @шифр is null) and DIVISION.NAME <> 'фирма' and (READER.NAMES=@тер or @тер='везде')
ORDER BY EVENTS.EVENTIME DESC

а в свойствах написал так:
Код: plaintext
=IIF(Fields!FLAG.Value = "Y", "Green", "Black") 

buven , спасибо за помощь :)
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Reporting Services Express 2008 R2 (выделить обновленные данные) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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