|
Как организовать ввод значений шкалы пользователем?
|
|||
---|---|---|---|
#18+
Кейс такой – есть услуга, которая оказывается клиенту. В зависимости от, допустим, количества «попугаев», потребленных клиентом, стоимость может плясать. Шкала эта нелинейная и произвольная, причем для каждого клиента может быть своя, то есть некоего справочника нет. Например 1. от 0 до 100 попугаев – 100 рублей 2. от 101 до 120 попугаев – 105 рублей 3. от 121 до 100000 попугаев – 106 рублей 4. от 100001 до бесконечности попугаев – 1000 рублей Вопрос – как лучше это реализовать, с учетом того, что предполагается, что шкалу будет задавать пользователь, а возможности платформы в плане интерфейса ограничены редактированием таблиц и примитивными формами, куда грид вставить нельзя. Мне видится такое решение – для каждого договора с клиентом (в т.ч. и для уже действующего договора) пользователь может зайти в массив (таблицу) «Шкала стоимости» в котором он может добавлять, удалять и редактировать записи с графами «От», «До» и «Стоимость». В «От» и «До», соответственно, указывать диапазон «попугаев», в «Стоимости» - значение. При этом в варианте «А» никакой логики на добавление, редактирование и удаление записей нет. Можно заводить пересекающиеся диапазоны, диапазоны с дырками и т.п. Но для того, чтобы эта шкала заработала (а, значит, у шкалы есть статус) – нужно выполнить отдельную операцию, которая будет проверять корректность заполнения массива – чтобы не было дырок в диапазоне, чтобы записи не пересекались по диапазонам и т.п. В случае ошибок шкала не заработает, а без работающей шкалы не работает договор. В варианте «Б» логика уже при добавлении, редактировании и удалении записей. Мне кажется, что этот вариант с одной стороны понятнее для пользователя, интуитивнее, а с другой сложнее в реализации – слишком много нужно проверять и я пока даже не представляю как. Например нужно разбить один диапазон в середине на два – в варианте А я исправлю запись (например уменьшу третью запись исправляю как «от 121 до 500 – 106 рублей» ) и добавлю еще одну («от 501 до 100000 – 107 рублей»), чтобы закрыть дырку, а в варианте Б мне проверки при сохранении записи так не дадут сделать и придется удалять все диапазоны и заводить по нарастающей. Плюс варианте в том, что не нужно отдельной операции на корректность шкалы и не нужен статус шкалы, который пользователю малопонятен. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2012, 11:52 |
|
Как организовать ввод значений шкалы пользователем?
|
|||
---|---|---|---|
#18+
1. до 100 попугаев – 100 рублей 2. до 120 попугаев – 105 рублей 3. до 100000 попугаев – 106 рублей 4. до бесконечности попугаев – 1000 рублей ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 11:14 |
|
Как организовать ввод значений шкалы пользователем?
|
|||
---|---|---|---|
#18+
Вопрос был про то, где логику прикрутить - сразу при задании шкалы или потом, отдельно? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 12:19 |
|
Как организовать ввод значений шкалы пользователем?
|
|||
---|---|---|---|
#18+
474, тебе предлагают коспромиссный нормализованный вариант, который и пользователю понятен, и особой сложности в реализации не представляет. Мало того - та можно просить пользователя добавлять диапазоны и хранить, а отображать - как в твоём варианте №1 . Если он тебе не нравится, то: 1. мог бы сказать, чем не нравится или 2. мог бы сказать, "я не понял прелести предложенного варианта" или 2. если ты точно мучаешься в выборе исключительно между твоими двумя решениями, то решить за тебя, что важнее "удобство пользователя" или "величина затрат на реализацию решения" - увы, нереально. Хотя... Так и быть, я определился: твой второй вариант лучше (помучавшись с реализацией, ты склонишься к варианту _мод, ну или в глубине души согласишься, что зря парился, и нужно было послушать _мод) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 12:40 |
|
Как организовать ввод значений шкалы пользователем?
|
|||
---|---|---|---|
#18+
АнатоЛой, ok, я не понял прелести решения _мод ) Сначала не понял, теперь уже понял. Только вот пользователям надо будет привыкнуть, ведь отображать то-то как у меня можно, а вводить? Нужно будет только два значение указывать - конец диапазона и значение. А начало, получается, само вычислится, что для пользователя может быть неочевидно. Думаю надо еще подумать как сделать понятнее. _мод, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 13:30 |
|
|
start [/forum/topic.php?fid=33&tid=1547916]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 418ms |
0 / 0 |