Есть use case: завод, партии деталей. Проводится измерение партии до обработки напильником, затем после. Результаты сохраняются, естественно, в БД.
Задача — определить, сколько выпил слесарь
Для этого нужно выбрать из БД две записи, одна из которых соответствует состоянию "до", другая — состоянию "после".
Я вижу два основных пути решения:
1. Хранить информацию о том, когда была измерена партия, в самой базе. Этот путь был реализован и показал свою геморройность. Причина — оператор должен ввести эту информацию, по сути, до начала измерения, но при этом он может не знать (да и не обязан), откуда взялась партия деталей и куда она будет направлена.
2. Реализовать команду "сравнить партии", при выполнении которой оператор должен выбрать две произвольные записи, после чего программа сравнит соответствующие им партии. Вот тут возникает вопрос — какой интерфейс для этого подходит? Все варианты, которые приходят в голову, чем-то не нравятся:
— визард не нравится, потому что он будет состоять из двух визуально практически идентичных страниц ("выберите партию до" и "выберите партию после").
— диалог, на котором указаны обе партии и есть две кнопки "выбрать..." (каждая из которых открывает дополнительный диалог), не нравится потому, что заставляет оператора делать лишние движения.
— Всякие разновидности checklistbox не нравятся, потому что позволяют отметить любое количество элементов, а требуется отметить ровно два.
А что скажут уважаемые специалисты?