Enlazar Dataset a Crystal Report

10/06/2005 - 23:11 por Peque | Informe spam
Hola a todos

Actualmente me encuentro desarrollando una aplicación en VB NET y he llegado
a la parte de realizar los reportes de la misma, estoy un poco o un mucho
atorada en lo siguiente: tengo un datagrid que obviamente esta enlazado a un
dataset, en el dataset tengo los datos de dos tablas y por lo tanto creo una
relacion dentro del dataset, despues de realizar esto, procedo a anexarle dos
columnas en el dataset ("Col1", "Col2"," Col3"), los datos en las columnas 1
y 2 serán capturados por el usuario y la tercera columna agregada será
calculada automaticamente.una vez editado cada registro del datagrid
quiero enviar el dataset actualizado a un reporte en crystal, mi pregunta es
como muestro en el reporte las columnas agregadas al dataset (Col1, Col2,
Col3)?.ojala me puedan ayudar con estoles muestro el codigo que
utilizo para hacer lo que les acabo de explicar:


daSp = New SqlDataAdapter
dsSp = New Data.DataSet

Try
'Llamo a un store procedure con parametros para obtener los
primeros
'datos
cmd1 = New SqlCommand("sp_Datos1", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value 'Fecha seleccionada x usuario

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value 'Fecha seleccionada x usuario

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla1")

'Llamo a un segundo store procedure con parametros para obtener
los segundos datos

cmd1 = New SqlCommand("sp_Datos2", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla2")

'Agrego relacion a dataset dsSp
Dim parentcol As Data.DataColumn
Dim childcol As Data.DataColumn
parentcol = dsSp.Tables("Tabla1").Columns("IDCampo")
childcol = dsSp.Tables("Tabla2").Columns("IDCampo")
rel1 = New Data.DataRelation("Datos Relacionados", parentcol,
childcol)
dsSp.Relations.Add(rel1)

'Agrego columnas para que el usuario complemente la informacion
mostrada
' En tabla1 de dataset
dsSp.Tables("Tabla1").Columns.Add("Col1", GetType(String))

'En tabla2 de dataset
dsSp.Tables("Tabla2").Columns.Add("Col2", GetType (Integer))
dsSp.Tables("Tabla2").Columns.Add("Col3", GetType(Integer))
dsSp.Tables("LeadSheetDetail").Columns.Add("Total",
GetType(Integer), "Col2 + Col3")

Espero de su muy valiosa ayuda porque la verdad ya perdi mucho tiempo en
encontrar la manera de como hacerle...

Saludos desde Mexico.

Preguntas similare

Leer las respuestas

#1 Julio Casal
12/06/2005 - 08:42 | Informe spam
Te recomiendo que uses datasets tipificados, es decir, creados en tiempo de
diseño, no de ejecución. A ese dataset déjale ya agregada todas las columnas
que vayas a usar, incluyendo las que va a ingresar el usuario y la columna
calculada. Con ese dataset trabaja en Crystal. Luego, ya en ejecución, solo
preocúpate por agregar los datos que ingresa el usuario a las columnas
adecuadas que ya dejaste listas desde antes.

Espero haya podido ayudarte.

Saludos.

Julio Casal
Developer Senior .Net
MCP
Angel Intelligent


"Peque" wrote:

Hola a todos

Actualmente me encuentro desarrollando una aplicación en VB NET y he llegado
a la parte de realizar los reportes de la misma, estoy un poco o un mucho
atorada en lo siguiente: tengo un datagrid que obviamente esta enlazado a un
dataset, en el dataset tengo los datos de dos tablas y por lo tanto creo una
relacion dentro del dataset, despues de realizar esto, procedo a anexarle dos
columnas en el dataset ("Col1", "Col2"," Col3"), los datos en las columnas 1
y 2 serán capturados por el usuario y la tercera columna agregada será
calculada automaticamente.una vez editado cada registro del datagrid
quiero enviar el dataset actualizado a un reporte en crystal, mi pregunta es
como muestro en el reporte las columnas agregadas al dataset (Col1, Col2,
Col3)?.ojala me puedan ayudar con estoles muestro el codigo que
utilizo para hacer lo que les acabo de explicar:


daSp = New SqlDataAdapter
dsSp = New Data.DataSet

Try
'Llamo a un store procedure con parametros para obtener los
primeros
'datos
cmd1 = New SqlCommand("sp_Datos1", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value 'Fecha seleccionada x usuario

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value 'Fecha seleccionada x usuario

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla1")

'Llamo a un segundo store procedure con parametros para obtener
los segundos datos

cmd1 = New SqlCommand("sp_Datos2", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla2")

'Agrego relacion a dataset dsSp
Dim parentcol As Data.DataColumn
Dim childcol As Data.DataColumn
parentcol = dsSp.Tables("Tabla1").Columns("IDCampo")
childcol = dsSp.Tables("Tabla2").Columns("IDCampo")
rel1 = New Data.DataRelation("Datos Relacionados", parentcol,
childcol)
dsSp.Relations.Add(rel1)

'Agrego columnas para que el usuario complemente la informacion
mostrada
' En tabla1 de dataset
dsSp.Tables("Tabla1").Columns.Add("Col1", GetType(String))

'En tabla2 de dataset
dsSp.Tables("Tabla2").Columns.Add("Col2", GetType (Integer))
dsSp.Tables("Tabla2").Columns.Add("Col3", GetType(Integer))
dsSp.Tables("LeadSheetDetail").Columns.Add("Total",
GetType(Integer), "Col2 + Col3")

Espero de su muy valiosa ayuda porque la verdad ya perdi mucho tiempo en
encontrar la manera de como hacerle...

Saludos desde Mexico.


Respuesta Responder a este mensaje
#2 Peque
14/06/2005 - 16:36 | Informe spam
Hola Julio, mucho gusto y gracias por responder a mi post.aun tengo
dudas de lo que me sugieres, lo que sucede es que los datos que capturara el
usario en las columnas agregadas y la columna calculada, no seran guardadas
en mi base de datos, es decir que estas columnas no son parte de una tabla en
la estructura de mi base de datos y solo estaran disponibles en el momento en
sean editadas para impresion del reporteme podrias dar algun ejemplo de
como hacer lo que me propones?, te lo agradeceria muchisimo.

Saludos.

"Julio Casal" wrote:

Te recomiendo que uses datasets tipificados, es decir, creados en tiempo de
diseño, no de ejecución. A ese dataset déjale ya agregada todas las columnas
que vayas a usar, incluyendo las que va a ingresar el usuario y la columna
calculada. Con ese dataset trabaja en Crystal. Luego, ya en ejecución, solo
preocúpate por agregar los datos que ingresa el usuario a las columnas
adecuadas que ya dejaste listas desde antes.

Espero haya podido ayudarte.

Saludos.

Julio Casal
Developer Senior .Net
MCP
Angel Intelligent


"Peque" wrote:

> Hola a todos
>
> Actualmente me encuentro desarrollando una aplicación en VB NET y he llegado
> a la parte de realizar los reportes de la misma, estoy un poco o un mucho
> atorada en lo siguiente: tengo un datagrid que obviamente esta enlazado a un
> dataset, en el dataset tengo los datos de dos tablas y por lo tanto creo una
> relacion dentro del dataset, despues de realizar esto, procedo a anexarle dos
> columnas en el dataset ("Col1", "Col2"," Col3"), los datos en las columnas 1
> y 2 serán capturados por el usuario y la tercera columna agregada será
> calculada automaticamente.una vez editado cada registro del datagrid
> quiero enviar el dataset actualizado a un reporte en crystal, mi pregunta es
> como muestro en el reporte las columnas agregadas al dataset (Col1, Col2,
> Col3)?.ojala me puedan ayudar con estoles muestro el codigo que
> utilizo para hacer lo que les acabo de explicar:
>
>
> daSp = New SqlDataAdapter
> dsSp = New Data.DataSet
>
> Try
> 'Llamo a un store procedure con parametros para obtener los
> primeros
> 'datos
> cmd1 = New SqlCommand("sp_Datos1", dbConnection)
> cmd1.CommandType = Data.CommandType.StoredProcedure
>
> prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
> prm1.Value() = dtpStart.Value 'Fecha seleccionada x usuario
>
> prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
> prm2.Value() = dtpEnd.Value 'Fecha seleccionada x usuario
>
> daSp.SelectCommand = cmd1
> daSp.Fill(dsSp, "Tabla1")
>
> 'Llamo a un segundo store procedure con parametros para obtener
> los segundos datos
>
> cmd1 = New SqlCommand("sp_Datos2", dbConnection)
> cmd1.CommandType = Data.CommandType.StoredProcedure
>
> prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
> prm1.Value() = dtpStart.Value
>
> prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
> prm2.Value() = dtpEnd.Value
>
> daSp.SelectCommand = cmd1
> daSp.Fill(dsSp, "Tabla2")
>
> 'Agrego relacion a dataset dsSp
> Dim parentcol As Data.DataColumn
> Dim childcol As Data.DataColumn
> parentcol = dsSp.Tables("Tabla1").Columns("IDCampo")
> childcol = dsSp.Tables("Tabla2").Columns("IDCampo")
> rel1 = New Data.DataRelation("Datos Relacionados", parentcol,
> childcol)
> dsSp.Relations.Add(rel1)
>
> 'Agrego columnas para que el usuario complemente la informacion
> mostrada
> ' En tabla1 de dataset
> dsSp.Tables("Tabla1").Columns.Add("Col1", GetType(String))
>
> 'En tabla2 de dataset
> dsSp.Tables("Tabla2").Columns.Add("Col2", GetType (Integer))
> dsSp.Tables("Tabla2").Columns.Add("Col3", GetType(Integer))
> dsSp.Tables("LeadSheetDetail").Columns.Add("Total",
> GetType(Integer), "Col2 + Col3")
>
> Espero de su muy valiosa ayuda porque la verdad ya perdi mucho tiempo en
> encontrar la manera de como hacerle...
>
> Saludos desde Mexico.
>
>
Respuesta Responder a este mensaje
#3 Julio Casal
15/06/2005 - 06:49 | Informe spam
Bueno, la idea seria que agregues una columna calculada a tu dataset
tipificado o dataset con tipo. Esto lo logras haciendo uso de la propiedad
"Expression" que tiene todo dataset. Así, supongamos que tu dataset tiene 2
columnas: PrecioUnitario y Cantidad. Entonces, lo que tendrías que hacer es
agregar una tercera columna, que se llame "total" por ejemplo y luego, en la
propiedad Expression de esa columna, agregarías una expresión como esta:
PrecioUnitario * Cantidad. Con eso, tú solo tendrías que asignarle los
valores al precio y a la cantidad y el total se calcularía automáticamente y
se depositaría en la columna Total del dataset. Tu reporte solo tendría que
tomar ese dataset que ya lo tiene todo calculado.

Puedes ver un ejemplo más extenso en:
http://www.ondotnet.com/pub/a/dotne...sions.html

Espero te sirva de ayuda.

Saludos.

Julio Casal
Developer Senior .Net
MCP
Angel Intelligent


"Peque" wrote:


Hola Julio, mucho gusto y gracias por responder a mi post.aun tengo
dudas de lo que me sugieres, lo que sucede es que los datos que capturara el
usario en las columnas agregadas y la columna calculada, no seran guardadas
en mi base de datos, es decir que estas columnas no son parte de una tabla en
la estructura de mi base de datos y solo estaran disponibles en el momento en
sean editadas para impresion del reporteme podrias dar algun ejemplo de
como hacer lo que me propones?, te lo agradeceria muchisimo.

Saludos.

"Julio Casal" wrote:

> Te recomiendo que uses datasets tipificados, es decir, creados en tiempo de
> diseño, no de ejecución. A ese dataset déjale ya agregada todas las columnas
> que vayas a usar, incluyendo las que va a ingresar el usuario y la columna
> calculada. Con ese dataset trabaja en Crystal. Luego, ya en ejecución, solo
> preocúpate por agregar los datos que ingresa el usuario a las columnas
> adecuadas que ya dejaste listas desde antes.
>
> Espero haya podido ayudarte.
>
> Saludos.
>
> Julio Casal
> Developer Senior .Net
> MCP
> Angel Intelligent
>
>
> "Peque" wrote:
>
> > Hola a todos
> >
> > Actualmente me encuentro desarrollando una aplicación en VB NET y he llegado
> > a la parte de realizar los reportes de la misma, estoy un poco o un mucho
> > atorada en lo siguiente: tengo un datagrid que obviamente esta enlazado a un
> > dataset, en el dataset tengo los datos de dos tablas y por lo tanto creo una
> > relacion dentro del dataset, despues de realizar esto, procedo a anexarle dos
> > columnas en el dataset ("Col1", "Col2"," Col3"), los datos en las columnas 1
> > y 2 serán capturados por el usuario y la tercera columna agregada será
> > calculada automaticamente.una vez editado cada registro del datagrid
> > quiero enviar el dataset actualizado a un reporte en crystal, mi pregunta es
> > como muestro en el reporte las columnas agregadas al dataset (Col1, Col2,
> > Col3)?.ojala me puedan ayudar con estoles muestro el codigo que
> > utilizo para hacer lo que les acabo de explicar:
> >
> >
> > daSp = New SqlDataAdapter
> > dsSp = New Data.DataSet
> >
> > Try
> > 'Llamo a un store procedure con parametros para obtener los
> > primeros
> > 'datos
> > cmd1 = New SqlCommand("sp_Datos1", dbConnection)
> > cmd1.CommandType = Data.CommandType.StoredProcedure
> >
> > prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
> > prm1.Value() = dtpStart.Value 'Fecha seleccionada x usuario
> >
> > prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
> > prm2.Value() = dtpEnd.Value 'Fecha seleccionada x usuario
> >
> > daSp.SelectCommand = cmd1
> > daSp.Fill(dsSp, "Tabla1")
> >
> > 'Llamo a un segundo store procedure con parametros para obtener
> > los segundos datos
> >
> > cmd1 = New SqlCommand("sp_Datos2", dbConnection)
> > cmd1.CommandType = Data.CommandType.StoredProcedure
> >
> > prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
> > prm1.Value() = dtpStart.Value
> >
> > prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
> > prm2.Value() = dtpEnd.Value
> >
> > daSp.SelectCommand = cmd1
> > daSp.Fill(dsSp, "Tabla2")
> >
> > 'Agrego relacion a dataset dsSp
> > Dim parentcol As Data.DataColumn
> > Dim childcol As Data.DataColumn
> > parentcol = dsSp.Tables("Tabla1").Columns("IDCampo")
> > childcol = dsSp.Tables("Tabla2").Columns("IDCampo")
> > rel1 = New Data.DataRelation("Datos Relacionados", parentcol,
> > childcol)
> > dsSp.Relations.Add(rel1)
> >
> > 'Agrego columnas para que el usuario complemente la informacion
> > mostrada
> > ' En tabla1 de dataset
> > dsSp.Tables("Tabla1").Columns.Add("Col1", GetType(String))
> >
> > 'En tabla2 de dataset
> > dsSp.Tables("Tabla2").Columns.Add("Col2", GetType (Integer))
> > dsSp.Tables("Tabla2").Columns.Add("Col3", GetType(Integer))
> > dsSp.Tables("LeadSheetDetail").Columns.Add("Total",
> > GetType(Integer), "Col2 + Col3")
> >
> > Espero de su muy valiosa ayuda porque la verdad ya perdi mucho tiempo en
> > encontrar la manera de como hacerle...
> >
> > Saludos desde Mexico.
> >
> >
Respuesta Responder a este mensaje
#4 Peque
15/06/2005 - 17:37 | Informe spam
Gracias Julio nuevamente, el link que me enviaste era justo lo que
necesitaba, pero ahora tengo otro pequeño problema, si recuerdas en el codigo
que muestro en el inicio de este post, al igual que el ejemplo que se muestra
en el link yo tengo una relacion en mi dataset y tambien realizo sumas con
las columnas de la tabla hija (las columnas que agrego por codigo) para
reflejar totales en la tabla padre, pero ahora pasa que cuando edito alguna
columna (de las agregadas) de la tabla hija me regresa a los datos de la
tabla Padre y cuando vuelvo a pulsar el link para ver los datos de la tabla
hija me aparece la siguiente excepcion:

An unhandled exception of type 'System.NullReferenceException' ocurred in
system.data.dll
Additional Information: Object Reference not set to an instance of an object

Podrias ayudarme ahora con esto??..el codigo es el mismo que mostre al
inicio del post.saludos.



"Julio Casal" wrote:

Bueno, la idea seria que agregues una columna calculada a tu dataset
tipificado o dataset con tipo. Esto lo logras haciendo uso de la propiedad
"Expression" que tiene todo dataset. Así, supongamos que tu dataset tiene 2
columnas: PrecioUnitario y Cantidad. Entonces, lo que tendrías que hacer es
agregar una tercera columna, que se llame "total" por ejemplo y luego, en la
propiedad Expression de esa columna, agregarías una expresión como esta:
PrecioUnitario * Cantidad. Con eso, tú solo tendrías que asignarle los
valores al precio y a la cantidad y el total se calcularía automáticamente y
se depositaría en la columna Total del dataset. Tu reporte solo tendría que
tomar ese dataset que ya lo tiene todo calculado.

Puedes ver un ejemplo más extenso en:
http://www.ondotnet.com/pub/a/dotne...sions.html

Espero te sirva de ayuda.

Saludos.

Julio Casal
Developer Senior .Net
MCP
Angel Intelligent


"Peque" wrote:

>
> Hola Julio, mucho gusto y gracias por responder a mi post.aun tengo
> dudas de lo que me sugieres, lo que sucede es que los datos que capturara el
> usario en las columnas agregadas y la columna calculada, no seran guardadas
> en mi base de datos, es decir que estas columnas no son parte de una tabla en
> la estructura de mi base de datos y solo estaran disponibles en el momento en
> sean editadas para impresion del reporteme podrias dar algun ejemplo de
> como hacer lo que me propones?, te lo agradeceria muchisimo.
>
> Saludos.
>
> "Julio Casal" wrote:
>
> > Te recomiendo que uses datasets tipificados, es decir, creados en tiempo de
> > diseño, no de ejecución. A ese dataset déjale ya agregada todas las columnas
> > que vayas a usar, incluyendo las que va a ingresar el usuario y la columna
> > calculada. Con ese dataset trabaja en Crystal. Luego, ya en ejecución, solo
> > preocúpate por agregar los datos que ingresa el usuario a las columnas
> > adecuadas que ya dejaste listas desde antes.
> >
> > Espero haya podido ayudarte.
> >
> > Saludos.
> >
> > Julio Casal
> > Developer Senior .Net
> > MCP
> > Angel Intelligent
> >
> >
> > "Peque" wrote:
> >
> > > Hola a todos
> > >
> > > Actualmente me encuentro desarrollando una aplicación en VB NET y he llegado
> > > a la parte de realizar los reportes de la misma, estoy un poco o un mucho
> > > atorada en lo siguiente: tengo un datagrid que obviamente esta enlazado a un
> > > dataset, en el dataset tengo los datos de dos tablas y por lo tanto creo una
> > > relacion dentro del dataset, despues de realizar esto, procedo a anexarle dos
> > > columnas en el dataset ("Col1", "Col2"," Col3"), los datos en las columnas 1
> > > y 2 serán capturados por el usuario y la tercera columna agregada será
> > > calculada automaticamente.una vez editado cada registro del datagrid
> > > quiero enviar el dataset actualizado a un reporte en crystal, mi pregunta es
> > > como muestro en el reporte las columnas agregadas al dataset (Col1, Col2,
> > > Col3)?.ojala me puedan ayudar con estoles muestro el codigo que
> > > utilizo para hacer lo que les acabo de explicar:
> > >
> > >
> > > daSp = New SqlDataAdapter
> > > dsSp = New Data.DataSet
> > >
> > > Try
> > > 'Llamo a un store procedure con parametros para obtener los
> > > primeros
> > > 'datos
> > > cmd1 = New SqlCommand("sp_Datos1", dbConnection)
> > > cmd1.CommandType = Data.CommandType.StoredProcedure
> > >
> > > prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
> > > prm1.Value() = dtpStart.Value 'Fecha seleccionada x usuario
> > >
> > > prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
> > > prm2.Value() = dtpEnd.Value 'Fecha seleccionada x usuario
> > >
> > > daSp.SelectCommand = cmd1
> > > daSp.Fill(dsSp, "Tabla1")
> > >
> > > 'Llamo a un segundo store procedure con parametros para obtener
> > > los segundos datos
> > >
> > > cmd1 = New SqlCommand("sp_Datos2", dbConnection)
> > > cmd1.CommandType = Data.CommandType.StoredProcedure
> > >
> > > prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
> > > prm1.Value() = dtpStart.Value
> > >
> > > prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
> > > prm2.Value() = dtpEnd.Value
> > >
> > > daSp.SelectCommand = cmd1
> > > daSp.Fill(dsSp, "Tabla2")
> > >
> > > 'Agrego relacion a dataset dsSp
> > > Dim parentcol As Data.DataColumn
> > > Dim childcol As Data.DataColumn
> > > parentcol = dsSp.Tables("Tabla1").Columns("IDCampo")
> > > childcol = dsSp.Tables("Tabla2").Columns("IDCampo")
> > > rel1 = New Data.DataRelation("Datos Relacionados", parentcol,
> > > childcol)
> > > dsSp.Relations.Add(rel1)
> > >
> > > 'Agrego columnas para que el usuario complemente la informacion
> > > mostrada
> > > ' En tabla1 de dataset
> > > dsSp.Tables("Tabla1").Columns.Add("Col1", GetType(String))
> > >
> > > 'En tabla2 de dataset
> > > dsSp.Tables("Tabla2").Columns.Add("Col2", GetType (Integer))
> > > dsSp.Tables("Tabla2").Columns.Add("Col3", GetType(Integer))
> > > dsSp.Tables("LeadSheetDetail").Columns.Add("Total",
> > > GetType(Integer), "Col2 + Col3")
> > >
> > > Espero de su muy valiosa ayuda porque la verdad ya perdi mucho tiempo en
> > > encontrar la manera de como hacerle...
> > >
> > > Saludos desde Mexico.
> > >
> > >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida