а если так: пользователь выбирает всего лишь одно целое число - от 0 до (n). По этому числу находим по таблице список атрибутов и передаем их в качестве входных данных той самой одной, универсальной подпрограмме, где собственно и происходит то что нужно. а?