powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PFC, PB9 - что не так при использовании u_calendar
19 сообщений из 19, страница 1 из 1
PFC, PB9 - что не так при использовании u_calendar
    #32961393
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Мировой Разум!! Вот - попытался мигрировать в наш проект с базовыми объектами PFC от PB5 объект календарик из PFC от PB9. Все вроде хорошо, кроме одного...
Что есть: DW FreeForm с двумя полями дат с маской dd/mm/yyyy hh24:mi. При отсутствии фокуса на них все отображается отлично - например, дата 12/03/2005 00:00. Однако, как только в любое из полей попадает фокус - маска становится dd/mm/yyyy (без элементов времени)!! Редактировать время не дает... Зараза... Так и должно быть?? Или я что-то упустил?

может у кого есть идеи?? Чего копать в этом направлении?

ПС: после того, как контрол теряет фокус внутри DW - маска обратно не возвращается, если дату поменяли. В противном случае - маска остается прежней...
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961449
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ скромно умолчал, на какой версии эхотага это происходит, и не забыли ли проставить для этого поля маску как для просмотра, так и для редактирования ;).
____________________________________
- Гарфилд, мышь!
- Спасибо, я сыт!
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961478
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем даже не умолчал - на 9... В теме сообщения - PB9.
Маску только что поставил и на Edit и на Format, причем даже галку Use Format выставил. Не помогло :(

ПС: интересный глюк! Когда становишься на одно из этих полей и жмешь на клавиатуре кнопку вниз, выдается подозрительное сообщение: 'Item "" doesn't pass validation test' после чего итем таки становится пустым...
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961484
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один интересный момент: поставил маску dd/mm/yyyy hh:mm. Однако когда контрол получает фокус (конкретная колонка) маска в поле меняется на dd.mm.yyyy (разделитель - точка вместо '/')

Может где в баггере посоветуете поставить точку останова и последить??
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961578
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот - иллюстрация живая...
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961644
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неплохо бы писать еще и номер билда - ибо мне помнится, что в PB9 они фиксили что-то, связанное с масками, после PB9.0 GA. Но мне почему-то кажется, что дело не в этом. Возможно, календарь рассчитан только на ввод даты, а время выкидывает нафиг...
____________________________________
- Гарфилд, мышь!
- Спасибо, я сыт!
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961658
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB 9.0.2 7509
Dim2000Возможно, календарь рассчитан только на ввод даты, а время выкидывает нафиг...

И тут Вы соввершенно правы! Я расковырял сырцы PFC... Они хотя бы просто заложились на тип Date (вместо DateTime!!!) и полносью игнорируют маску поля при установке значения выбранного времени (функция of_setDate() в pfc_u_calendar). Я уже даже придумал что нужно расковырять, чтоб обойти такой подход... НО!!! Загвоздка в одном... Чтобы пользователю все-же давали редактировать время вручную!!! То есть чтоб маска не сбрасывалась из dd/mm/yyyy hh24:mi в dd/mm/yyyy...
Так что теперь вопрос в одном - как бы это обойти?? Что самое печальное, как-то все хитро получается... Я в рантайме пытался получить GetFormat()... Но... Везде, где я догадался поставить breakpoint - везде ТОЛЬКО правильный формат!! (т.е. dd/mm/yyyy hh24:mi)
Подскажите, где все же можно было бы увидеть корявость с изменением маски???
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961673
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при использовании календаря PFC column становится типа ddlb, смотреть pfc_u_calendar.of_register(string as_dwcolumn, integer ai_style) и соответственно формат отображения берётся из системных Windows'овских Regional Options ...
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961702
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexis glinskiпри использовании календаря PFC column становится типа ddlb, смотреть pfc_u_calendar.of_register(string as_dwcolumn, integer ai_style) и соответственно формат отображения берётся из системных Windows'овских Regional Options ...

Спасибо большое за комментарий!! Там не догадался посмотреть... А в каком месте выбирается/устанавливается отображаемое значение для ddlb??
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961764
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexis glinskiпри использовании календаря PFC column становится типа ddlb, смотреть pfc_u_calendar.of_register(string as_dwcolumn, integer ai_style) и соответственно формат отображения берётся из системных Windows'овских Regional Options ...Во-первых - преобразования в ddlb при желании можно избежать
iuo_calendar.of_Register("xxx",iuo_calendar.none)
и кажется по умолчанию именно так и происходит.

Во-вторых - установка выбранного значения происходит при помощи dw.SetText(...), а текст форматируется в сответствии с of_setdateformat(...)
Изначально формат - пустая строка. какой будет формат в результате String(your_date,'') ?
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961813
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейВо-первых - преобразования в ddlb при желании можно избежать
iuo_calendar.of_Register("xxx",iuo_calendar.none)
и кажется по умолчанию именно так и происходит.

Но почему-то при таком раскладе не появляется выпадающий календарик... Зачем же мне его инициализить чтоб календарика не было???
Очень интересно чтоб была и маска ввода и выпадающий календарик...

ЗоринАндрей
Во-вторых - установка выбранного значения происходит при помощи dw.SetText(...), а текст форматируется в сответствии с of_setdateformat(...)
Изначально формат - пустая строка. какой будет формат в результате String(your_date,'') ?
Да, так и есть... Спасибо!!
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32961890
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoОчень интересно чтоб была и маска ввода и выпадающий календарик...

Нарисуй кнопку и в buttonclicked напиши
if dwo.name = 'моякнопка' then
li_rc = this.SetColumn('мойColumn')
if li_rc = 1 then this.Event pfc_DDCalendar( )
end if

При известной ловкости рук и после медитации над dw.Modify('create ... ')
можно сделать кнопку динамически создаваемой.
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32962962
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) Наверное имеет смысл расширить PFC еще одной опцией - STORE например... Наверное так и попробую сделать! Спасибо за комментарии и советы!!

