Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> интерал времени, интервальная (временная) прогрессия 
:(
    Опции темы
oganes
Дата 14.1.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.12.2008

Репутация: нет
Всего: нет



Добрый вечер!

Буду благодарен, если поможете решить одну следующую задачу:
Ее суть заключается в следующем - вычислить количество потраченных трудозатрат в ночное время водителей грузовых машин ("Почта России"). Сутки в рейсах возможны от нуля (т.е. в этот же день возвращается назад в АТП) до двух недель.  Водитель может отправлятся в рейс в любое время, а также прибыть на предприятие тоже в любое время. И данное условие осложняет решение задачи. Т.е. водитель после вечерней погрузки может отправиться в рейс рано утром в 5:00 и  прибыть в АТП, например в 4:47. Ночное время согласно законадательным-правовым нормам считает с 22 до 6 утра. 
На данный момент у меня имеются два предположения по перешию данного вопроса. Первое- в запросе с помощью многочисленного использования функции IIf, находим данное значение. Второе -переведя дату в числовое значение, мы получим, что ночное время - есть ничто иное как интервальная прогрессия. Далее  по значениям дат отпраки и прибытия необходимо рассмотреть их расположение по отношению к интервалам ночного времени. 
В решение задачи с помощью первого метода более доступно, но точки зрения продуктивности она неэффективна, так как база данных огромна и потребуется огромное время для расчетов на имеющихся компьютерах. Во втором случает, оформив в модуле компактную функцию можно избежать в какой то степени данную проблему, но как ее реализовать, к сожалению, на данный момент имеются только мутные представления. 

Заранее спасибо!
PM MAIL   Вверх
Akina
Дата 14.1.2009, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Использование хранимой процедуры скорее всего является оптимальным решением - если хочется остаться в рамках SQL и метод доступа ADO. Есть и другое решение - использование врЕменной статической таблицы (разовый пересчёт), - правда при этом сползает оперативность обновления данных.
А вообще поподробнее - какая именно БД, в какой именно структуре лежат данные... на VB6, как я понимаю, пишется клиентская часть?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
oganes
Дата 15.1.2009, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.12.2008

Репутация: нет
Всего: нет



Да БД формируется на VB6 в которой имеются данные (таблицы) о транспорте, направлениях, водителях и всех произведенных рейсах.
В таблице рейсы имеются следующие поля: путевой лист, водитель, водитель2 (когда 2 водителей в рейсе), транспорт, время отправки, дата отправки, время прибытия, дата прибытия, и иная информация, которую можно опустить при решении данной задачи.
Необходимо получить таблицу (запрос), в которой бы расчитывались трудозатраты всех водителей  (общее и ночное время) для расчетов зарплаты: табельный номер (водитель), количество суток, транспорт, время основное, ночное время и т.д. 
На данный момент, воспользовавшись основными функциями времени и дат, все необходимые данные мною получены. Возникла проблема с ночным временем, которая оплачивается по другой ставке. 


Что касается использования временной статической таблицы (разовый пересчёт), то можно поподробнее.

Заранее спасибо!





PM MAIL   Вверх
Akina
Дата 15.1.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(oganes @  15.1.2009,  10:56 Найти цитируемый пост)
Да БД формируется на VB6 

Бред. Вы что, не знаете с чем работаете? Какой формат базы данных?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
oganes
Дата 15.1.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.12.2008

Репутация: нет
Всего: нет



База данных пишется с пощью Access 2007: применяется язык SQL для построения запросов и скрипты на языке VBA. 
PM MAIL   Вверх
Akina
Дата 15.1.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Ну это другой разговор. Делайте ADO вьюху, использующую хранимку, которая вычилит всё необходимое.
Достаточно для первого и последнего дня посчитать часы-минуты ночного времени, а потом тупо приплюсовать по 8 часов за каждый день в серединке.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
oganes
Дата 15.1.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.12.2008

Репутация: нет
Всего: нет



спасибо.
еще один вопрос:
допустим получаем трудозатрат в количестве 130 мин., как выразить часы и минуты следующим образом:  2,10  т.е. 2 часа и 10 мин. если просто поделить на 60, то получим выражение в часах 2,1(6). 
Это можно получить с помощью мат. преобразований. : (130 mod 60)/100+130\60
Как Вы думаете имеется ли такая функция ( допустим при построении запросов)? 
 
PM MAIL   Вверх
Akina
Дата 15.1.2009, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Код

Format(TimeSerial(0, 130, 0), "h,mm")
Но вообще это изврат.

PS. И почитайте наконец Правила Форума. Особенно пункт 10.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
oganes
Дата 15.1.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.12.2008

Репутация: нет
Всего: нет



Во-первых, данные вопросы были взаимосвязаны...
Во - вторых, все равно спасибо Вам!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.