Так, я совсем не понял, что значит не привязываться на логическом уровне?
Не правильно делать связку блок - выходная таблица. Должна быть некая модель выходных данных никак не завязанная на блоки, а описывающая конечные сущности, а все ведомости, сводные таблицы и пр. должны получаться из нее. Так-же модель должна и заполняться данными.
Откуда берется инфа о металле? Где все это хранится? Как пользователь изменяет что-то?
Тут есть варианты, лично у меня все данные (включая те самые блоки) хранятся в СУБД (если конкретно то MSSQL). Вся инфа заносится (редактируется) через соотв. GUI + естественным образом получается автоматически - те-же полезные остатки, после "утверждения" складом автоматом используются в последующих раскроях при выполнении всех условий "подходимости" + этикети + документы на списание и пр. - все автоматом вытекает из "предыдущих" фаз. по мере прохождения технологического. процесса - в теории можно сразу расписать все от и до, но в реальности это возможно далеко не ко всем данным - так как есть брак материала, брак при производстве, человеческий фактор и пр. Естественно необходимо учесть в модели (а затем и реализовать в GUI) "ручную" правку и учет этих данных.