|
![]() |
#1 |
Moderator
|
Я когда-то тоже жалел, что статусы не были пронумерованы с шагом, скажем, 10 и приходиться вводить подстатусы в другом поле. Но вот только вопрос: Допустим вы между Ordered и Arrived завели статусы InTransitForeign, InCustomWarehouse,InTransitDomestic. Что вы будете делать со всей логикой (а ее довольно много), которая местами пляшет не от сравнения статусов по < или >, а работает исключительно по равенству статуса константе ?
Я, в какой-то момент, решил что подстатусы заводить все-таки правильнее, и отсутствие промежуточных статусов - это не design flaw, а осмысленное решение.. |
|
![]() |
#2 |
Administrator
|
Цитата:
Сообщение от fed
![]() Я когда-то тоже жалел, что статусы не были пронумерованы с шагом, скажем, 10 и приходиться вводить подстатусы в другом поле.
... Что вы будете делать со всей логикой (а ее довольно много), которая местами пляшет не от сравнения статусов по < или >, а работает исключительно по равенству статуса константе ? Я, в какой-то момент, решил что подстатусы заводить все-таки правильнее, и отсутствие промежуточных статусов - это не design flaw, а осмысленное решение..
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#3 |
Участник
|
Цитата:
Т.е. в моём представлении, если UseEnumValue = NoYes::Yes, то enum представляет собой не просто множество доступных значений, а именно упорядоченное множество. И в таком случае логично повсеместно использовать операции < >. |
|
![]() |
#4 |
Administrator
|
Цитата:
1. Обозреватель таблиц 2. Обычные формы, где используется енум 3. Отладчик. Нигде не показывается числовое значение енума. Его можно увидеть лишь в свойствах енума аналогично его id. Т.е. конечно программист при желании может достать числовое значение. Но в коде он оперирует именно буквенными обозначениями енума, которые математически сравнивать некорректно на больше или меньше.
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#5 |
Участник
|
Согласен, что сравнивать значение enum'а непосредственно с числовым значением некорректно, но с другим значением этого же enum'а... почему нет? Я бы даже предложил сделать операции инкремента и декремента для таких упорядоченных enum'ов, которые бы переводили бы его в следующее или предыдущее состояние.
P.S.: Cоздавая relation'ы на таблицах с использованием enum приходится использовать их числовые значения. |
|
![]() |
#6 |
Administrator
|
Цитата:
Сообщение от S.Kuskov
![]() Согласен, что сравнивать значение enum'а непосредственно с числовым значением некорректно, но с другим значением этого же enum'а... почему нет? Я бы даже предложил сделать операции инкремента и декремента для таких упорядоченных enum'ов, которые бы переводили бы его в следующее или предыдущее состояние.
И неупорядоченные - в которых порядок неважен - главное - наличие значения (например, кодировка файла при экспорте). Сейчас все имеющиеся Enum-ы неупорядоченные. Упорядочить их можно - сделав класс-обертку, который бы контролировал статусы и их сравнивал. Либо править ядро. Поэтому, на будущее я и предложил - что хорошо было бы сделать однообразно. Неважно как. Цитата:
![]()
__________________
Возможно сделать все. Вопрос времени |
|
|
![]() |
||||
Тема | Ответов | |||
Как выполнять дефрагментирование RecID | 174 | |||
Передача функции в качестве параметра | 20 | |||
Общий вопрос по реализации кап стоя в Axapta | 3 | |||
Вопрос по дизайну отчета | 8 | |||
Вопрос по дизайну | 1 |
|