![]() |
|
Модераторы: Akina |
![]()
|
|
| oganes |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.12.2008 Репутация: нет Всего: нет |
Добрый вечер!
Буду благодарен, если поможете решить одну следующую задачу: Ее суть заключается в следующем - вычислить количество потраченных трудозатрат в ночное время водителей грузовых машин ("Почта России"). Сутки в рейсах возможны от нуля (т.е. в этот же день возвращается назад в АТП) до двух недель. Водитель может отправлятся в рейс в любое время, а также прибыть на предприятие тоже в любое время. И данное условие осложняет решение задачи. Т.е. водитель после вечерней погрузки может отправиться в рейс рано утром в 5:00 и прибыть в АТП, например в 4:47. Ночное время согласно законадательным-правовым нормам считает с 22 до 6 утра. На данный момент у меня имеются два предположения по перешию данного вопроса. Первое- в запросе с помощью многочисленного использования функции IIf, находим данное значение. Второе -переведя дату в числовое значение, мы получим, что ночное время - есть ничто иное как интервальная прогрессия. Далее по значениям дат отпраки и прибытия необходимо рассмотреть их расположение по отношению к интервалам ночного времени. В решение задачи с помощью первого метода более доступно, но точки зрения продуктивности она неэффективна, так как база данных огромна и потребуется огромное время для расчетов на имеющихся компьютерах. Во втором случает, оформив в модуле компактную функцию можно избежать в какой то степени данную проблему, но как ее реализовать, к сожалению, на данный момент имеются только мутные представления. Заранее спасибо! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Использование хранимой процедуры скорее всего является оптимальным решением - если хочется остаться в рамках SQL и метод доступа ADO. Есть и другое решение - использование врЕменной статической таблицы (разовый пересчёт), - правда при этом сползает оперативность обновления данных.
А вообще поподробнее - какая именно БД, в какой именно структуре лежат данные... на VB6, как я понимаю, пишется клиентская часть? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oganes |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.12.2008 Репутация: нет Всего: нет |
Да БД формируется на VB6 в которой имеются данные (таблицы) о транспорте, направлениях, водителях и всех произведенных рейсах.
В таблице рейсы имеются следующие поля: путевой лист, водитель, водитель2 (когда 2 водителей в рейсе), транспорт, время отправки, дата отправки, время прибытия, дата прибытия, и иная информация, которую можно опустить при решении данной задачи. Необходимо получить таблицу (запрос), в которой бы расчитывались трудозатраты всех водителей (общее и ночное время) для расчетов зарплаты: табельный номер (водитель), количество суток, транспорт, время основное, ночное время и т.д. На данный момент, воспользовавшись основными функциями времени и дат, все необходимые данные мною получены. Возникла проблема с ночным временем, которая оплачивается по другой ставке. Что касается использования временной статической таблицы (разовый пересчёт), то можно поподробнее. Заранее спасибо! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Бред. Вы что, не знаете с чем работаете? Какой формат базы данных? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oganes |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.12.2008 Репутация: нет Всего: нет |
База данных пишется с пощью Access 2007: применяется язык SQL для построения запросов и скрипты на языке VBA.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Ну это другой разговор. Делайте ADO вьюху, использующую хранимку, которая вычилит всё необходимое.
Достаточно для первого и последнего дня посчитать часы-минуты ночного времени, а потом тупо приплюсовать по 8 часов за каждый день в серединке. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oganes |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.12.2008 Репутация: нет Всего: нет |
спасибо.
еще один вопрос: допустим получаем трудозатрат в количестве 130 мин., как выразить часы и минуты следующим образом: 2,10 т.е. 2 часа и 10 мин. если просто поделить на 60, то получим выражение в часах 2,1(6). Это можно получить с помощью мат. преобразований. : (130 mod 60)/100+130\60 Как Вы думаете имеется ли такая функция ( допустим при построении запросов)? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
PS. И почитайте наконец Правила Форума. Особенно пункт 10. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oganes |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.12.2008 Репутация: нет Всего: нет |
Во-первых, данные вопросы были взаимосвязаны...
Во - вторых, все равно спасибо Вам! |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |