powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Работа с функцией в Reporting
9 сообщений из 9, страница 1 из 1
Работа с функцией в Reporting
    #33498872
lusinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Подскажите в чем здесь ошибка.
есть две функции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Function MyFun(a as integer) as string
MyFun=CStr(a\ 3600 ) & ":" & _
CStr(a\ 60  - (a\ 3600 )* 60 ) & ":" & _
CStr(a - (a\ 3600 )* 3600 ) - (a\ 60  - (a\ 3600 )* 60 )* 60 
If MyFun = "0:0:0" Then
MyFun="  "
End If
End Function

Function MyFun3(a As Date, b As Date) As Integer
If b="00:00:00" Then
MyFun3= 0 
else
MyFun3 = DateDiff("s", a, b)
End If
End Function
в репортинге мне надо сделать следующее
Код: plaintext
=Code.MyFun(Code.MyFun3(Fields!Вход.Value, Fields!Выход.Value))
реультат пишет #Error хотя если проверять эти функции на работоспособность через VBA они нормально функционируют и возвращается результат "0:0:0", если Fields!Выход.Value = "00:00:00" или какое то значение в виде "5:0:34", если Fields!Выход.Value = "какое то время"
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33501128
LevS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для начала, проверьте будет ли оно работать с литералами:
=Code.MyFun(Code.MyFun3(CDate("1/1/2003"),CDate("1/2/2003")))
Кстати, MyFun можно упростить, посмотрите здесь: http://www.sql.ru/forum/actualthread.aspx?tid=254218

---
This posting is provided "AS IS" with no warranties, and confers no rights.
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33509419
lusinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обнаружила интересный момент. У меня на домашнем компе все тоже самое отрабатывает верно, а на рабочем пишет ошибку. из-за чего такое может быть???
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33509654
ReportServer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lusinkaОбнаружила интересный момент. У меня на домашнем компе все тоже самое отрабатывает верно, а на рабочем пишет ошибку. из-за чего такое может быть???

Разные данные?
На рабочем где-то среди дат может быть null
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33510660
lusinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверила везде стоит время NULL-значения нет нигде.
и-за кодовой страницы может такое быть? там может знак " по другому как то воспинимается при разных кодовых страницах?
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33512129
LevS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие комбинации исходных полей приводят к ошибке?
---
This posting is provided "AS IS" with no warranties, and confers no rights.
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33512343
lusinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда допустим в поле Выход 00:00:00, а в поле Вход время указано 09:00:03
это означает, что вход в систему был, а входа еще не было и функция должна вернуть 00:00:00, а возращается #Error
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33512639
ReportServer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы попробовал заменить
If b="00:00:00" Then
на
If b=CDate("00:00:00") Then
--
This posting is provided "AS IS" with no warranties, and confers no rights.
...
Рейтинг: 0 / 0
Работа с функцией в Reporting
    #33515350
lusinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
С проблемой #Error разобралась. Теперь у меня возникла другая проблема с подсчетом общего времени за день в отчете. Использую те же функции, но при подсчете суммы результат больше получается чем должен быть и откуда он такие цифры берет не могу понять
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Function MyFun(c As Integer) As String
MyFun=CStr(c \  3600 ) & ":" & _
CStr(c \  60  - (c \  3600 )* 60 ) & ":" & _
CStr(c - (c \  3600 )* 3600 ) - (c \  60  - (c \  3600 )* 60 )* 60 
If MyFun="0:0:0" Then
MyFun = "  "
End If
End Function      

Function MyFun3(a As Date, b As Date) As Integer
Dim c As Integer
If b=("00:00:00") Then
MyFun3= 0 
Exit Function
else
MyFun3 = DateDiff("s", a, b)
End If
End Function      
там где надо посчитать сумму пишу
Код: plaintext
=Code.MyFun(Sum(Code.MyFun3(Fields!Вход.Value, Fields!Выход.Value )))
все это содержится в строке, где группировка идет. допустим вместо 15342 секунды как должно быть он считает мне 42345.
Если указываю
Код: plaintext
Code.MyFun(Code.MyFun3(Fields!Вход.Value, Fields!Выход.Value ))
все работает верно
в чем может быть проблема?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Работа с функцией в Reporting
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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