Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Календарь / 21 сообщений из 21, страница 1 из 1
24.10.2012, 15:29
    #38011574
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
При открытии формы с календарем, календарю присваивается текущая дата.
(Рис 1)
...
Рейтинг: 0 / 0
24.10.2012, 15:33
    #38011584
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
При изменении месяца теряется значение дня (Рис 2). Мне день не важен, только месяц и год. Но когда нажимаешь кнопку «ОК», он ругается что не присвоено число.
Как сделать так что бы, когда меняешь месяц, день присваивался как текущее число? Но и была возможность изменить число!
...
Рейтинг: 0 / 0
25.10.2012, 10:53
    #38012531
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Aleks_Aleks,
Как вы считаете почему на ваш вопрос нет ответов?
...
Рейтинг: 0 / 0
25.10.2012, 11:28
    #38012599
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
DagAleks_Aleks,
Как вы считаете почему на ваш вопрос нет ответов?Можно, я попробую ответить?
Посмотрите последние 10-15 постов. Сколько раз было: "а, все, сам разобрался (накосячил, забыл, etc)".
Такое впечатление, что в последнее время публикация на форуме активизирует у ТС умственный процесс.
Или я не прав?
...
Рейтинг: 0 / 0
25.10.2012, 11:39
    #38012628
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Jonny540,

Святая правда!!!
И даже больше, вы натолкнули меня на ТС умственный процесс на кой я вообще здесь это пишу если пользы "0"!?
...
Рейтинг: 0 / 0
25.10.2012, 11:47
    #38012644
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Aleks_Aleks,

Дык ты подумай сначала! А потом пиши, если уж совсем глухо...
Свойства и методы календаря смотрел? Ни на что не натолкнули?
...
Рейтинг: 0 / 0
25.10.2012, 12:11
    #38012715
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Jonny540,

В календаре на рисунке (class _datetime ) есть метод SelCange которое выполняется когда изменяется значение календаря (код):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
*** ActiveX Control Event ***
LPARAMETERS startdate, enddate, cancel

nYear = YEAR(startdate)
nDay = DAY(startdate)
nMonth = MONTH(startdate)
dValue = DATE(m.nYear, m.nMonth, m.nDay)
cColumn = THIS.date_column
IF !EMPTY(m.cColumn)
	REPLACE &cColumn WITH m.dValue
ENDIF
IF TYPE("THISFORM")="O"
	THISFORM.Refresh
ENDIF


А в маем календаре «Календарь 12.0» такого метода нет.
Так вот я и спрашиваю как воспроизвести данную процедуру в маем календаре?
...
Рейтинг: 0 / 0
25.10.2012, 12:20
    #38012745
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Aleks_AleksJonny540,

В календаре на рисунке (class _datetime ) есть метод SelCange которое выполняется когда изменяется значение календаря (код):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
*** ActiveX Control Event ***
LPARAMETERS startdate, enddate, cancel

nYear = YEAR(startdate)
nDay = DAY(startdate)
nMonth = MONTH(startdate)
dValue = DATE(m.nYear, m.nMonth, m.nDay)
cColumn = THIS.date_column
IF !EMPTY(m.cColumn)
	REPLACE &cColumn WITH m.dValue
ENDIF
IF TYPE("THISFORM")="O"
	THISFORM.Refresh
ENDIF


А в маем календаре «Календарь 12.0» такого метода нет.
Так вот я и спрашиваю как воспроизвести данную процедуру в маем календаре?

А что есть в твоем календаре?
...
Рейтинг: 0 / 0
25.10.2012, 12:29
    #38012775
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
IgorNG,

INIT()
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL lcDated, lcDatem,lcDatey

lcDated = DAY(DATE())
lcDatem = MONTH(DATE())
lcDatey = YEAR(DATE())

ThisForm.Bcolecalendar.Day = lcDated
ThisForm.Bcolecalendar.month = lcDatem 
ThisForm.Bcolecalendar.year = lcDatey


“OK!”
Код: sql
1.
2.
3.
4.
5.
lcDated_end = ThisForm.Bcolecalendar.Day
lcDatem_end = ThisForm.Bcolecalendar.month 
lcDatey_end = ThisForm.Bcolecalendar.year

ThisForm.lcdate=ALLTRIM(STR(lcDated_end))+"."+ALLTRIM(STR(lcDatem_end))+"."+ALLTRIM(STR(lcDatey_end))


Unload()
Код: sql
1.
RETURN ThisForm.lcdate
...
Рейтинг: 0 / 0
25.10.2012, 13:20
    #38012926
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Aleks_Aleks,

