No se exactamente si el problema es que no te imprime la banda o se te queda atascada la impresion.
Por lo que veo, posiblemente se te quede atascado en esta ultima parte del codigo :
//Pero si el origen a cambiado vuelvo al registro anterior
if origen<>dmdatos.msqAlbaranes['origen'] then
begin
//Esto lo hago para que la banda de grupo se imprima al cambiar
//el origen,
y esto no funciona, la banda en cuestion no se imprime
dmdatos.msqAlbaranes.Prior;
end;
Deberias controlar el EOF, es decir :
if origen<>dmdatos.msqAlbaranes['origen'] and
Not DmDatos.msqAlbaranes.EOF then
begin
//Esto lo hago para que la banda de grupo se imprima al cambiar
//el origen,
y esto no funciona, la banda en cuestion no se imprime
dmdatos.msqAlbaranes.Prior;
end;
Prueba a ver
