-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Календарь для Access 2010 - 2016

Вторник, 18 Октября 2016 г. 11:24 + в цитатник
В последних версиях Access уже есть встроенный всплывающий календарь. Он имеет неприятные ограничения: элемент для выбора дат скрыт и появляется только при получении фокуса полем с датой (лишний клик), если на поле установлена маска ввода - календарь не доступен (это уже совсем плохо). Можно, конечно, рядом с полем поставить кнопку, которая убирает маску, вызывает календарь (ShowDatePicker), затем восстанавливает маску. Но я столкнулся с тем, что на некоторых компах эта схема не срабатывает и встроенный "мелкомягкий" календарь работает не стабильно (возможно, если установлен Secret Net). К тому же функционал встроенного календарика не слишком богатый (месяца и года выбирать не возможно, можно только листать и только + - один месяц, выходные дни не отображаются и т. д.). Дизайн достаточно нейтральный, но подстроить под свой проект нельзя. В итоге решил сделать свой календарь в виде модального всплывающего окна. За основу взял календарь Сергея Гаврилова, выложенный на этом форуме. Ненужные мне функции убрал (настройка прозрачности, запоминание последней выбранной даты, пришлось отказаться от таблицы праздников - обращение к ней вызывает моргание экрана, почему именно быстро определить не удалось, функцию нужно переписывать, а мне она не нужна). Избавился от элемента MarkUp - это некий элемент на заднем плане с внедренным рисунком (желтый круг), который динамически перемещался на выбранную дату и служил фоном. Я решил что лучше использовать цвет фона (квадрат ни чем не хуже круга, и не нужен лишний элемент). Теперь все описывается свойствами FontBold, ForColor и BackColor. Перелистывать календарь теперь можно по месяцу, году и по 10 лет. Если поле даты пустое, календарик открывается на текущей дате. Клик по "Сегодня" устанавливает текущую дату в поле. Отказался от выбора месяца и года в отдельной форме. Календарь теперь имеет три режима - выбор даты, выбор месяца и выбор года. Открывается в режиме выбора даты, по клику по месяцу переходит в режим выбора месяца, по клику по году - в режим выбора года. При выборе года или месяца возвращается в режим выбора даты. Довел до ума управление календарем с клавиатуры. Не представляю кому это будет нужно, но эта функция уже была частично реализована, удалять не стал. Плюс много мелких изменений и оптимизаций. Полностью переработан дизайн. В отличие от встроенного календаря его легко переделать на свой вкус, добавить функции нужные именно вам.
Как и раньше подключить календарь к своему проекту очень просто: импортировать форму и модуль, рядом с полем даты разместить кнопку, которая переводит фокус на поле даты и вызывает календарь. Можно вызывать календарь даблкликом по полю даты (если нужно). Вот и все. Может быть кому-нибудь пригодится.

http://www.sql.ru/forum/1235058/kalendar-dlya-access-2010-2016


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку