Календарь с выбором произвольных дат | |
---|---|
ry Автор Сообщений: 2113 Дата регистрации: 24.09.2007 |
Подкинули задачу распечатки большого количества бланков на месяц вперед. Особенность в том, что на каждом бланке должна быть проставлена дата, а даты нужно выбирать из дней заданного месяца (это дни, которые в этом месяце будут рабочими для конкретного отдела, не обязательно будние - график может быть плавающий). Может, подскажете какой-нибудь готовый контрол, с помощью которого в выбранном месяце можно отметить произвольные даты и получить их последовательность в удобном для дальнейшей обработки виде, например, в виде курсора?
|
Re: Календарь с выбором произвольных дат | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Сделать календарь на год, где могут помечать будни/выходные
Сделать форму, они будут помечать Дальше, по интуиции На готовое расчитывать можно, если никуда не спешишь и сам делать не хочещь Штука простая, лучше сделать самому и потом этим гордиться и поместить в Решениях Исправлено 2 раз(а). Последнее : Ydin, 12.02.17 22:08 |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
В решениях как раз хватает самописных календарей - даже если ни в одном из них и нет "мультивыбора", имея исходник можно "допилить". Я бы, пожалуй, взял календарь ctl32_monthcalendar из набора контролов ctl32 - это "виндовый" контрол (показывает именно "месяц целиком" - с возможностями "листать", конечно), и с достаточными возможностями кастомизации. В примере показано как выделять жирным некоторые даты (программно).
Правда как именно "отмечать" даты (т.е. какие "телодвижения" должны быть для этого) я не могу придумать - просто кликать и тем самым менять "отмеченность" - как то не очень... А кликать с зажатыми Ctrl или Shift - что-то боюсь не все юзеры освоят такой метод... ------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
ry Автор Сообщений: 2113 Дата регистрации: 24.09.2007 |
Пока обдумываю, как и на чем реализовать "хотелку" пользователей. На данный момент бланки набраны в Word и печатаются из него, даты на бланках не проставляются, только месяц и год, которые перед печатью меняются вручную через "Найти/Заменить". Но со следующего месяца нужно будет делать бланки не на месяц, а на каждый рабочий день с указанием даты. Можно и дальше в ворде делать, добавив на бланк дату, но менять даты вручную на целый месяц муторно, поэтому хотят как-то это дело упростить.
Задумка такая: с помощью календаря пользователь выбирает месяц и год, а затем отмечает мышкой нужные даты (например, включает чекбокс или просто выделяет нужные дни). Затем создается курсор с нужными датами, а на его основе - курсор для формирования самого отчета. Не факт, что это легко будет сделать в VFP, так что может буду пробовать другие варианты (в том же ворде через слияние, например). Заодно еще один вопрос возник (тоже касательно данной задачи, поэтому другую тему поднимать не буду). Можно ли в VFP программно управлять цветом шрифтов в отчете, чтобы пользователь мог интерактивно задать цвет определенной надписи? Или надо извращаться, открывая и редактируя frx через use? Динамическое форматирование вряд ли подойдет - не понятно, как задать объекту выбранный пользователем цвет. |
Re: Календарь с выбором произвольных дат | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
Ничего сложного в этом нет. Совет: не заморачивайся с репортом, создай Excel-файл-шаблон и делай в нем все что хочешь. ------------------ Без коментариев.. |
Re: Календарь с выбором произвольных дат | |
---|---|
SoccerStudio Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
В одной из наших внутренних систем было сделано следующим образом. Имелась специальная таблица, в которую каждый год силами админов заносились строки по количеству выходных дней в наступившем году - т.е. все даты, которые по факту являются нерабочими (независимо от того, какой это день недели), с учетом переносов и т.п. Интерфейс для ввода данных в эту таблицу отсутствовал - считалось, что админ в состоянии разово написать соответствующий скрипт и прогнать его.
Ну, и соответственно, данные из этой таблицы уже и использовались где только можно для определения "выходной/не выходной". ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
Re: Календарь с выбором произвольных дат | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Так сейчас в ворде делают, а ты хочешь на репорт фокса переделать?
Я бы не стал. Не проще ли из ворда шаблон сделать, и заполнять даты. Когда найдешь ответ на вопрос топика) Ну и цвет, полагаю в ворде поменять можно. Тут на какой нибудь форум VBA (а может там и календари есть?) В решениях есть календарь на курсоре. Сделай там множественный выбор. и потом по нему, легко все сделаешь. ------------------ |
Re: Календарь с выбором произвольных дат | |
---|---|
ry Автор Сообщений: 2113 Дата регистрации: 24.09.2007 |
Уже набросал вполне рабочий вариант на слиянии Word+Excel. В экселе сделал табличку, в которой заполняется месяц, год и проставляются рабочие числа месяца вручную (работы оператора максимум на минуту). Эти данные автоматически через слияние документов подгружаются в Word, а из него уже можно печатать бланки на целый месяц. Количество копий задается по количеству нужных бланков на день. Замену цвета отдельных надписей сделал через вордовские стили, чтобы вручную все не менять (там по несколько однотипных бланков на лист). Вроде ничего сложного для пользователя не должно быть, хотя еще не показывал.
Поначалу, когда огласили задачу, была мысль отдельное простое приложение набросать на VFP. Потом понял, что это будет не проще, чем допилить готовые документы в ворде. |
Re: Календарь с выбором произвольных дат | |
---|---|
sphinx Сообщений: 31180 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
+100500 Ну нет алгоритма, который учтет все выходные/праздники/перенесенные/прочее. Раз в год отметить 15-20 дней - труд невелик. ------------------ "Veni, vidi, vici!"(с) |
Re: Календарь с выбором произвольных дат | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Занимательное занятие - отмечать дополнительные (перенесенные) рабочие дни. Вот такие строки в проге возникли:
Дополнительный Нерабочий День ДДММГГГГ = 2014: 101.8,105.4,905.3, 1206.2, 111.4 && ГГГГ: [Д]ДММ[ГГ][ГГ][.дней] Оказалось не нужным, сб. Доб. Это не "строки фокс", это строки метакода Исправлено 1 раз(а). Последнее : of63, 14.02.17 20:36 |
Re: Календарь с выбором произвольных дат | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
+многа ))) так когда-то и сделал у себя - просто и дешево ... тока соорудил все же простецкий интерфейс чтоб не прямиком в табле прописывать |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Алгоритм не поможет, т.к. переносы утверждаются правительством. У вас в РФ чуть проще, а у нас нужно ещё отмечать рабочие дни перенесённые на выходные (т.е. не всякая Сб/Вс априори "нерабочая"). В принципе некоторые выходные ежегодные, можно было бы их и не дублировать - если бы родное правительство раз в пару лет не меняло календарь Так будет слишком сложно - типа до 2004 года был 7 ноября выходной, потом стал 4-го, лет через 5, глядишь, ещё чего поменяют...
Да, ещё, "рабочий" календарь не ограничивается 5-ти дневкой - для 6-ти дневки переносы чуть по другому делаются... Хотя не все парятся с этим, особенно если на своём предприятии нет 6-ти дневки. ------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
SoccerStudio Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Да у нас такое бывает частенько. Поглядел сейчас в коде - память слегка подвела, не совсем правильно описал, как было реализовано. На самом деле там ребята вообще не парились - в начале года в таблицу закачивалось 365 (ну или 366) записей - для всех дней года. И там уже в полях указывалось, что это за день. Соответственно, реализация функций типа IsWorkingDay() или GetNextWorkingDay() была весьма простой, без всяких там алгоритмов. ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
Re: Календарь с выбором произвольных дат | |
---|---|
vnkor Сообщений: 324 Дата регистрации: 04.10.2007 |
Можно сделать так. Создаем таблицу, в которой 3 поля - год, месяц, номер отдела и 31 поле - дни. В каждый день заносим: рабочий день, выходной, праздничный и т.д. Работаем с этой таблицей.
|
Re: Календарь с выбором произвольных дат | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Не нравятся такие монстры. ИМХО 365 записей - 2 поля. - calendar И таблица с отделами. - Depart Таблица связи CalDep id_calendar,id_Depart,weekend, (может Year?) Надо же пометить только выходные Хотя наверное даже weekend лишнее) И легко одним запросом, получаете список выходных по любому отделу ------------------ Исправлено 1 раз(а). Последнее : Аспид, 15.02.17 09:34 |
Re: Календарь с выбором произвольных дат | |
---|---|
ry Автор Сообщений: 2113 Дата регистрации: 24.09.2007 |
Так кроме официальных переносов бывают переносы рабочих дней, инициированные руководством предприятия. Причем такие переносы на целый год не планируются, иногда за пару дней только уведомляют (не в курсе, как там по законодательству, но вроде большого периода для предварительного уведомления не требуется), в лучшем случае за 1-2 месяца известно. А еще в разных подразделениях может быть разный график работы. Так что даже общая таблица не всегда поможет, либо в ней надо предусмотреть отдельные графики для разных подразделений. |
Re: Календарь с выбором произвольных дат | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
Производственный календарь утверждается приказом в конце года (на следующий), т.е. к 1 января 2017 года должен выйти приказ с утвержденным производственным календарем. У нас на предприятии штук 25 графиков работы и один производственный календарь. В программу "Электронный табель" графики закачиваются из 1С:ЗиУП, затем каждый график корректируется с учетом праздничных и всяких переносов. ------------------ Без коментариев.. |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Да, такое возможно. Но на крупных предприятиях, я полагаю, "за день" не станут это менять. Даже у нас за месяц где-то определяют по какому графику работаем (т.к. часть работ связана с РФ, то бывает по их календарю трудимся - хотя у нас и нет нужды в "программировании" этого безобразия для себя, любимых). Это точно, и даже не в рамках "подразделения" идёт "разнобой". P.S. Вариант с 31-м полем - это аллес капут. Вариант с 365-ю записями на каждый день - ну я бы сказал что ОЧЕНЬ специфичен, и нужны весьма хитрые инструменты его (полу)автоматизированного заполнения (хотя для "вахтовых" или "сутки-через-трое" вариантов графика работы это самый оптимальный способ). Вариант Олега с числом "подряд идущих выходных" я считаю избыточным (заметно более сложным в реализации) - их (выходных) не так уж и много, и кроме новогодних в РФ все они "однодневные" - только переносами "расширяюся"... Для "обычных" графиков "обычной 5-дневки" вполне достаточно таблицы с датой, признаком рабочий/выходной плюс несложная логика проверки - смотрим ВСЕ "выходные", и для суббот/воскресений смотрим не является ли она рабочей. Можно ещё добавить признак "ежегодный выходной", для таких сравнивать лишь месяц/день игнорируя год. У нас такой простой вариант и работает - там сейчас 14 "ежегодных" записей, 6 записей с переносами на 16-й год и 3 на 17-й. P.P.S. Был не прав, в РФ тоже бывают рабочие субботы - т.е. убирать логику проверки и соответствующий флаг нельзя. В 16-м году рабочий день с 22 февраля (понедельник) переносился на 20 февраля (суббота). P.P.P.S. А есть ещё такая мулька как "сокращённый рабочий день" - перед некоторыми праздниками делают ------------------ WBR, Igor Исправлено 2 раз(а). Последнее : Igor Korolyov, 15.02.17 13:52 |
Re: Календарь с выбором произвольных дат | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
------------------ WBR, Igor |
Re: Календарь с выбором произвольных дат | |
---|---|
SoccerStudio Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Я уже выше писал про эти "весьма хитрые инструменты" - раз в год, в соответствии с опубликованным производственным календарем, силами поддержки пишется скрипт, состоящий из 365 команд insert. ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
© 2000-2024 Fox Club  |