Re: Календарь с выбором произвольных дат | |
---|---|
vnkor Сообщений: 324 Дата регистрации: 04.10.2007 |
В чем именно аллес капут? |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Я бы на месте этих товарищей никогда не стал писать вручную 365 инсертов Написать даже очень банальный генератор, где используя dow и те самые 15-20 "исключений" заполнить сию таблицу - дело пяти минут... Но, как грится, "дурака работа любит" ------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
В том что это одно из самых отвратительных решений, которые только можно было придумать. Хуже него, наверное, только таблица с 367-ю полями, на каждый день года и на сам год. Разжёвывать желания нет, кто этого не понимает (а он и не поймёт хоть ты 5 страниц испиши мелким почерком) - бог с ним, пусть и далее копается в подобном гумусе, считая что "всё в порядке". ------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
SoccerStudio Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Ну, у поддержке у нас дураков не было, думаю, вряд ли они вручную это все делали. ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
Re: Календарь с выбором произвольных дат | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Да хотя бы в том что потом использовать таку таблу в запросах геморно ... ну и вообще - привыкайте к нормальному виду таблиц, почитайте например про нормализацию ... |
Re: Календарь с выбором произвольных дат | |
---|---|
vnkor Сообщений: 324 Дата регистрации: 04.10.2007 |
В системах табельного учета таблица с 31 полями (на каждый день) - это нормально. Или что-то не так?
|
Re: Календарь с выбором произвольных дат | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
- это вы наверное про бухгалтерские "шахматки" ))) А в БД данные так хранить не принято ... для примера реализуйте какой-нить динамический запрос к такой таблице я уж не говорю о масштабируемости такого подхода ну вот даже касаемо темы текущего топика - как в вашей таблице с 31 полями на кажный день реализовать признак праздничный/выходной день? Исправлено 2 раз(а). Последнее : AndyNigmatec, 15.02.17 21:47 |
Re: Календарь с выбором произвольных дат | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Для отображения - нормально. Для хранения, расчётов и выборок - маленький пушной зверёк. Поэтому, табель хранится и показывается по-разному. |
Re: Календарь с выбором произвольных дат | |
---|---|
vnkor Сообщений: 324 Дата регистрации: 04.10.2007 |
График. Для графика с 8-часовым рабочим днем в каждое поле либо проставляется 8 (для предпраздничных дней - 7), либо ничего не проставляется для праздничных/выходных дней. Есть и другие графики. Скажем, для сменного персонала 12-4-8 (день - сутки дома, ночь - двое суток дома) проставляется так: день с 08:00 до 20:00 в поле проставляется 12, ночь с 20:00 до 08:00 в одно поле проставляется 4, а в следующее - 8. При необходимости выполняется перенос рабочих дней. Табель. Табель вообще можно не хранить в отдельной таблице. Он получается расчетным путем на основании графика и таблицы отклонений от графика (неявки). В таблицу неявок проставляется табельный номер работника, 2 даты (с и по) и причина неявки (болезнь, отпуск, ОБС и др.). При печати табеля в каждый день берется информация из графика (8, 12, 4 или "пусто"). Для дней неявок (если таковые были) значения заменяются условными обозначениями "Б", "О", "ОБС" и др. Исправлено 1 раз(а). Последнее : vnkor, 16.02.17 08:59 |
Re: Календарь с выбором произвольных дат | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Как вы описали, делать можно. И многие так и делают. Без обид. Скажем так-это екселевское мышление. pasha_usue верно сказал, когда идет речь о представлении данных юзеру, это все верно, когда же речь идет о работе БД, это неправильно. Вполне допускаю, что у вас все сложилось. И вам уютно. Но это частный случай. В случае нормализации данных, ваш случай легко решается, но легко решаются и те ситуации, которые в вашей структуре, будет очень сложно решить. Думаете просто так, все ушли, от вашей ОЧЕВИДНОЙ структуры. И да, конечно. Юзер все видит, как вы описали. Ему дела нет, как все внутри. ------------------ |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
"Не так" смешивать отображение данных у пользователя (которое вполне себе может быть именно в гриде с 31 колонкой, плюс прятать "лишние" для месяцев где не 31 день) и их хранение в БД. Для начальной несложной задачи учёта рабочих/нерабочих. Напиши: 1) примерный код для определения является ли заданный день нерабочим. 2) примерный код для нахождения n-го рабочего дня после указанного (т.е. задано, скажем 25 декабря, и какая дата будет "через 8 рабочих дней". 3) код для подсчёта числа рабочих дней в заданном интервале (для пущего интереса пусть это будет интервал в 2-3 года). Будет макро на макро с тупыми преобразованиями номера дня в имя поля, и в общем не код а самый настоящий "вторичный продукт". Для простейшей структуры с полями "дата", "признак рабочего/выходного" код будет тривиальный - простой и легко читаемый. Для структуры где хранятся только выходные и переносы, конечно, код уже будет сложнее - но он опять же не потребует ни динамического кода, ни тупых неочевидных условий, и специальных признаков типа "нет такого дня". Соответственно такой код можно без проблем написать и для большой СУБД, не только для фокса. Всё. Других аргументов не требуется. ------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Прям запугали с этими страшилками.
Таблицы по подсчету рабочего времени типа табеля ведут в 31 колонку. Календари - у меня на стенке висит календарь, и где семь колонок, по числу дней в неделе. Таблица в 1+1 столбец - для заполнения второго столбца нужен программный код. Но для работы с датами и без этого имеются необходимые программные средства. 3) Примерный код для подсчёта числа рабочих дней в заданном интервале, для пунктов 1),2) добавить параметры:
|
Re: Календарь с выбором произвольных дат | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Во первых, вообще не ясно, что написано. На стенке 7 колонок - это здорово. А Таблица в 1+1 столбец Ничего не понял Но повторюсь. Так можно. И решаются частные проблемы. Хотя бы приведенным кодом (упаси меня бог от такого) Но вот у вас 5 человек, и у каждого свой график. Надо выдать какой то результирующий отчет. Еще раз. Очевидное, далеко не всегда правильное. ------------------ |
Re: Календарь с выбором произвольных дат | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Я тоже у вас ничего не понял.
Но раз вы знаете "правильное", то продемонстрируйте. |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Этот код как раз и работает со списком выходных дней - никакой таблицы на 31 колонку с отметками выходных в нём нету!
Только вместо таблицы с датами используются строки с ними же, и вместо поиска в таблице идёт поиск элементов в строке. По логике - один в один как я и говорил. Только без собственно таблицы. А сами "табели" - без проблем ведутся "в колонку", а для показа пользователям (можно и для редактирования - хотя не очень хороший код придётся писать для этого) "разворачиваются" в широкую шахматку. ------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
vnkor Сообщений: 324 Дата регистрации: 04.10.2007 |
2) и 3) - а зачем?
|
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вопрос не в том "зачем" (ну банально - для отслеживания сроков выполнения поручений или осуществления доставок), а в том что крайне сложно это сделать.
Приведенный код считает исключительно число рабочих дней с 1-го по последний день месяца (и то, если корректно заполнены "несуществующие даты" типа 30-го февраля). Если нужно определить сколько рабочих дней с 15-го января до 10 мая - за..манаешься писать код. И да, куча обращений к полям по "вычисляемым именам" - о чём я и говорил - признак плохо спроектированной структуры данных. ------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Этот код как раз показывает, что с датами нет никаких "макро на макро" с устрашающими запросами. Непонятно, зачем нужно "разворачиваются", когда и так "развернуто". С каких это пор лишний цикл FOR...ENDFOR стал называться "за..манаешься" - просто в приведенном примере почему-то не используется функция FIELD(i) в соответствии с DAY(<дата>). |
Re: Календарь с выбором произвольных дат | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
ЫЫЫЫЫЫ!
молчу, молчу .... |
Re: Календарь с выбором произвольных дат | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Ведь порою и мычанье нам понятней всяких слов! (с) |
© 2000-2024 Fox Club  |