done, having been done也是正确的,不能选has been done. All the work having been done,they felt satisfied. 所有的工作都完成了,他们感到很满意. 强调先后关系. 如果选has been done话,就成了两个句子,无法看出他们的从属关系.如果加上一个并列连词and,就可以这样说: All the work had been done,and they felt satisfied.
having been done是现在分词的现在完成式的被动语态,强调某个动作已经完成.如果不强调时间的先后,就可以用过去分词done,因为all the work不能自己完成,而是被完成,因此用被动语态.由于后面有了主句,They felt satisfied,这个短语相当于从属关系,要用非谓语动词.
all the work having been done在这里是作状语,表示时间关系.如果变成完整的句子话,应该是: All the work had been done,and they felt satisfied. After the work had been done,the felt satisfied. 这里是强调时间关系.