Вот возникла передо мной задача выбора периода в разных
приложениях. Допустим, выбрать данные за первый квартал,
за второе полугодие или декаду. Каждый раз писать одни и
теже процедурки определения дат периодов для разных
программ мне надоело. И вот родилось решение класс Dates.
Теперь как все это работает.
Помещаете контейнер oControl на форму и все радуйтесь жизни.
Т.е. получаете нужные вам даты.
В объекте oControl есть два основных свойства свойства, к примеру
THISFORM.oControl.ValueBeg - это начало периода (даты)
THISFORM.oControl.ValueEnd - это окончание периода (даты)
Формат этих двух свойств DateTime.
Третье свойство объекта oControl nValue.
Оно принимает значение от 1-7. Это означает:
1 - День
2 - Декада
3 - Месяц
4 - Квартал
5 - Полугодие
6 - Год
7 - Период
nValue нужно для того чтобы по умолчанию определять,
что вы хотите получить. К примеру вам надо что бы по
умолчанию ну становилось не День, а на месяц.
Для этого надо (в дизайнере НЕЛЬЗЯ присваивать новое значение)
допустим в Init формы прописать такую строчку
THISFORM.oControl.nValue=3 (можно от 1 до 7)
Получите месяц.
В проекте есть формочка Form1 запустите и увидите как это работает!!!
Удачи!
04.08.2005г.
Переделал немного внутреннюю работу.
Сделал событие Valid для контейнера. Это для
того, что бы срабатывало одно событие при выборе значение из любого
объекта.
БАГ:
При вводе периода возможен ввод первой даты больше второй
Андрей А. Берестнев
12.01.04 15:53:08
Ключевым периодом у многих является неделя
Aries
12.01.04 17:11:42
По первому уже в работе, исправлю!
По второму предложи как это должно выглядеть, немогу себе пока это представить
Каратаев
14.01.04 08:14:34
На моем компе все проходит на Ура и в проекте и в откомпилированном ехе. Но когда ставлю прогу на
комп пользователя, то при вызове формы с классом открывается окно выбора файлов с предложением
указать OCX - файл. На 3 компа ставил - везде одно и тоже. Чего им не хватает? На всех win98SE (на
моем тоже). При отказе от выбора файла выдает ошибку OLE - класс не зарегистрирован. Какие OCX
используются? чего надо регистрить? На своей машине я ведь ничего не регистрировал специально для
этого класса...
Жаль... класс неплохой, мне понравился.
Aries
14.01.04 09:47:30
Приношу свои извинения за неполное дополнение. Совсем вылетело с головы. Я использую для
календарей ActiveX MS Date and Time. Он содержится в файле MSCOMCT2.OCX
Этот файл надо скопировать в каталог где скомпилированная exe-ка или в каталог WINNT\System32.
Если не используется exe-ка тогда надо зарегистрировать ActiveX
RegSVR32.exe MSCOMCT2.OCX
*****************************
Дело в том, что у тебя при установке FOX этот ActiveX автоматически устанавливается и
регистрируеться сам. Намашинах пользователей тебе надо будет самому установить его как указано выше.
Sergo_M
02.10.06 15:45:40
В прилагаемой форме при выборе ДЕКАДЫ и даты начала периода класс выбирает десятидневный период,
начиная с даты начала, я всегда думал, что в месяце 3 декады (1 декада месяца - с 01 по 10, вторая
с 11 по 20 и т.д.), по логике при выборе даты программа должна указать, к какой декаде отностся
эта дата.
Aries
02.10.06 16:19:24
Sergo_M
Опишите как правильно считать.
Я исправлю.
Напишите мне на маил.