powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Табельный учет
25 сообщений из 41, страница 1 из 2
Табельный учет
    #36876931
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует система СКД, которое контролирует доступ сотрудников на предприятие и соответственно время доступа. Так же в программе СКД предусмотрен табельный учет. Но к сожалению система фиксирует лишь время входа сотрудника на предприятие и время выхода, а суммарное время не учитывается. Сотрудников около 4 тыс. поэтому процесс учета суммарного времени необходимо автоматизировать, считать все руками задача для не слабонервных. Опыт программирования полностью отсутствует, так что полагаюсь лишь на вашу помощь.
Пример отчета в приложении. Как я понимаю надо будет вычесть две смежные ячейки и получить время потом следующую пару и т.п., а потом их сложить и получить итоговое время для одного человека и т.д. для всех остальных
...
Рейтинг: 0 / 0
Табельный учет
    #36876969
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artfulbag,

Такие вещи наиболее просто делаются SQL-запросами, так что сначала вопрос - что, исходные данные возможно получить только в экселе или все же есть вариант сделать запрос непосредственно к БД?
...
Рейтинг: 0 / 0
Табельный учет
    #36876994
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proartfulbag,

Такие вещи наиболее просто делаются SQL-запросами, так что сначала вопрос - что, исходные данные возможно получить только в экселе или все же есть вариант сделать запрос непосредственно к БД?

К сожаления точно не могу сказать поступают ли данные об отчетах с этой системы в SQL, более вероятно что да, они лишь конвертируются в xls файл при выгрузке, так как вся база СКД вращается на MSSQL, но к сожаления информации по базе SQL нет, т.е. нет информации где расположены отчеты в каких таблицы, плюс так же специалистов работающих с SQL к сожалению нет, соответственно этот более лучший вариант отпадает. Поэтому рассматривается вариант работы уже с конечным xls файлом.
...
Рейтинг: 0 / 0
Табельный учет
    #36877003
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artfulbag,


какой день в табеле
входвыход31 января 23.45 1 февр7.00 похоже февраль31 янв 20.00 1 февр7.00 похоже январь
...
Рейтинг: 0 / 0
Табельный учет
    #36877026
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artfulbag,

Ну, в принципе, можно и к экселевскому файлу SQL-запрос сделать....

Только есть нюанс, что и как считать, если человек зашел в один день, а вышел в другой?
...
Рейтинг: 0 / 0
Табельный учет
    #36877032
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАartfulbag,


какой день в табеле
входвыход31 января 23.45 1 февр7.00 похоже февраль31 янв 20.00 1 февр7.00 похоже январь

Система в табеле выгружает информацию за сутки, т.е. 31 января 23:45 - 31 января, а 1 февраля 7:00 - это 1 февраля, поэтому скорее всего надо считать вход/выход. То есть если вход был зафиксирован 31 января, а выход 1 февраля, то отнести итоговое время надо к 31 январю. Но как это сделать не представляю.
...
Рейтинг: 0 / 0
Табельный учет
    #36877094
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artfulbagНо как это сделать не представляю.
Предполагается альтруизм или есть бюджет? И сроки какие?
...
Рейтинг: 0 / 0
Табельный учет
    #36877121
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProartfulbagНо как это сделать не представляю.
Предполагается альтруизм или есть бюджет? И сроки какие?

Естественно сроки кратчайшие, до 5-ого октября. Бюджета нет. Мне вменили :) решить вопрос как хочешь. Так что альтруизм, хотите помогайте, хотите нет.
Я в свою очередь ратую за помощь, но конечное решение за вами ;)
...
Рейтинг: 0 / 0
Табельный учет
    #36877132
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо вам придётся сначала начать с нормализации входных данных. а именно, приведения строк к формату DATETIME, а уже потом можете накручивать sql-запросы
...
Рейтинг: 0 / 0
Табельный учет
    #36877154
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необязательно, можно склеить и в запросе, и даже лучше, так как понадобится группировка по дате.
Нормализация тут будет заключаться в группировке по номеру пропуска и дальнейший джойн обратно к первой попавшейся фамилии под этот пропуск....
...
Рейтинг: 0 / 0
Табельный учет
    #36877162
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНеобязательно, можно склеить и в запросе, и даже лучше, так как понадобится группировка по дате.
Нормализация тут будет заключаться в группировке по номеру пропуска и дальнейший джойн обратно к первой попавшейся фамилии под этот пропуск....

на sql - это будет сложно. у него кто во что горазд данные в текством виде пишет с ошибками в названии месяце и тд и тп
...
Рейтинг: 0 / 0
Табельный учет
    #36877169
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneна sql - это будет сложно. у него кто во что горазд данные в текством виде пишет с ошибками в названии месяце и тд и тп

Я что-то не понял. У меня файл нормально открылся, ячейка имеет формат даты, у вас с Пенсионеркой какие-то глюки с файлом?
...
Рейтинг: 0 / 0
Табельный учет
    #36877187
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneна sql - это будет сложно. у него кто во что горазд данные в текством виде пишет с ошибками в названии месяце и тд и тп

Я что-то не понял. У меня файл нормально открылся, ячейка имеет формат даты, у вас с Пенсионеркой какие-то глюки с файлом?


