Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2010, 05:37
eloy_ameneiros
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Exportar Resultado de DataGrid a Excel con Crystal Reports

Buenas tardes,

necesito exportar el resultado de una consulta que almaceno en un datagrid a excel mediante crystal reports.

El código que tengo hasta ahora es el siguiente:

namespace Consulta_Campañas
{
public partial class Consulta_campañas : Form
{
//Creamos las cadenas de conexión con la BD y el puente con el SQL
SqlConnection conexion1 = new SqlConnection("data source = beta; initial catalog = cco_db; Integrated Security = True");
SqlConnection conexion2 = new SqlConnection("data source = beta; initial catalog = CATEGORIZADOR_CAMPAÑAS; Integrated Security = True");
SqlDataAdapter da;

//Creamos la consulta que nos mustra las tablas en el combo de campañas
public string conCampañas = @"SELECT TABLE_NAME AS CAMPAÑAS
FROM INFORMATION_SCHEMA.TABLES
WHERE (TABLE_NAME LIKE 'sccw_%')
AND (TABLE_NAME <> 'sccw_scr_table1')
AND (TABLE_NAME <> 'sccw_prueba_table')
AND (TABLE_NAME <> 'sccw_emp034_table')
ORDER BY TABLE_NAME";

//Creamos la consulta que nos muestra las categorías en el combo de categorías
public string conCategorias = @"SELECT categoria
FROM Categoria";

public Consulta_campañas()
{
//Al iniciar el programa ocultamos el calendario y los combos
InitializeComponent();
cal_fecha.Visible = false;
cb_campaña.Visible = false;
cb_categoria.Visible = false;
}

//Si está marcada la casilla de campaña mostramos el combo cargado con las campañas de la BD
private void rb_campaña_CheckedChanged(object sender, EventArgs e)
{
cal_fecha.Visible = false;
cb_categoria.Visible = false;
cb_campaña.Visible = true;
DataSet dt1 = new DataSet();
da = new SqlDataAdapter(conCampañas, conexion1);
da.Fill(dt1);
cb_campaña.DataSource = dt1.Tables[0];
cb_campaña.DisplayMember = "CAMPAÑAS";
}

//Si está marcada la casilla de categoría mostramos el combo cargado con las categorías de la BD
private void rb_categoria_CheckedChanged(object sender, EventArgs e)
{
cal_fecha.Visible = false;
cb_campaña.Visible = false;
cb_categoria.Visible = true;
DataSet dt2 = new DataSet();
da = new SqlDataAdapter(conCategorias,conexion2);
da.Fill(dt2);
cb_categoria.DataSource = dt2.Tables[0];
cb_categoria.DisplayMember = "categoria";
}

//Si está marcada la casilla de fecha mostramos el calendario
private void rb_fecha_CheckedChanged(object sender, EventArgs e)
{
cal_fecha.Visible = true;
cb_categoria.Visible = false;
cb_campaña.Visible = false;

}

/*Cuando pinchamos en el botón consultar, vemos la casilla que está marcada y en base a eso
mostramos la consulta adecuada*/
private void bt_consultar_Click(object sender, EventArgs e)
{
string @campaña;
string @categoria;
DateTime @fecha;

if (rb_campaña.Checked == true)
{
try
{
@campaña = cb_campaña.Text;
DataTable dtcamp = new DataTable();
string conCamp = @"SELECT campaña, categoria, fecha, turno
FROM Camp_Categ
INNER JOIN Campañas
ON Camp_Categ.id_campaña = Campañas.id_campaña
INNER JOIN Categoria
ON Camp_Categ.id_categoria = Categoria.id_categoria
WHERE campaña = " + "'" + @campaña + "'" +
" ORDER BY fecha, turno";
da = new SqlDataAdapter(conCamp, conexion2);
da.Fill(dtcamp);
dg_consultas.DataSource = dtcamp;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}
else
{
if (rb_categoria.Checked == true)
{
try
{
@categoria = cb_categoria.Text;
DataTable dtcateg = new DataTable();
string conCateg = @"SELECT campaña, categoria, fecha, turno
FROM Camp_Categ
INNER JOIN Campañas
ON Camp_Categ.id_campaña = Campañas.id_campaña
INNER JOIN Categoria
ON Camp_Categ.id_categoria = Categoria.id_categoria
WHERE categoria = " + "'" + @categoria + "'" +
" ORDER BY fecha, turno";
da = new SqlDataAdapter(conCateg, conexion2);
da.Fill(dtcateg);
dg_consultas.DataSource = dtcateg;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
if(rb_fecha.Checked == true)
{
try
{
@fecha = cal_fecha.SelectionStart.Date;
DataTable dtfecha = new DataTable();
string conFecha = @"SELECT campaña, categoria, fecha, turno
FROM Camp_Categ
INNER JOIN Campañas
ON Camp_Categ.id_campaña = Campañas.id_campaña
INNER JOIN Categoria
ON Camp_Categ.id_categoria = Categoria.id_categoria
WHERE fecha = " + "'" + @fecha + "'" +
" ORDER BY camapaña, categoria, turno";
da = new SqlDataAdapter(conFecha, conexion2);
da.Fill(dtfecha);
dg_consultas.DataSource = dtfecha;
cal_fecha.Visible = false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
}



}
}