Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

19 Октябрь 2019, 20:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 3 »   Вниз
  Печать  
Автор Тема: Календарь  (Прочитано 10469 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Стартовое сообщение: 24 Февраль 2014, 11:28 »

Есть необходимость создать и пользоваться календарем.
Таблицу я создала (см. скрин)
Теперь пытаюсь, например подсчитать количество рабочих дней в месяце (d1+d2+...+d31) и что-то не соображу как это сделать SELECT'ом  Да уж...

Преобразовать пустые поля в 1 через NVL, а потом?

[вложение удалено Администратором]
Записан

Яна (in real)
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #1: 24 Февраль 2014, 16:50 »

Нашла.

SELECT "num_month", LENGTH(REPLACE(
(
nvl("d1",'1')|| nvl("d2",'1')||nvl("d3",'1')||nvl("d4",'1')||nvl("d5",'1')||nvl("d6",'1')||nvl("d7",'1')||nvl("d8",'1')||
nvl("d9",'1')||nvl("d10",'1')||nvl("d11",'1')||nvl("d12",'1')||nvl("d13",'1')||nvl("d14",'1')||nvl("d15",'1')||nvl("d16",'1')||nvl("d17",'1')||nvl("d18",'1')||
nvl("d19",'1')||nvl("d20",'1')||nvl("d21",'1')||nvl("d22",'1')||nvl( "d23",'1')||nvl("d24",'1')||nvl("d25",'1')||nvl("d26",'1')||nvl("d27",'1')||nvl("d28",'1')||
nvl("d29",'1')||nvl("d30",'1')||nvl("d31",'1')
),'X','')) as FRASE
FROM "raspisanie"."public"."calendar" AS "calendar" WHERE "num_month" = 1;


[вложение удалено Администратором]
Записан

Яна (in real)
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #2: 24 Февраль 2014, 17:50 »

Яна, это точно ты? Или какие-то тролли твой аккаунт взломали?
Та adi_den2013, которую я знаю не первый день, не стала бы такое делать... Ну, разве что, поздравили мужчин и решили потом немного поработать...

Что и как ты собираешься дальше делать с этой таблицей?
Каким образом собираешься избежать 31 июня или, скажем, три раза и один раз отметить проскочить 29 февраля?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #3: 25 Февраль 2014, 08:17 »

Владислав, увы, это точно я.

Кстати с прошедшим праздником тебя и всех мужчин-пользователей этого форума  Улыбка!

Насколько мне приходилось сталкиваться с календарями, созданными в DBF-файлах, их пользователи в начале года предварительно редактировали, приводя в соответствие с графиком работы предприятия.

Мое представление сейчас такое:

Х-выходной, праздничный
U-не существует в природе

остальное-рабочие дни

[вложение удалено Администратором]
« Последнее редактирование: 25 Февраль 2014, 08:38 от adi_den2013 » Записан

Яна (in real)
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #4: 25 Февраль 2014, 10:07 »

Спасибо за поздравления!

Ну, хорошо... Забили мы все эти дни в таблицу - что дальше? На какие вопросы должна отвечать эта таблица? "Сколько дней было обычных, а сколько считать работой в выходные дни для сотрудника отработавшего непрерывно, ежедневно с 14/02/2014 по 25/02/2014"? Или какие-то другие?
Помимо "совсем выходных" и "полностью рабочих" дней случаются, например, "сокращенные предпраздничные дни". Если мы сотрудника считаем просто по дням - не вопрос, а если у кого-то почасовка, то уже проблема...
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #5: 25 Февраль 2014, 10:56 »

Здесь вопрос в другом (не деньги/зарплата, не учет рабочего времени). Планируется использование данного календаря для составления расписания занятий по вузу. Входных данных много (учебные планы/часы, специальности, количество студентов в группе, наличие мультимедиа в аудиториях и куча еще всего). Но "печка", от которой все должно отталкиваться, я считаю, это календарь.

Мне кажется, что для таких целей знать сколько рабочих дней в семестре и какие именно вполне достаточно.

Если знаешь, как обустроить его лучше, скажи. С благодарностью приму.
« Последнее редактирование: 25 Февраль 2014, 11:12 от adi_den2013 » Записан

Яна (in real)
CyberDaemon
Форумчанин
***
Offline Offline

Сообщений: 156


« Ответ #6: 25 Февраль 2014, 11:58 »

Здесь вопрос в другом (не деньги/зарплата, не учет рабочего времени). Планируется использование данного календаря для составления расписания занятий по вузу. Входных данных много (учебные планы/часы, специальности, количество студентов в группе, наличие мультимедиа в аудиториях и куча еще всего). Но "печка", от которой все должно отталкиваться, я считаю, это календарь.

Мне кажется, что для таких целей знать сколько рабочих дней в семестре и какие именно вполне достаточно.

Если знаешь, как обустроить его лучше, скажи. С благодарностью приму.
А что значит U-несуществует в природе. Это как понимать?
Записан
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #7: 25 Февраль 2014, 12:08 »

30,31 февраля
31 апреля,июня,сентября и ноября
Записан

Яна (in real)
CyberDaemon
Форумчанин
***
Offline Offline

Сообщений: 156


« Ответ #8: 25 Февраль 2014, 12:25 »

30,31 февраля
31 апреля,июня,сентября и ноября
А таких таблиц сколько буде? Для каждой группы, или для каждого преподователя по таблице?
Записан
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #9: 25 Февраль 2014, 12:41 »

Календарь один для всех. Расписание по специальностям.
Записан

Яна (in real)
CyberDaemon
Форумчанин
***
Offline Offline

Сообщений: 156


« Ответ #10: 25 Февраль 2014, 12:49 »

Календарь один для всех. Расписание по специальностям.
А как Вы в одном калентре собираетесь разместить расписание по нескольким специальностям(и сколько таких специальностей)?
Записан
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #11: 25 Февраль 2014, 12:52 »

Календарь справочная информация.

Расписание будет в другой таблице. Вернее - таблицах. Много специальностей. Начну с одной.
Записан

Яна (in real)
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #12: 25 Февраль 2014, 13:07 »

Точного однозначного ответа на вопрос "как обустроить его лучше" - нет.
Но я бы развалил все данные по календарю на две таблицы констант - исключения из рабочих дней (праздники) и исключения из выходных дней (например, переносы рабочих дней на выходные). Для самих дат, для каждой из них, использовал бы проверки:
1. стандартной функцией вычислял день недели (суббота-воскресенье/другие дни)
2. если входит в (exist in) исключения по рабочим дням - выходной (Х)
3. если входит в исключения из выходных дней - рабочий ('' или NULL)

Для получения всего календаря использовал бы представление (муторно, но возможно) или хранимую процедуру с параметрами "дата с" и "дата по", из которых можно было бы получать "плоскую" таблицу день за днём:
Код:
Дата    День недели Рабочий день
01.01.2014 3 TRUE
02.01.2014 4 FALSE
03.01.2014 5 FALSE
04.01.2014 6 TRUE
05.01.2014 7 TRUE
06.01.2014 1 FALSE
07.01.2014 2 FALSE
08.01.2014 3 FALSE
09.01.2014 4 FALSE
10.01.2014 5 FALSE
11.01.2014 6 TRUE
12.01.2014 7 TRUE
13.01.2014 1 FALSE
14.01.2014 2 FALSE
15.01.2014 3 FALSE
16.01.2014 4 FALSE
17.01.2014 5 FALSE
18.01.2014 6 TRUE
19.01.2014 7 TRUE
20.01.2014 1 FALSE... и т.д.
И уже к данным из этого набора вязал бы расписания и прочее...
Кстати, обрати внимание - вместо Х U и пустой ячейки лучше использовать более подходящий по смыслу задачи тип BOOLEAN

Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #13: 25 Февраль 2014, 13:17 »

Сложновато. Нужно подумать...

Не представляю реализацию такого варианта в форме для редактирования пользователем. Допустим кончился год и......? Либо я напортачила с праздниками потому, что правительство решило лишить нас, например, 8-марта.
Записан

Яна (in real)
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #14: 25 Февраль 2014, 13:24 »

Если свободный, поделитесь ссылкой. Буду благодарна.
Записан

Яна (in real)
Страниц: 1 2 3 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!