Este tutorial vem da necessidade que eu tive em imprimir o conteúdo de uma DataGridView num programa que desenvolvi. Após muitas horas, alguns dias, muitos exemplos (que não funcionaram e muito complicados), encontrei uma solução que funciona muito bem, pelo menos resolveu o meu “problema”. Como penso que devemos partilhar conhecimentos, decidi elaborar este tutorial.
Objectivo: Apresentar dados numa DataGridView obtidos através de dados gravados numa base de dados. 1º – Crie um novo projecto
2º – Adicione um botão (botão imprimir) e uma dataGridView
Nota: é necessário indicar que vai usar uma base de dados OleDb (Access), para isso tem de adicionar o seguinte código que está em destaque.
3º – No Form Load vamos introduzir o código que irá trazer a informação dos dados na base de dados.
Podem verificar que foi introduzido o “try” e “catch”. Para quem não está familiarizado com este código, uma pequena explicação que posso dar é que serve para verificar se existe algum erro na ligação (try), e se encontrar, mostra esse erro numa MessageBox (catch). Nesta altura já podem verificar que ao iniciar o programa, já aparecem dados na DataGridView.
4º – No botão imprimir irá introduzir o seguinte código
Como podem verificar, existe uma parte do código sublinhada, essa parte refere-se a uma classe que vamos criar mais à frente. Certamente este código seria somente introduzido quando essa mesma classe estivesse criada, mas assim evitamos andar a “saltar” de form para form. 5º – Agora vamos criar um novo Form que será das “opções de impressão”.
Este novo Form vai permitir que possamos escolher quais os campos que queremos imprimir, como também escrever qual o título da impressão. É necessário inserir os seguintes Items:
– 2 Botões – 1 CheckedListBox – 1 TextBox
6º – Os botões “OK” e “Cancel” servem exclusivamente para abrir “caixas de diálogo”
O restante código da form “printOptions” é o seguinte:
7º – Agora vamos criar uma nova classe e atribuir o nome printDGV.
Como o código da classe é extenso, colocarei o mesmo aqui, e os comentários estão no próprio código.
Continua na próxima página….
(Continuação do código da classe)
Como devem reparar o código é bastante extenso, por isso disponibilizo-o para download, e assim não têm de escrever estas linhas todas de código.
Agora que o código está todo escrito. Vamos experimentar o programa.
Ao iniciar a “Form” irão aparecer os dados que estão na base de dados.
Ao clicar no botão imprimir irá abrir o Form das opções de impressão.
Neste “Form” pode seleccionar as colunas da tabela da base de dados que quer imprimir, e escrever o título para imprimir.
Ao clicar em “OK” poderá visualizar o “print preview” .
E aqui está, acabou de imprimir o conteúdo da base de dados que pretende. Claro que poderá efectuar inúmeras alterações ao código e aos resultados que quer visualizar, mas isso já só depende de si.
O código da classe é extenso, mas se copiar a classe, o restante código é bastante simples.
Espero que tenham gostado…
Fonte: Afrasiab Cheraghi (code project)