Jajaj disculpen creo que por lo mismo de ser nuevo en esto relativamente
creo que con decirles FOREACH creo que ya me entienden jajaja pido disculpas


Bien como comente al principio de este tema, estaba siguiendo el tutorial de
Jose Fabricio:
http://josefabriciorojas.blogspot.com/2008/05/nhibernate-crystal-reports.html

Con la finalidad de alimentar un reporte hecho en Crystal Reports a traves
de NH3.

El autor antes mencionado entre la serie de pasos a seguir menciona que
inserte en una forma un CrystalReportsViewer el cual se llama: crvReporte y
un reporte llamado Reporte1

Comenta a su vez que generemos un Dataset el cual se llama dsAlumno y
contiene los datos del objeto Alumno, los cuales son los siguientes:

Alumno.cs
        public virtual string Matricula { get; set; }
        public virtual string Paterno { get; set; }
        public virtual string Materno { get; set; }
        public virtual string Nombre { get; set; }
        public virtual int NoCuenta { get; set; }
        public virtual int JDE { get; set; }

Bien dicho dataset se llama dsAlumno y tiene el siguiente datatable

Alumno
POID <-- este es un campo llave
Matricula
Paterno
Materno
Nombre
NoCuenta
JDE

Este fue el background del problema
=========================================================

Ahora bien lo que se hara es insertarle los datos al datatable mediante un
FOREACH de esta forma

RepositorioAlumno alumnos = new RepositorioAlumno(); // instancio al
repositorio donde saco la lista del Objeto Alumno

dsAlumno dsa = new dsAlumno(); // instancio el dataset antes mencionado

            foreach (Alumno alu in alumnos.ListaAlumnos()) //
alumno.ListaAlumnos(); es el metodo donde hago la consulta de la lista
            {
                DataRow row = dsa.Tables["Alumno"].NewRow();
                row["POID"] = alu.POID;
                row["Matricula"] = alu.Matricula;
                row["Paterno"] = alu.Paterno;
                row["Materno"] = alu.Materno;
                row["Nombre"] = alu.Nombre;
                row["NoCuenta"] = alu.NoCuenta;
                row["JDE"] = alu.JDE;

                dsa.Tables["Alumno"].Rows.Add(row); //aqui agrego los datos
al datatable uno por uno
            }

            dsa.Tables["Alumno"].AcceptChanges(); // aqui acepto los cambios
            Reporte r1 = new Reporte(); // instancio el reporte segun
sugirio Mario, porque aqui surgia un error que se soluciono pero persistio
abajo

            r1.SetDataSource(dsa.Tables["Alumno"]); //Le doy al reporte el
origen de los datos, osea un dataset hasta donde se ya lleno

            crvReporte.ReportSource = r1;  <-- aqui es donde surge el
siguiente error comentado, mismo que ya habia pasado en la linea anterior,
solo que como comente, Mario sugirio instanciara el reporte

            crvReporte.Refresh();

===============================================================
Bien aqui les mando todo lo que dice el error:

No se controló System.NullReferenceException
  Message="Referencia a objeto no establecida como instancia de un objeto."
  Source="SystemSAI"
  StackTrace:
       en SystemSAI.frmReporte..ctor() en C:\Documents and
Settings\augusto.ferriz\Mis documentos\Visual Studio
2008\Projects\SAI\SystemSAI\frmReporte.cs:línea 39
       en SystemSAI.frmMenu.btnCargarReporte_Click(Object sender, EventArgs
e) en C:\Documents and Settings\augusto.ferriz\Mis documentos\Visual Studio
2008\Projects\SAI\SystemSAI\frmMenu.cs:línea 603
       en System.Windows.Forms.Control.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
button, Int32 clicks)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ButtonBase.WndProc(Message& m)
       en System.Windows.Forms.Button.WndProc(Message& m)
       en
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&
m)
       en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd,
Int32 msg, IntPtr wparam, IntPtr lparam)
       en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&
msg)
       en
System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32
dwComponentID, Int32 reason, Int32 pvLoopData)
       en
System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32
reason, ApplicationContext context)
       en
System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason,
ApplicationContext context)
       en System.Windows.Forms.Application.Run(Form mainForm)
       en SystemSAI.Program.Main() en C:\Documents and
Settings\augusto.ferriz\Mis documentos\Visual Studio
2008\Projects\SAI\SystemSAI\Program.cs:línea 29
       en System.AppDomain._nExecuteAssembly(Assembly assembly, String[]
args)
       en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence
assemblySecurity, String[] args)
       en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       en System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       en System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
       en System.Threading.ThreadHelper.ThreadStart()
  InnerException:

==========================================================

Saludos y gracias por su tiempo...

Estoy usando NH3 con Vs2008 C#.NET

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a