ПС: Если у кого есть идеи по более малокровному пути - все еще имеет смысл ;)
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32963841
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я скачал где-то hepek_calendar -- там два режима: со временем и без. приделал его к datawindow, обработав события pbm_dwndropdown и doubleclicked
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32963865
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
..причём скачал чуть ли не с www.hepek.com, раздел "free objects"
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32964408
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там есть одна ГРОМАДНАЯ проблема: полное отсутствие маски :( Как и в ПФСшном объекте. А если клиент не хочет пользовацца календарем? Ему быстрее набрать??? Воооот... В этом и состоит трабла...

ПС: То есть я тоже скачал этот объект :) нашел тож в гугле
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32965753
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нормально всё с маской: ставишь на поле editmask, а календарь вешаешь на событие doubleclicked
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32966663
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergeyнормально всё с маской: ставишь на поле editmask, а календарь вешаешь на событие doubleclicked

Это в ПФСшном объекте?? А как там можно назначить евент, на котором календарь висит-то???
У меня объект, наследованный от u_dw, в конструкторе - такой код:
of_SetDropDownCalendar(true)
iuo_calendar.of_SetDateFormat("dd/mm/yyyy hh:mm")
iuo_calendar.of_Register('dbegin', iuo_calendar.NONE)
iuo_calendar.of_Register('dend', iuo_calendar.NONE)

на баблклик никакой календарик не появляется :(
...
Рейтинг: 0 / 0
PFC, PB9 - что не так при использовании u_calendar
    #32966725
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergeyнормально всё с маской: ставишь на поле editmask, а календарь вешаешь на событие doubleclicked

УРРРРРРАААААААА!!!!!!!!!! Не надо ничего переписывать!!!
всего-лишь дописываем немножко u_dw:
of_doubleclicked(...):

...
//по doubleClick вызываем календарик в случае необходимости
if isValid(iuo_calendar) then
if iuo_calendar.of_isRegistered(adwo_obj.name) then
post event dropdown()
end if
end if
...


Инициализация в любом u_dw.construcor:
of_SetDropDownCalendar(true)
iuo_calendar.of_Register(iuo_calendar.NONE) //Инициализим все поля с датой
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PFC, PB9 - что не так при использовании u_calendar
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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