Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con CRYSTALREPORT o DATAGRID

Estas en el tema de Ayuda con CRYSTALREPORT o DATAGRID en el foro de .NET en Foros del Web. Buenas noches por favor necesito ayuda en lo siguiente, tengo un dataGrid el cual cuando lo mando a imprmir solamente me imprime la informacion que ...
  #1 (permalink)  
Antiguo 26/04/2008, 18:55
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 0
Ayuda con CRYSTALREPORT o DATAGRID

Buenas noches por favor necesito ayuda en lo siguiente, tengo un dataGrid el cual cuando lo mando a imprmir solamente me imprime la informacion que esta visible por pantalla del datagrid, y no toda la informacion que el contiene. Estoy imprimiendo de esta manera:

private void button1_Click(System.Object sender, System.EventArgs e)
{
printDocument1.Print();
}

private void printDocument1_PrintPage_1(object sender,System.Drawing.Printing.PrintPageEventArgs e)
{
PaintEventArgs myPaintArgs = new PaintEventArgs(e.Graphics, new Rectangle(new Point(0, 0), this.Size));
this.InvokePaint(dgVisitante, myPaintArgs);
}

Como no he logrado imprimir toda la data del datagrid busque la manera de hacerlo por CrystalReport a traves de este codigo:

private void crystalReportViewer1_Load(object sender, System.EventArgs e)
{
SqlConnection con= CLASS_PRINCIPAL.dameconexion();

SqlCommand cmd = new SqlCommand();
SqlDataAdapter dta = new SqlDataAdapter();
DataSet dsVisitantes2=new DataSet();

dsVisitantes2=SqlHelper.ExecuteDataset(con,Command Type.Text,string.Format(ClsSQL.PorCedula,Form_REPO RTE_CEDULA.cedula,Form_REPORTE_CEDULA.fechad,Form_ REPORTE_CEDULA.fechah));

CrystalReport1 reporte = new CrystalReport1();
reporte.SetDataSource(dsVisitantes2.Tables[0]);
crystalReportViewer1.ReportSource = reporte;

CLASS_PRINCIPAL.cierraconexion(con);
}
NOTA: este mismo codigo funciona perfectamente para mostrar en el data grid, pero aqui en el crystal report me arroja esta EXCEPTION:

Excepción no controlada del tipo 'CrystalDecisions.CrystalReports.Engine.InvalidArg umentException' en system.windows.forms.dll

Información adicional: Error en archivo C:UsersRaulAppDataLocalTemp emp_2d57ff7d-efae-48fa-922f-21e37c7ecc68.rpt:
Número de tabla no válido

Entonces por favor si alguien me puede ayudar (explicando de forma detallada y sencilla ya que soy nuevo en esto) con cualquiera de las 2 opciones, ya que lo que necesito es imprimir la data completa del DATASET, bien sea por un datagrid o por crystalreport. Gracias.
  #2 (permalink)  
Antiguo 26/04/2008, 22:53
Avatar de mirandator  
Fecha de Ingreso: abril-2008
Ubicación: Ecatepec
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Re: Ayuda con CRYSTALREPORT o DATAGRID

Bueno, antes que nada buenas noches, segun veo el resultado de la excepcion se debe a que no le estas pasando los argumentos requeridos a la conexion del reporte de crystal, si te interesa tengo una clase que puede servirte, mandame un email a [email protected] y te la envio con su debida explicacion
  #3 (permalink)  
Antiguo 27/04/2008, 14:18
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Re: Ayuda con CRYSTALREPORT o DATAGRID

que tal mira, yo tenia el mismo problema no sabia como imprimir un datagrid de manera completa, pero encontre la solucion es la siguiente
1.- pasa a http://rustemsoft.com/ y descarga el datagridcolumnsview o datagridcolumns, dependiendo si tienes un datagrid o un datagridview
2.- ahi vienen ejemplos y trae su dll que tiene que incorporar a tu proyecto como referencia a su ves importarlo
3.- en mi caso simplifique el codigo de los ejemplos de la siguiente forma, en la form donde esta el datagrid puse un boton de imprimir en donde le puse el siguiente codigo:

