я, признаться, не понимаю Вашей проблемы. на мой взгляд она не стоит выеденного яйца.
Во-первых, почитайте ответ ichy
Во-вторых, возьмите колоду карт и проимитируйте "работу с бланками строгой отчетности" при игре в покер: сколько карт тебе заменить?
В-третьих, прочитайте следующее:
- должны быть определены все возможные состояния бланка
- должны быть определены все возможные варианты переходов из одного состояния в другое
- карточка каждого отдельного бланка (введем такой условный термин) в любой момент времени должна включать текущее состояние бланка
- для удобства пользователя желательно ввести новую абстрактную сущность - пакет бланков, который предназначен только лишь для пакетного же присвоения нового состояния. после присвоения нового состояния этим бланком пакет больше не нужен - получается своего рода транзакция.
- разумеется, система должна уметь определять существует в некотором состоянии определенный диапазон бланков и, соответственно, формировать отчеты "каких и сколько бланков в каких состояниях имеется в наличии"
P.S. кстати, на эту тему есть смешной анекдот..