Domingo 22 de Diciembre de 2024, 13:07
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
crystal reports, 1 dataset con 2 columnas
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: crystal reports, 1 dataset con 2 columnas (Leído 5502 veces)
streamercrow
Nuevo Miembro
Mensajes: 5
Nacionalidad:
crystal reports, 1 dataset con 2 columnas
«
en:
Martes 5 de Julio de 2011, 20:41 »
0
Hola! soy nuevo en el foro, recientemente se me presento un problema.
necesito pasar a un reporte de Crystal Reports 2008 columnas de 2 datagrids el contenido del primer datagrid esta en el Dataset1 en la primer columna y lo paso con el siguiente codigo:
Código: C#
DataSet2 dg
=
new
DataSet2
(
)
;
int
filas
=
(
dgv1
.
Rows
.
Count
)
;
for
(
int
i
=
0
;
i
<=
filas
-
2
;
i
++
)
{
dg
.
Tables
[
0
]
.
Rows
.
Add
(
new
object
[
]
{
dgv1
[
0
,i
]
.
Value
.
ToString
(
)
,
dgv1
[
1
,i
]
.
Value
.
ToString
(
)
,
dgv1
[
2
,i
]
.
Value
.
ToString
(
)
,
dgv1
[
3
,i
]
.
Value
.
ToString
(
)
,
dgv1
[
4
,i
]
.
Value
.
ToString
(
)
}
)
;
}
CrystalReport1 orep1
=
new
CrystalReport1
(
)
;
orep1
.
Load
(
)
;
orep1
.
SetDataSource
(
dg
)
;
crystalReportViewer1
.
ReportSource
=
orep1
;
y me funciona, solo que unicamente se llena el DataTable1 del dataset1 y no se como podria hacer para llenar el DataTable2 ya que en el codigo no veo ninguna referencia a los DataTables, entonces mi suposicion es que solo se debe cambiar la parte:
Código: C#
dg
.
Tables
[
0
]
.
Rows
.
Add
por
Código: C#
dg
.
Tables
[
1
]
.
Rows
.
Add
y obviamente declarar nuevos objetos, algo asi:
Código: C#
DataSet2 dg3
=
new
DataSet2
(
)
;
int
filas2
=
(
dgv2
.
Rows
.
Count
)
;
for
(
int
i
=
0
;
i
<=
filas2
-
2
;
i
++
)
{
dg3
.
Tables
[
0
]
.
Rows
.
Add
(
new
object
[
]
{
dgv2
[
0
,i
]
.
Value
.
ToString
(
)
,
dgv2
[
1
,i
]
.
Value
.
ToString
(
)
,
dgv2
[
2
,i
]
.
Value
.
ToString
(
)
,
dgv2
[
3
,i
]
.
Value
.
ToString
(
)
,
dgv2
[
4
,i
]
.
Value
.
ToString
(
)
}
)
;
}
CrystalReport1 orep2
=
new
CrystalReport1
(
)
;
orep2
.
Load
(
)
;
orep2
.
SetDataSource
(
dg3
)
;
crystalReportViewer1
.
ReportSource
=
orep2
;
es decir en un boton pongo el primer codigo y luego este y no me da error pero en el crystal reports ya no me carga ninguna columna, ya agregue las columnas del DataTable2 al diseñador de crystal pero no me funciona. El motivo de hacerlo en 2 DataTables es que los 2 datagrids tienen una cantidad de datos distintas.
sospecho que el error esta en el ReportSource pero no se como hacer para que el Source sean los dos objetos Orep1 y Orep2.
espero me puedan ayudar, cualquier cosa que no me haya sabido explicar me dicen y con muchisimo gusto aclaro.
saludos!!!
Tweet
XD
streamercrow
Nuevo Miembro
Mensajes: 5
Nacionalidad:
Re: crystal reports, 1 dataset con 2 columnas
«
Respuesta #1 en:
Miércoles 6 de Julio de 2011, 19:26 »
0
en serio nadie sabe???
XD
gerloxxx
Miembro MUY activo
Mensajes: 121
Re: crystal reports, 1 dataset con 2 columnas
«
Respuesta #2 en:
Viernes 8 de Julio de 2011, 16:11 »
0
La verdad no entiendo bien tu pregunta... no crees que te funcione meter dos subreportes y a cada uno le pasas un dateset diferente...
saludos
streamercrow
Nuevo Miembro
Mensajes: 5
Nacionalidad:
Re: crystal reports, 1 dataset con 2 columnas
«
Respuesta #3 en:
Lunes 11 de Julio de 2011, 20:30 »
0
subreportes? no se mucho de crystal reports, voy ver como funciona lo que dices. gracias por responder.
XD
gabio2
Miembro MUY activo
Mensajes: 402
Nacionalidad:
Re: crystal reports, 1 dataset con 2 columnas
«
Respuesta #4 en:
Lunes 11 de Julio de 2011, 21:30 »
0
Lo que quieres hacer es meter datos de 2 tablas diferentes en un reporte?.. y tú problema es que sólo te ingresa la primera tabla?..
@gabio87
streamercrow
Nuevo Miembro
Mensajes: 5
Nacionalidad:
Re:crystal reports, 1 dataset con 2 columnas
«
Respuesta #5 en:
Viernes 22 de Julio de 2011, 00:08 »
0
exacto!!!! ya intente varias cosas pero no lo logro... alguien sabe como???
saludos!
XD
gabio2
Miembro MUY activo
Mensajes: 402
Nacionalidad:
Re:crystal reports, 1 dataset con 2 columnas
«
Respuesta #6 en:
Viernes 22 de Julio de 2011, 17:53 »
0
Está muy fácil... te explico.. :
1) Crea la estructura de todas las tablas que vayas a usar en DataTables. (De hecho basta llenarlo con registros de una base de datos y automáticamente crea la estructura por tí, o puedes defirnila manualmente).
2) Llena un DataSet con TODOS tus Datatables que ya haz 'configurado'.
3) Crea un esquema XML de ese DataSet.. ¿como?
http://msdn.microsoft.com/es-es/library/system.data.dataset.writexml%28VS.80%29.aspx
Código: C#
//Esta linea te sirve apra crear el esquema xml, solo se necesita hacer UNA VEZ luego que tengas el esquema puedes comentar está linea..
TuDataSet
.
WriteXml
(
"C:
\\
ejemplo.xml"
,XmlWriteMode
.
WriteSchema
)
;
4) Ahora solo tienes que importar ese archivo xml en tu reporte.. ¿como? fácil creas un nuevo reporte, una vez en el reporte te vas a tú Explorador de campos, luego en donde dice "Campos de base de datos", das clic derecho y seleccionas Asistente de Base de datos, luego donde dice "Crear nueva conexión" seleccionas
Archivos de base de datos
al seleccionarlo te debe abrir una ventana en la cual vas a ubicar tu esquema XML que acabas de crear, luego le das clic en Abrir.. y verás como tu DataSet aparecerá en la pantalla, entonces sólo tienes que seleccionar las tablas que vas a utilizar y pasarlas donde dice "Tablas seleccionas".. y listo..
das clic en aceptar y tus tablas aparecerán en tú Explorador de campos..
5)Ahora cuando vayas a llamar a tu reporte desde tú código obviamente tienes que llenar tus datatables con datos y luego agregarlos a tú DataSet...
6) El objeto que crees de tu reporte se debes pasar un DataSource, tu DataSource deberá ser tu DataSet.. ejemplo:
Código: C#
Reportes
.
CrystalReports
.
ReporteMateriales
rpt
=
new
Reportes
.
CrystalReports
.
ReporteMateriales
(
)
;
rpt
.
SetDataSource
(
DSMateriales
)
;
//DSMateriales es mi DataSet.
Espero te sirva ...
... saludos
@gabio87
streamercrow
Nuevo Miembro
Mensajes: 5
Nacionalidad:
Re:crystal reports, 1 dataset con 2 columnas
«
Respuesta #7 en:
Sábado 23 de Julio de 2011, 20:06 »
0
Muchas gracias por responder gabio2!!! mas o menos comprendo lo que dices pero tengo dudas en el paso 5, como lleno los datatables?
disculpa si la pregunta es tonta, soy muy novato
. como especifico en que datatable se va a llenar?
y al crear el esquema xml la linea donde la pongo? en un nuevo archivo de codigo.cs o como?
nuevamente me disculpo por mi total ignorancia respecto al tema.
te cuento que tambien encontre esto:http://ltuttini.blogspot.com/2009/12/c-crystal-reports-usar-dataset-tipado.html ahora mismo no puedo probar porque estoy fuera pero en cuanto pueda lo pruebo y te comento como me fue.
Nota:utilizo ADO.NET.
Saludos!!
XD
gabio2
Miembro MUY activo
Mensajes: 402
Nacionalidad:
Re:crystal reports, 1 dataset con 2 columnas
«
Respuesta #8 en:
Domingo 24 de Julio de 2011, 03:12 »
0
Ese link que me enviaste es correcto, esa es una forma de llenar tu DataTable..
... por cierto en la linea donde creas el XML pones un punto de interrupción, ya que despues que pase el punto tienes que darle STOP a tú aplicación para cargar el xml en el reporte.. y seguir haciendo los pasos que te dije.. luego puedes COMENTAR esa linea de codigo.. YA NO LA VAS A AVOLVER A UTILIZAR.. si no lo quitas tampoco pasa nada pero te va a estar generando UNA y OTRA vez el XML sin sentido alguno.. el XML que te crea Puede o NO tener datos, ya que el Crystal Reports toma sólo la Estructura de tus tablas.. espero hayas entendido un poco la "lógica" de lo que te acabo de decir.. en caso contrario puedes seguir preguntando.
@gabio87
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
crystal reports, 1 dataset con 2 columnas