FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9112
Вход
класс Dates для выборов различных периодов времени

Класс для выборов различных периодов допустим за первый квартал, за второе полугодие или декаду.


 
Прислал: aries   Категория: Работа с данными


Вот возникла передо мной задача выбора периода в разных
приложениях. Допустим, выбрать данные за первый квартал,
за второе полугодие или декаду. Каждый раз писать одни и
теже процедурки определения дат периодов для разных
программ мне надоело. И вот родилось решение класс 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 для контейнера. Это для
того, что бы срабатывало одно событие при выборе значение из любого
объекта.
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.99) Вложение [44.24]kb
Дополнения пользователей
класс Dates для выборов различных периодов времени
[+][?]
Андрей А. Берестнев
12.01.04 15:51:54

БАГ:
При вводе периода возможен ввод первой даты больше второй
Андрей А. Берестнев
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
Опишите как правильно считать.
Я исправлю.
Напишите мне на маил.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика