Como criar um relatório CrystalReport sem banco de dados
A um tempo tive problemas com as conexões do crystal report. Quando passava a aplicação para outros computadores tinha que trocar também a conexão, porem muitas vezes esquecia de fazer esse processo e ficava horas e horas para descobrir onde estava o problema. Por isso optei por usar os crystal report sem conexão directa a base de dados.
O que vamos ver é pequeno exemplo de como criar um relatório de Lista de Países com o Crystal Reports a partir de uma lista de objectos sem ter uma banco de dados.
Passo 1
Certifique-se de ter Crystal Report para o Visual Studio instalado.Passo 2
Cria um novo projecto WinForm. Neste exemplo criei um projecto com nome TesteCrystalSemDB. A seguir, cria uma classe País como o seguinte:public class Pais
{
public Pais(int codigo,string nome)
{
this.Codigo = codigo;
this.NomePais = nome;
}
public int Codigo { get; set; }
public string NomePais { get; set; }
}
Passo 3
Adicione um novo formulário com o nome FormPaises, e adicione o seguinte método:
private List<Pais> GetListaPaises()
{
List<Pais> Paises = new List<Pais>
{
new Pais(1, "Angola"),
new Pais(2, "Brasil"),
new Pais(3, "Portugal"),
new Pais(6, "Moçambique"),
new Pais(7, "Cabo-Verde"),
new Pais(8, "Namibia")
};
return Paises;
}
Passo 4
Adicione um DataSet. Nomeia-o por DataSet1 como na figura abaixo:Dentro da DataSet adicione uma DataTable com o nome de Pais, e cria as colunas com os mesmos nome dos atributos da classe Pais. ( Esse é o maior segredo ;). Confirma na figura acima.
Passo 5
Adicione ao projecto um Crystal Report e nomeio-o por ReportPaises2, clique em Add.
Aparecerá uma caixa como a que se segui, as opeções criar um nome documento de crystal report, escolha a segunda, Relatório em Branco e clica OK.
Passo 6
Restamos definir a fonte de dados ou DataSet no nosso Crystal Report. Para isso, vai em Fiel Explorer dê um clique direito na Database Fiel para selecionar o opção Database Expert conforme a figura abaixo mostra:
No assistente, expande Dados de Projecto > Conjuntos de Dados ADO.NET > TesteCrystalSemDB.DataSet1e seleccione a DataTable Pais.
Passo 7
Volte para o formulário FormPaises, vai à ToolBox, escolha o CrystalReportViewer, coloque-o ao formulário e nomeia-o por crystalReportViewer1.
Selecione este novo componente e (1) no seu canto superior direito dê um clique para ver a lista de propriedades, (2) clique em "Escolher um Crystal Report, (3) Selecione o relatorio que criamos "ReportPaises2", (4) clique em OK.
private void FormPaises_Load(object sender, EventArgs e)
{
Reports.ReportPaises2 cr = new Reports.ReportPaises2();
crystalReportViewer1.ReportSource = cr;
cr.SetDataSource(GetListaPaises());
}
Pronto, o relatório está feito, basta pressionar F5 para testar.
0 comentários:
Enviar um comentário