Ну и заноси в переменную день от текущей даты в кнопке ОК, естесственно, с проверкой существует ли такой день в выбранном месяце :)
...
Рейтинг: 0 / 0
25.10.2012, 14:10
    #38013066
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
IgorNG,

Код: sql
1.
2.
3.
4.
5.
6.
lcDated_end = 1
*lcDated_end = ThisForm.Bcolecalendar.Day
lcDatem_end = ThisForm.Bcolecalendar.month 
lcDatey_end = ThisForm.Bcolecalendar.year

MESSAGEBOX(ALLTRIM(STR(lcDated_end))+"."+ALLTRIM(STR(lcDatem_end))+"."+ALLTRIM(STR(lcDatey_end)))
...
Рейтинг: 0 / 0
25.10.2012, 14:11
    #38013067
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Когда число задано то сообщение
...
Рейтинг: 0 / 0
25.10.2012, 14:12
    #38013069
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Когда число не задано то сообщение
...
Рейтинг: 0 / 0
25.10.2012, 14:41
    #38013138
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Aleks_Aleks,

Так ведь ты в календарь передаешь текущую дату, а возвращаешь выбранную дату.
Так ты определись:
1. Если нужно возвращать дату - заставляй выбирать день.
2. Если нужен только месяц и год - так возвращай меся и год
...
Рейтинг: 0 / 0
25.10.2012, 15:00
    #38013178
Календарь
Aleks_Aleks,
при смене месяца действуй так же, как при инициализации. И будет тебе счастье...
...
Рейтинг: 0 / 0
25.10.2012, 15:05
    #38013194
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Станислав С...кийAleks_Aleks,
при смене месяца действуй так же, как при инициализации. И будет тебе счастье...
А что за процедура отвечает за смену месяца?
...
Рейтинг: 0 / 0
25.10.2012, 15:10
    #38013210
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Aleks_Aleks,

Попробуй посмотреть NewMonth, NextMonth, PrevMonth
...
Рейтинг: 0 / 0
25.10.2012, 15:10
    #38013211
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
IgorNGAleks_Aleks,
2. Если нужен только месяц и год - так возвращай меся и год
На практике было показано, что если число не задано, то месяц и год не возвращается!
Наверное это и есть правильное решение.
IgorNGAleks_Aleks,
1. Если нужно возвращать дату - заставляй выбирать день.
...
Рейтинг: 0 / 0
25.10.2012, 15:13
    #38013224
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
IgorNGAleks_Aleks,
Попробуй посмотреть NewMonth, NextMonth, PrevMonth
Пробовал, ни чего.

Ладно всем спс, и на этом.
...
Рейтинг: 0 / 0
26.10.2012, 10:30
    #38014159
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Для того что бы число передавалось при изменении месяца или года, нужно прописать следующие действия:

В форме INIT()
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
PUBLIC gc_dat, mcdat 

gc_dat = DAY(DATE())
mcdat = DAY(DATE())

lcDated = DAY(DATE())
lcDatem = MONTH(DATE())
lcDatey = YEAR(DATE())

ThisForm.Olecontrol1.Day = lcDated
ThisForm.Olecontrol1.month = lcDatem 
ThisForm.Olecontrol1.year = lcDatey


На объекте Olecontrol1 процедура Click
Код: sql
1.
gc_dat = This.day


На объекте Olecontrol1 процедура GotFocus
Код: sql
1.
This.Day = gc_dat


На объекте Olecontrol1 процедура NewMonth
Код: sql
1.
2.
This.day = 1
This.SetFocus 


На объекте Olecontrol1 процедура NewYear
Код: sql
1.
2.
This.day = 1
This.SetFocus


По неизвестным причинам, календарю нельзя присваивать, одно и тоже значение числа, два раза подряд. Поэтому изменение числа будет происходить с использованием двух процедур попеременно, GotFocus и NewMonth (NewYear).
Календарю присваивается по умолчанию текущая дата и при смене месяца она остается, а если кликнуть другую дату то при смене месяца будет активна та дата которую кликнули.
...
Рейтинг: 0 / 0
26.10.2012, 11:39
    #38014272
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Календарь
Aleks_AleksJonny540у ТС умственный процесс на кой я вообще здесь это пишу если пользы "0"!?Вот видишь! Все-таки работают мозги :) Есть еще Microsoft Date and Time Picker Control 6.0 (SP4) (if you want).
Да, еще: ThisForm.Olecontrol1. Object .Value вернет значение в формате DateTime.
На форуме уже давно было, сейчас просто не помню ссылку.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Календарь / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]