Array
(
)

Impressão em CSharp baseado em arquivo de configuração em XML, usando DataSet dinâmico.

Carlos Schildberg
   - 26 ago 2013

Bom dia, srs. Já procurei em vários fórums, video-aulas, posts, nada...
Tenho um sistema que trabalha multi-empresa. Antes de logar, o usuário identifica com qual empresa está trabalhando. Cada empresa tem um modelo de recibo diferente.
No momento de selecionar os recibos pendentes para imprimir, o sistema identifica a empresa com a qual está trabalhando e abre um arquivo XML correspondente, com as informações de configuração de página (tamanho, orientação, recibos por página), QUAIS campos imprimir, ONDE (posição na página - margem superior e esquerda) e COMO (FontType e FontSize).
Beleza, isso já me impede de criar um ReportViewer em tempo de projeto. Até porque, dos registros pendentes para impressão, o usuário ainda pode selecionar apenas os X primeiros registros do DataGridView que exibo. Pra piorar, um dos campos (NumRecibo, int) precisa ser impresso como código de barras padrão EAN13 (acho que tem que ser um tipo PictureBox - no xml, eu especifico posição, largura e altura).
Tentei usar uma classe pra gerar PDF, sem sucesso (Reports.dll) mas ela não tem muita documentação...todo mundo usa o mesmo exemplo mas ninguém explica...
Pelo jeito, eu teria que ter um DataSet dinâmico (atualizado em tempo de execução) para funcionar no ReportViewer. Também não consegui implementar...
Mas como também não sei quais campos imprimir e nem sua posição, acho que teria que criar todo o .RDLC em tempo de execução.
Alguém tem alguma ideia?
Não manjo muito de CrystalReports pra saber se teria uma solução mais adequada usando ele ao invés de ReportViewer...
PS: Para este caso, não necessito necessariamente de um Preview da impressão, mas até que seria bom...
Preciso do caminho das pedras ou até mesmo uma aula direcionada, ...
Obrigado.
kajurock@live.com