Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pcclrocks

[Resolvido] C# aplicação, botão para imprimir uma DataGrid

Recommended Posts

ola a todos.

 

estou a criar uma aplicação windows e estou com dificuldades.

eu tenho uma datagrid, onde faço varias pesquisas, e quero inserir um botão ao lado da datagrid que faça a impressão, de preferencia para formato .pdf, dos dados da datagrid.

é o pormenor que me falta para terminar o meu projecto final da faculdade, e como já só tenho 1 semana para acabar peço mesmo muito que me ajudem.

 

para facilitar a ajuda vou colar aqui a imagem e o código da minha form, de seu nome Familias.cs

o botão que quero usar para imprimir é o button5. Por favor, digam me o que tenho de fazer

 

Imagem Postada

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Ferramenta
{
	public partial class Familias : Form
	{
		public Familias()
		{
			InitializeComponent();
		}

		private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
		{

		}

		private void button1_Click(object sender, EventArgs e)
		{
			try
			{
				DataSet d = FerrBL.FamiliaBL.GetAllFamilias();
				dataGridView1.DataSource = d;
				dataGridView1.DataMember = "Familias";

			}
			catch
			{
				MessageBox.Show("Falhou");
			}
		}

		private void label1_Click(object sender, EventArgs e)
		{

		}

		private void label2_Click(object sender, EventArgs e)
		{

		}

		private void label3_Click(object sender, EventArgs e)
		{

		}

		private void textBox1_TextChanged(object sender, EventArgs e)
		{

		}

		private void textBox2_TextChanged(object sender, EventArgs e)
		{

		}

		private void button2_Click(object sender, EventArgs e)
		{
			try
			{

				int t = FerrBL.FamiliaBL.InsereFamilia(int.Parse(textBox1.Text),textBox2.Text);
				if (t == 1)
					MessageBox.Show("Inserido com sucesso.");
				else MessageBox.Show("ERRO! Código errado ou repetido.");
			}
			catch
			{
				MessageBox.Show("Falhou a inserção!");
			}
		}

		private void button3_Click(object sender, EventArgs e)
		{
			Close();
		}

		private void button4_Click(object sender, EventArgs e)
		{
			try
			{
				int t = FerrBL.FamiliaBL.RemoveFamilia(int.Parse(textBox3.Text));
				if (t == 1)
					MessageBox.Show("Familia removida com sucesso.");
				else
					MessageBox.Show("Erro! Código errado?");

			}
			catch
			{
				MessageBox.Show("Falhou a remoção da familia!");
			}
		}

		private void label4_Click(object sender, EventArgs e)
		{

		}

		private void label5_Click(object sender, EventArgs e)
		{

		}

		private void textBox3_TextChanged(object sender, EventArgs e)
		{

		}

		private void button5_Click(object sender, EventArgs e)
		{

		}
	}
}

um abraço e desde já muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

pcclrocks, seja bem vindo ao Fórum iMasters, conheça nossas regras: Regras do Fórum iMasters

 

Aqui não temos os costumes de resolver os problemas de faculdade dos membros, não estregamos de mão beijada, mas sim mostramos links e explicamos de forma com que force a tentar ir solucionando seus problemas.

 

Se quiser criar um relatório pode utilizar alguma ferramenta como o Crystal, mas se quiser imprimir sus tela aqui tem alguns links que serão uteis:

http://www.codeproject.com/KB/cs/FormPrintPackage.aspx

http://www.syncfusion.com/faq/windowsforms/search/491.aspx

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser criar um relatório pode utilizar alguma ferramenta como o Crystal, mas se quiser imprimir sus tela aqui tem alguns links que serão uteis:

http://www.codeproject.com/KB/cs/FormPrintPackage.aspx

http://www.syncfusion.com/faq/windowsforms/search/491.aspx

ola, antes de mais nada obrigado pelos links.

o primeiro link achei muito complicado e confuso, por isso usei as dicas do segundo link, mas deparei me com um problema.

o que no artigo, no 1 passo se chama "private void buttonPrint_Click(object sender, System.EventArgs e) " interpretei como sendo o meu button5, por isso colei o repspectivo codigo no button5.

o meu problema é o 3º passo.

 

eu já consigo imprimir, mas não como quero.

primeiro, consegui imprimir a form inteira como imagem. depois consegui que imprimisse apenas a a datagrid junto com a margem esquerda, pois declarei os pontos entre os quais queria que a imagem fosse impressa. E se a janela que aparece quando imprimimos algo, aquela que diz "pinting page 1 of 1" aparecer por cima da datagrid aparece na imagem por cima da datagrid...

 

o que eu queria mesmo é que o botão de imprimir, em vez de criar uma imagem, exporta-se os dados como texto, ou como uma tabela.

 

o que fazer?????

 

eu utilizei tambem as dicas do link do passo nº3:

http://msdn.microsoft.com/library/default....eClassTopic.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, é isso mesmo.

dou-te um exemplo daquilo que quero imprimir. No meu programa, os tabalhadores da construção civil requerem as ferramentas no armazem da empresa para as usarem no local de trabalho.

a minha datagrid mostra-me todas as ferramentas requesitadas por determinado funcionario. A partir dai eu quero fazer um documento para imprimir em papel para o funcionario assine para confirmar que recebeu aquelas ferramentas.

já estive a pesquisar os crystal reports, que creio que é o melhor a fazer (penso eu...), mas não encontrei nenhum site que me explique bem como fazer.

imprimir para excell tambem não seria mau, pois podia sempre fazer o documento a partir dai.

 

achas que me podes indicar algum caminho para que eu possa resolver isto?

 

um abraço e muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

por incrivel que pareça, o site recomendado não tem nada especifico sobre imprimir dados de uma datagrid para o excel.

obrigado na mesma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola novamente.

estou a seguir o link que me recomendaram por ultimo. http://www.linhadecodigo.com.br/Dica.aspx?id=1213

 

ja tenho a referencia Interop.Excel, mas não entendo o que o autor quer dizer com " No evento que faz a chamada entre com o seguinte código: "

 

tenho de criar um novo método com este código na class onde pretendo usar este código? é isso?

alguem que me explique por favor.

um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.