Работа с датами в avenue

0 голосов
спросил 26 Апр, 10 от dravig (1,240 баллов) в категории Программные продукты Esri
Народ, такой вопрос: есть пользовательский диалог, в котором нужно ввести дату с помощью нескольких комбобоксов. В одном вводишь год, в другом месяц - и т п... Можно ли сделать так чтобы при генерировании списков для комбокосов программа записывала туда количество значений согласно ранее выбранным параметрам... Поясню: чтобы в комбобоксе "день" были доступны только нужные числа:  30, 31, 29, 28 в зависимости от выбранного года и месяца.  

Можно, конечно, все это прописать стандартными функциями с кучей if и else и переборов месяцев и високосных годов, но может есть более простой способ?


P.S. Еще такой вопрос: в комбобоксе по умолчанию выпадает список размером в одну запись, как его расширить чтобы облегчить скроллинг?

5 Ответы

0 голосов
ответил 26 Апр, 10 от TDenis (42,620 баллов)
Можно, конечно, все это прописать стандартными функциями с кучей if и else и переборов месяцев и високосных годов, но может есть более простой способ?

Там, я гляжу, есть метод GetMonthOfYear. Можно установить первое число для выбранного месяца выбранного года, прибавить 30 дней - и проверить, возвращает ли этот метод тот же самый месяц. Если нет, то попробовать прибавить 29 дней image
Так и определить их количество.
И, конечно, убедиться, что всё корректно работает для високосных годов, а то кто его знает.
Если получится - отпишитесь, интересно сработает ли)

P.S. Еще такой вопрос: в комбобоксе по умолчанию выпадает список размером в одну запись, как его расширить чтобы облегчить скроллинг?

Да прям в диалог дизайнере увеличить высоту, т.е. схватить за соответствующий квадратик и потянуть вниз. При запуске увидите, что выпадающий список стал длиннее.
    
0 голосов
ответил 28 Апр, 10 от dravig (1,240 баллов)
Че-то я никак не могу разобраться с форматом даты... все время возвращается nil если написать (year+month+day).asDate.   Как синтаксически правильно составить дату в виде, навпример, (год.месяц.день) если источники данных в формате string ?


0 голосов
ответил 28 Апр, 10 от Lord (3,920 баллов)
В справке раздел
dates (Working with dates and time)
там все форматы строки
можно установить пользовательский какой хочешь
0 голосов
ответил 28 Апр, 10 от dravig (1,240 баллов)
О, спасибо, все работает... и даже для високосных годов (правда, все равно пришлось делать систему из условия с 4-мя ветвлениями), но все равно - лучше, чем перебирать списки...

0 голосов
ответил 28 Апр, 10 от dravig (1,240 баллов)
да... только не получается обновить список после перебора... по умолчанию 31 день - и при выборе других месяцев все равно остается 31... хотя в тестовой программе метод работает...
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...