я не открывал, сейчас не на чем открывать. но из примера выше (кусок табличных данных) я вижу , что не взлетит.
...
Рейтинг: 0 / 0
Табельный учет
    #36877192
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneя не открывал, сейчас не на чем открывать. но из примера выше (кусок табличных данных) я вижу , что не взлетит.
не, это сочинения Пенсионерки, файл выглядит абсолютно по-другому.
...
Рейтинг: 0 / 0
Табельный учет
    #36877235
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneя не открывал, сейчас не на чем открывать. но из примера выше (кусок табличных данных) я вижу , что не взлетит.
не, это сочинения Пенсионерки, файл выглядит абсолютно по-другому.

ну тогда простым sql-запросом

DATEDIFF(hour,дата выхода, дата входа)

или в минутах, если надо
...
Рейтинг: 0 / 0
Табельный учет
    #36877481
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneну тогда простым sql-запросом
DATEDIFF(hour,дата выхода, дата входа)
или в минутах, если надо
Там есть две загвоздки

а) входов и выходов в один день может быть несколько
б) может быть вход без выхода и выход без входа (то есть нужен псевдовход в 00:00 и псевдовыход в 23:59:59)
...
Рейтинг: 0 / 0
Табельный учет
    #36877489
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какая разница
пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать
...
Рейтинг: 0 / 0
Табельный учет
    #36877496
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneкакая разница
пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать
я разве с этим спорю?
...
Рейтинг: 0 / 0
Табельный учет
    #36877503
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneкакая разница
пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать

Ты просто не понял, видимо, раз файла не видишь.
Время входа и время выхода там в плоской таблице, то есть они не сопоставлены
...
Рейтинг: 0 / 0
Табельный учет
    #36877508
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneкакая разница
пусть для начала все отрезки получит и их длительность, потом начнёт уже в рамки дней вписывать

Ты просто не понял, видимо, раз файла не видишь.
Время входа и время выхода там в плоской таблице, то есть они не сопоставлены

ясно, ну простор тогда для деятельности у ТС. пусть в базу всё перегонит и начинает анализировать на выборках, что и как и куда
...
Рейтинг: 0 / 0
Табельный учет
    #36877510
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дата СобытияВремя событияФамилияИмяНомер картыОбластьИтого01.10.20107:40ПетровПетр12345ВходСдесь должна быть сумма времени проведенного на заводе; в этом случае она равна 9:05 минут01.10.201012:00ПетровПетр12345Выход01.10.201012:55ПетровПетр12345Вход01.10.201017:10ПетровПетр12345Выход01.10.20107:58ИвановИван123ВходТоже сумма01.10.201017:02ИвановИван123Выход30.09.20107:30СидоровСемен3564ВходТоже сумма времени30.09.201010:10СидоровСемен3564Выход30.09.201011:20СидоровСемен3564Вход30.09.201012:20СидоровСемен3564Выход30.09.201013:05СидоровСемен3564Вход30.09.201014:20СидоровСемен3564Выход30.09.201015:00СидоровСемен3564Вход30.09.201018:00СидоровСемен3564Выход
...
Рейтинг: 0 / 0
Табельный учет
    #36877519
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
групировка по ФИО + вход = одна вьюшка с занесением в промежуточную таблицу времени входа
аналогичная вьюшка по выходу = пишет в ту же промежуточную таблицу время выхода, если день совпал
...
Рейтинг: 0 / 0
Табельный учет
    #36877531
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneгрупировка по ФИО
по номеру карты :)

Konst_One+ вход = одна вьюшка с занесением в промежуточную таблицу времени входа
аналогичная вьюшка по выходу = пишет в ту же промежуточную таблицу время выхода, если день совпал
ну это-то все можно и подзапросами.
Тут вопрос, как лучше сопоставить время входа и выхода (между которыми считать интервал) на чистом SQL, не прибегая к сканированию таблицы....

...можно, к примеру, с помощью временной таблицы и идентити (или автонумерацией в запросе), и связывать с предыдущим, ну тут возникает такой момент, как "сотрудник выпал из окна", то есть два раза вошел, допустим. То есть тут еще должен быть фильтр по таким данным...
...
Рейтинг: 0 / 0
Табельный учет
    #36877541
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneгрупировка по ФИО
по номеру карты :)

Konst_One+ вход = одна вьюшка с занесением в промежуточную таблицу времени входа
аналогичная вьюшка по выходу = пишет в ту же промежуточную таблицу время выхода, если день совпал
ну это-то все можно и подзапросами.
Тут вопрос, как лучше сопоставить время входа и выхода (между которыми считать интервал) на чистом SQL, не прибегая к сканированию таблицы....

...можно, к примеру, с помощью временной таблицы и идентити (или автонумерацией в запросе), и связывать с предыдущим, ну тут возникает такой момент, как "сотрудник выпал из окна", то есть два раза вошел, допустим. То есть тут еще должен быть фильтр по таким данным...


я бы сделал через промежуточную таблицу

PS
по номеру карты конечно группировка, если оно уникально
...
Рейтинг: 0 / 0
Табельный учет
    #36877548
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но, в принципе, можно и экселевский файл просканировать, предварительно отсортировав Юзер-Дата
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Табельный учет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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