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

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

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

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

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

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

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

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

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

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

Можно как то от TimeOfDay() отнять 30 секунд? и сравнивать с полученным значением...
если каким то образом отнять 30 сек, то мне кажется что все получится...
...
Рейтинг: 0 / 0
Reporting Services Express 2008 R2 (выделить обновленные данные)
    #37120619
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Reporting Services Express 2008 R2 (выделить обновленные данные)
    #37121538
r12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r12
Гость
Код: 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
Reporting Services Express 2008 R2 (выделить обновленные данные)
    #37121581
r12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r12
Гость
написал вот так:

Код: 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
Reporting Services Express 2008 R2 (выделить обновленные данные)
    #37121674
r12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r12
Гость
Поторопился я с выводами:
автор
Код: plaintext
when datediff(second, GETDATE()- 30 /*current datetime*/, EVENTS.EVENTIME)< 30 

Вроде заработало :) теперь есть и 'Y' и 'N'
работает но как то не так...
...
Рейтинг: 0 / 0
Reporting Services Express 2008 R2 (выделить обновленные данные)
    #37121980
r12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r12
Гость
Теперь вроде все заработало :)
вот так все написал:
Код: 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
8 сообщений из 8, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Reporting Services Express 2008 R2 (выделить обновленные данные)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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