Rodrigo,
Boa tarde
Quanto a impressão, eu fiz aqui para o fast a impressão de eventos. Porém meu componente de impressão é totalmente modificado devido a particularidades de clientes, do contrario eu postaria minhas units para serem atualizadas.
Já o preenchimento, eu fiz da seguinte forma.
Tenho uma aba com uma Grid contendo os "principais" campos passíveis de alteração, como Nome de rua, Bairro, etc. Nesta grid mostro o nome do grupo alterado, campo alterado e sequencia. Em frente coloco os descritivos dos campos de forma mais clara para o usuário e o valor que consta no XML.
Ex.:
Grupo Alterado | Campo Alterado | Sequencia | Nome do Campo | Valor Original
enderReme | xCpl | 0 | Remetente Complemento End. | CX.POSTAL 63
Assim o usuário pode selecionar esses registros e alterar.
Para não correr o risco de precisar alterar algo que não está nessa Grid, tenho uma segunda aba com uma TreeView com toda a estrutura do XML, para que o usuário visualize.
Caso precise alterar algo que não consta na a primeira Grid, ele pode visualizar a informação nessa segunda aba, ver o nome das Tags e incluir manualmente esta correção.