24.05.2017, 00:11 | #1 |
Участник
|
lookup for week
Клиент хочет добавить в отчет выбор периода в виде "дата начала" и "дата конца". При этом выбор должен осуществляться понедельно. Пользователь может при этом как дату начала выбрать только первый день недели, а как дату конца только последний день недели. Первый день недели определяется как поле First day of the week из Date dimensions.
Вопрос, как реализовать такой выбор наилучшим способом. У меня что-то мысль не идет дальше чем сделать InMemory таблицу, заполнить ее данными типа год, месяц, № недели, дата начала, дата конца и использовать ее в лукапе. Есть ли более адекватное решение? |
|
24.05.2017, 00:53 | #2 |
Участник
|
Цитата:
Если речь идет о выбрать из выпадающего диалога с датами, то это форма SysDateLookUp Посмотрите на метод drawMonth... Может придумаете способ нарисовать по-другому. Но пользователь все равно может набить дату руками с клавиатуры ) или с устройства рукописного ввода. или с экранной клавиатуры. или при помощи программы CharacterMap. или скопирует через буфер обмена из какой-нибудь другой программы. наконец, просто воспользуется утилитой заполнения, которая встроена в Аксапту. Поэтому по любому нужно переопределить validate/validateField. Также не забывайте, что в поле даты можно ввести D. Ядро Аксапты превратит этот символ в "сегодняшний день", когда контрол потеряет фокус. Последний раз редактировалось mazzy; 24.05.2017 в 00:57. |
|
24.05.2017, 06:09 | #3 |
Участник
|
Делал как-то подекадный выбор, выглядит так:
|
|
24.05.2017, 07:32 | #4 |
Участник
|
Может быть не очень юзерфрендли но вполне рабочий вариант. Позволять тыкать в любую дату но в modifiedField преобразовывать эту дату в нужную. Т.е. пользователь тыкнул в середину недели а в поле автоматом записалась нужная граница, начало или конец недели в зависимости от поля.
|
|
|
За это сообщение автора поблагодарили: EVGL (1). |
24.05.2017, 09:54 | #5 |
Banned
|
Цитата:
Сообщение от S.Kuskov
Может быть не очень юзерфрендли но вполне рабочий вариант. Позволять тыкать в любую дату но в modifiedField преобразовывать эту дату в нужную. Т.е. пользователь тыкнул в середину недели а в поле автоматом записалась нужная граница, начало или конец недели в зависимости от поля.
А отображать можно номером недели через edit-метод. Перепрограммировать lookup - это вариант, когда трудозатраты и средства явно не соответствуют цели. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
|
|