Private PrintGrid As DataGridViewPrint
Private Sub btn_print1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_print1.Click

PrintGrid = New DataGridViewPrint(PrintDocument1, nombre_del_datagrid, "1")
PrintDocument1.DefaultPageSettings.Landscape = True
PrintDocument1.Print()
End Sub

y en el printdocument puse el siguiente codigo:

Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.HasMorePages = PrintGrid.Print(e.Graphics)
e.Graphics.DrawImage(Image.FromFile("c:\logo2.jpg" ), 900, 0)
e.HasMorePages = False
End Sub

y ya con eso yo puedo imrpimir todo lo que esta en el datagridview aun sean mcuhas hojas! pues bueno espero alla sido de tu ayuda y esto a mi me sirvio!
  #4 (permalink)  
Antiguo 29/04/2008, 14:05
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Ayuda con CRYSTALREPORT o DATAGRID

Pero aún no puedo, el codigo que me enviaste creo que esta en VB.NET y yo estoy trabajando en C#.NET2003, el problema esta en que solamente me esta imprimiendo el encabezado de la tabla, osea el nombre de las columnas mas no los datos de la tabla. Ya baje el dll de la pagina, lo importe y lo agregue a mi libreria en el form de esta manera:

using System.Drawing.Printing;
using System.Data.SqlClient;
using System.Drawing.Text;
using RustemSoft.DataGridColumns;

DesPues agregue tu codigo a mi codigo quedando de esta manera

private DataGridPrint PrintGrid;

private void button1_Click(System.Object sender, System.EventArgs e)
{
PrintGrid = new DataGridPrint(printDocument1, dgVisitante, true); // AQUI COLOQUE TRUE EN VEZ DE
"1" YA QUE ME DA UN ERROR DE QUE NO PUEDO CONVERTIR DE STRING A BOOL Y SI LE QUITO LAS COMILLAS ME DICE DE INT A BOOL

printDocument1.DefaultPageSettings.Landscape = false;
printDocument1.Print();
}

private void printDocument1_PrintPage_1(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.HasMorePages = PrintGrid.Print(e.Graphics);
// NO COLOQUE AQUI LO DE LA RUTA DE LA IMAGEN POR QUE ME ARROJA UNA EXCEPCION DE QUE NO LA CONSIGUE
e.HasMorePages = false;
}

Por favor si me pueden aydar con esto te lo agradeceria mucho, ya que de verdad no consigo solucion a mi problema. Gracias!!!
  #5 (permalink)  
Antiguo 29/04/2008, 18:05
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
De acuerdo Re: Ayuda con CRYSTALREPORT o DATAGRID

pues mira a mi me paso lo mismo, me dio un problema por que solo imprimia el encabezado de cada columna pero sin pasarme los valores, segun los ejemplos que descargue de rutemsoft ellos ahi crean los grid y los llenan, y yo lo que hacia era crearlos de manera visual no por codigo, entonces tuve que hacer todo un cambio en mi codigo, llenando el grid en codigo y creandolo en codigo para de esta forma llenarlo, la verdad esa fue una opcion desesperada que hice pero si recuerdo que me dio resultado, ignoro por que y fue una gran sorpresa para mi, segun yo no tendria porq ue afectar si en la fomr me muestra los datos, ya al mandar a imprimir mando esos datos pero pues por alguna razon ocurrio, ignoro como estas haciendo el grid pero por que no lo intentas y me avisas, para saber como crearlo, observa los ejemplos que te instala el archivo de rutemsoft ve como llenan los grid y me avisas vale! que estes bien!
  #6 (permalink)  
Antiguo 30/04/2008, 14:34
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Ayuda con CRYSTALREPORT o DATAGRID

Buanas Tardes. Yo estoy llenando el datagrid de la siguiente manera:

