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….

















