Carregamento

Como informar um layout para impressão matricial de roteiro de entrega nos carregamentos?

CARREG.FAQ-121976
Para impressão matricial de um roteiro de entrega nos carregamentos, deve ser configurada as preferências:
Neste layout, pode ser definido o cabeçalho para o roteiro. Segue abaixo um exemplo de cabeçalho:
${str.center("ROTEIRO DE ENTREGA", 80)}
${prt.LF}
${str.center(${str.merge("Carregamento ", ${carreg.getCarregamentoNumero().toText()})}, 80)}
${prt.LF}
${srt.left("Data carregamento:", 19)}${carreg.getDataCarregamento().toText()}
${prt.LF}
#if($carreg.getMotoristaId().isNotNull())
${srt.left("Motorista:", 19)}${carreg.findMotorista().valueOfNomeCompleto()}
${prt.LF}
#end
#if($carreg.getPlacaVeiculo().isNotNull())
${srt.left("Placa veículo:", 19)}${carreg.valueOfPlacaVeiculo()}
${prt.LF}
#end
${prt.LF}

Permite definir qual SQL deve ser utilizado para retornar os itens do carregamento, como pedidos, documentos ou produtos. Segue abaixo um exemplo de script:
select pc.ordem_entrega
, cident.cidade
, endent.bairro
, pcli.pessoa || ' - ' || pcli.nome_completo as nome_cliente
, ped.pedido
, doc.numero as documento
, ped.valor_total
, plano.plano_pagamento
, ped.observacoes
from pedidos_carregamentos pc
join pedidos ped on ped.id = pc.pedido_id
left join planos_pagamentos plano on plano.id = ped.prazo_pagamento_id
join pessoas pcli on pcli.id = ped.cliente_id
join doc_entradas_saidas doc on doc.id = pc.documento_id
left join enderecos endent on endent.id = ped.endereco_id
left join cidades cident on cident.id = endent.cidade_id
where pc.carregamento_id = ?
order by pc.ordem_entrega, cident.cidade, endent.bairro
Neste layout, pode ser definido o itens (pedidos, documentos, etc.) para o roteiro. Segue abaixo um exemplo de itens:
${str.repeat("=", 80)}
${prt.LF}
${str.left("Cidade", 15)}
${str.left("Bairro", 9)}
${str.left("Nome cliente", 19)}
${str.left("Doc", 6)}
${str.left("Pedido", 6)}
${str.right("Valor total", 11)}
${str.left("Obs", 8)}
${prt.LF}
${str.repeat("=", 80)}
${prt.LF}
#foreach($item in $itens_carreg)
${str.left(${item.getString("cidade")}, 15)}
${str.left(${item.getString("bairro")}, 9)}
${str.left(${item.getString("nome_cliente")}, 19)}
${str.left(${item.getString("documento")}, 6)}
${str.left(${item.getString("pedido")}, 6)}
${str.right(${item.getString("valor_total")}, 11)}
${str.left(${item.getString("observacoes")}, 8)}
${prt.LF}
${str.repeat("-", 80)}
${prt.LF}
#end
Neste layout, pode ser definido o rodapé para o roteiro. Segue abaixo um exemplo de rodapé:
${prt.LF}
Emitido pelo Eligo.