dgVisitante.DataSource=null;
SqlConnection con= CLASS_PRINCIPAL.dameconexion();

DataSet dsVisitantes2=new DataSet();

dsVisitantes2=SqlHelper.ExecuteDataset(con,Command Type.Text,string.Format(ClsSQL.PorCedula,Form_REPO RTE_CEDULA.cedula,Form_REPORTE_CEDULA.fechad,Form_ REPORTE_CEDULA.fechah));

dgVisitante.DataSource=dsVisitantes2.Tables[0];

dgVisitante.Refresh();
CLASS_PRINCIPAL.cierraconexion(con);

Este DataSet se carga perfectamente, ya que lo muestro en el datagrid perfecto, pero no logro imprmirlo. Si trato de imprimirlo de esta forma a continuacion solamente se imprime el encabezado de la tabla ( es decir el nombre de las columnas)

private DataGridPrint PrintGrid;

private void button1_Click(System.Object sender, System.EventArgs e)
{
printDialog1.Document = printDocument1;
printPreviewDialog1.Document = printDocument1;
PrintGrid = new DataGridPrint(printDocument1, dgVisitante, true);
if (printDialog1.ShowDialog() == DialogResult.OK)
{
printDocument1.Print();
}
}

private void printDocument1_PrintPage_1(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.HasMorePages = PrintGrid.Print(e.Graphics);
e.HasMorePages = false;
}


Y si lo coloco de esta otra orma a continuacion, imprime solamente lo que esta visible en el DataGrid y no toda la informacion que el contiene realmente, que no se ve ya que habria que mover el scrollbar

private void button1_Click(System.Object sender, System.EventArgs e)
{
printDocument1.Print();
}

private void printDocument1_PrintPage_1(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
PaintEventArgs myPaintArgs = new PaintEventArgs(e.Graphics, new Rectangle(new Point(100, 100), this.Size));
this.InvokePaint(dgVisitante, myPaintArgs);
}

Por favor necesito ayuda urgente, necsito imprimir este datagrid completo ya que se acerca la hora de la entrega de mi proyecto y aun no encuentro solucion a esto y llevo como 2 semanas y aun no consigo nada que funcione. Gracias!!!
  #7 (permalink)  
Antiguo 03/05/2008, 12:36
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Ayuda con CRYSTALREPORT o DATAGRID

Por favor necesito ayuda con esto.
  #8 (permalink)  
Antiguo 03/05/2008, 16:02
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Re: Ayuda con CRYSTALREPORT o DATAGRID

Saludos RDV1981.,

Me parece que lo que necesita imprimir es la información que tiene en el dataset, de ser asi le pregunto como diseño el reporte es decir que fuente de datos.

Yo por el momento diseño los reportes a partir del esquema de un dataset, luego cargo el dataset con datos y lo asigno como origen al reporte y a imprimir.

Espero poder ayudarle.

Oscar A Medina S - Colombia
  #9 (permalink)  
Antiguo 03/05/2008, 17:23
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Ayuda con CRYSTALREPORT o DATAGRID

GRACIAS POR RESPONDER.

Yo lleno mi data set de la siguiente forma:

DataSet dsVisitantes2=new DataSet();
dsVisitantes2=SqlHelper.ExecuteDataset(con,Command Type.Text,string.Format(ClsSQL.PorCedula,Form_REPO RTE_CEDULA.cedula,Form_REPORTE_CEDULA.fechad,Form_ REPORTE_CEDULA.fechah));
dgVisitante.DataSource=dsVisitantes2.Tables[0];

Yo uso la clase SQLHELPER de Microsoft para llenar el dataset. Lo importante es que en el DataSet dsVisitantes2.Tables[0] la informacion esta guardada. Lo que necesito es imprimir todo lo que esta dentro de dsVisitantes2.Tables[0]

Por favor si tienen el codigo exacto que deberia de usar seria mucha utilidad, recuerda que trabajo con VS.NETC#2003
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:15.