Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 22.11.2024 22:10

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Сложение времени
СообщениеДобавлено: 19.02.2016 16:38 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Добрый день, уважаемые форумчане.

Решаем следующую задачу. Нужна помощь:

Задача:

Человек записывается в салон красоты на время 08:30. При этом заказывает три услуги, каждая из которых 10, 20 и 30 минут. Итого 50 минут. Следовательно, если мы к 08:30 прибавим 50 минут, у нас получается 09:20.

Ниже представлен скриншот. Свойства полей не показываю, так как там все выставлено вручную (без автоматических расчетов). Задача состоит в том, чтобы корректно сложилось время всех услуг, а потом в третьем поле автоматически расчиталось след. время.

Можно ли это каким-либо образом сделать автоматически?


Вложения:
s3.jpg
s3.jpg [ 152.09 КБ | Просмотров: 84862 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 19.02.2016 17:36 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Смотрите функцию DateAdd, которая складывает любые части времени.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 29.02.2016 18:13 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Уже просто сломали голову(((( Просим помощи с функцией DateAdd
Как ее правильно написать?

Наши поля:

Time1 = 17:00 Time2 = 00:40 Time3 = (тут нужно написать функцию, чтобы был расчет времени. Должно получиться 17:40)


Формат всех полей HH:mm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 29.02.2016 23:27 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Код:
Dim full
full = DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1)))
Time3 = Left(full, 2) & ":" & Mid(full, 4, 2)


Но вообще с такими вопросами не по нашим программам, а по языкам VBScript и SQL -- на профильные форумы.

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 01.03.2016 12:01 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Спасибо. Вечером проверю)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 01.03.2016 12:14 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Прикладываю скриншот из "Мои диски".


Вложения:
Pic_1.JPG
Pic_1.JPG [ 232.24 КБ | Просмотров: 84790 ]

_________________
2B OR NOT 2B = TRUE
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 01.03.2016 18:39 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
OMEN писал(а):
Код:
Dim full
full = DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1)))
Time3 = Left(full, 2) & ":" & Mid(full, 4, 2)


Но вообще с такими вопросами не по нашим программам, а по языкам VBScript и SQL -- на профильные форумы.



Пробовали это и в свойство поля вставить, и в тригеры.
Свойства поля не сохраняется. А вот триггер выдает ошибку. Ниже скрин:


Вложения:
time.png
time.png [ 25.37 КБ | Просмотров: 84780 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 01.03.2016 18:44 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Ivan писал(а):
Прикладываю скриншот из "Мои диски".



С формулой разобрались. Но есть "НО"!
Эта формула считает: "секунды:минуты:часы". Тут нет временного ограничения в плане "24 часа". Чтобы данная формула работала, поле должно быть текстовое. А нам необходимо, чтобы поле было формата дата/время и его маска HH:mm
Как то так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 01.03.2016 20:27 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
maxtarget писал(а):
OMEN писал(а):
Код:
Dim full
full = DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1)))
Time3 = Left(full, 2) & ":" & Mid(full, 4, 2)


Но вообще с такими вопросами не по нашим программам, а по языкам VBScript и SQL -- на профильные форумы.



Пробовали это и в свойство поля вставить, и в тригеры.
Свойства поля не сохраняется. А вот триггер выдает ошибку. Ниже скрин:
Это чистый VBScript, а не выражение, которое записывается в значении по-умолчанию поля, думал, разбиретесь. Если надо вычислять по формуле в значении по-умолчанию в поле, то запишите так:
Код:
LEFT(DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1))), 2) & ":" & MID(DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1))), 4, 2)
В отладчике все прекрасно работает.

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 01.03.2016 21:48 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Извините вмешиваюсь.
Я чуть не понял проблемы.
Я складываю так (Учет пациентов версия 2.528 база SQL).
Почему так нельзя?


Вложения:
Time1.JPG
Time1.JPG [ 29.65 КБ | Просмотров: 84773 ]
Time2.JPG
Time2.JPG [ 29.78 КБ | Просмотров: 84773 ]
Time.JPG
Time.JPG [ 33.78 КБ | Просмотров: 84773 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 02.03.2016 10:24 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
OMEN писал(а):
maxtarget писал(а):
OMEN писал(а):
Код:
Dim full
full = DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1)))
Time3 = Left(full, 2) & ":" & Mid(full, 4, 2)


Но вообще с такими вопросами не по нашим программам, а по языкам VBScript и SQL -- на профильные форумы.



Пробовали это и в свойство поля вставить, и в тригеры.
Свойства поля не сохраняется. А вот триггер выдает ошибку. Ниже скрин:
Это чистый VBScript, а не выражение, которое записывается в значении по-умолчанию поля, думал, разбиретесь. Если надо вычислять по формуле в значении по-умолчанию в поле, то запишите так:
Код:
LEFT(DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1))), 2) & ":" & MID(DateAdd("h", Hour(TimeValue(Time2)), DateAdd("n", Minute(TimeValue(Time2)), TimeValue(Time1))), 4, 2)
В отладчике все прекрасно работает.



Теперь все работает)))))


Вложения:
Time2.png
Time2.png [ 292.76 КБ | Просмотров: 84754 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 02.03.2016 10:25 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Uspenskiy писал(а):
Извините вмешиваюсь.
Я чуть не понял проблемы.
Я складываю так (Учет пациентов версия 2.528 база SQL).
Почему так нельзя?



Немного изменил, и все заработало))) База .mdb


Вложения:
Time3.png
Time3.png [ 272.07 КБ | Просмотров: 84753 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 02.03.2016 10:32 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Всем огромное спасибо. Искали один вариант, а нашли целых два)))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 02.03.2016 10:56 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Вариант от Uspenskiy с FORMAT работает, т.к. в базе SQL Server при ее создании добавляется одноименная пользовательская функция, заботливо написанная Иваном Валерьевичем специально для таких целей. А когда без неё, все равно неявным образом она используется, как мне кажется.
Ждем автора для комментариев.

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сложение времени
СообщениеДобавлено: 02.03.2016 16:37 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
OMEN писал(а):
... FORMAT работает, т.к. в базе SQL Server при ее создании добавляется одноименная пользовательская функция, заботливо написанная Иваном Валерьевичем специально для таких целей. А когда без неё, все равно неявным образом она используется, как мне кажется.
Ждем автора для комментариев.

Ага. И Микрософт внес её описание в свой MSDN... :)
Я по доброму улыбнулся.
Называть СВОИ функции именами совпадающими со стандартными, на мой взгляд, опасно. Можно запутаться самому в ввести заблуждение других.
Я был уверен что использую Микрософтовскую...

По существу.
На моем скриншоте Time2.jpg указанное (текст писал буквами) значение HH:MM при последующем открытии этого окна не показывается, но программа при работе его учитывает.

Предложение разработчикам:
- сделать что бы такой формат появлялся в списке выбора (как HH:mm правильней);
- отображался бы введенный ручками формат;
- если не указывать формат, то при сложении дат отображается только дата без времени (01.01.1900). Хотя в самой базе хранится и дата и время. Тут то же хорошо бы чего нибудь сделать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB