Subinformes en Crystal

08/02/2005 - 17:49 por Sofía | Informe spam
Buenas tardes, les comento mi problema:
Tengo un informe que lo he creado con el asistente de crystal seleccionando
una base de datos que tengo de pruebas. Desde código le cambio el nombre de
la base de datos y servidor para que en el cliente me funcione bien. Si es
un informe sencillo funciona perfectamente pero si hay algún subinforme
parece ser que no me cambia ni la base de datos ni el servidor. Este es el
código que utilizo para modificarlo:

string strTabla;

Imp_Fichareport=new Imp_Ficha();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.ServerName="Servidor";

crTableLogonInfo.ConnectionInfo.DatabaseName="Base de datos";

crTableLogonInfo.ConnectionInfo.UserID="Usuario";

crTableLogonInfo.ConnectionInfo.Password="Contraseña";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}


Si alguien sabe la solución se lo agracería muchísimo ya que ya no se dónde
mirar.
Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
08/02/2005 - 20:22 | Informe spam
Hola, Sofía,

Lo que tienes funcoina perfectamente para un informe sin subinformes.
Si el informe tiene subinformes, debes recorrer todas las secciones del
informe 'padre' buscando los subinformes que hay en cada una de ellas, para
pasarle la información de conexión a cada una de las tablas de estos
subinformes.
Aquí va un ejemplo de código:

http://support.businessobjects.com/...010275.asp

Está en VB.NET, pero lo entenderás.

Slds - Octavio

"Sofía" escribió en el mensaje
news:
Buenas tardes, les comento mi problema:
Tengo un informe que lo he creado con el asistente de crystal
seleccionando una base de datos que tengo de pruebas. Desde código le
cambio el nombre de la base de datos y servidor para que en el cliente me
funcione bien. Si es un informe sencillo funciona perfectamente pero si
hay algún subinforme parece ser que no me cambia ni la base de datos ni el
servidor. Este es el código que utilizo para modificarlo:

string strTabla;

Imp_Fichareport=new Imp_Ficha();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.ServerName="Servidor";

crTableLogonInfo.ConnectionInfo.DatabaseName="Base de datos";

crTableLogonInfo.ConnectionInfo.UserID="Usuario";

crTableLogonInfo.ConnectionInfo.Password="Contraseña";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}


Si alguien sabe la solución se lo agracería muchísimo ya que ya no se
dónde mirar.
Muchas gracias.

Respuesta Responder a este mensaje
#2 Sofía
09/02/2005 - 09:20 | Informe spam
Muchas gracias Octavio, estoy intentado pasar el código a C# pero no se cómo
pasar esta línea:
crSubreportObject=CType(crReportObject, SubreportObject)
¿Cómo puedo cambiar de tipo reportObject a SubreportObject en C#?

Muchas gracias.


"Octavio Hernandez" escribió en el mensaje
news:%
Hola, Sofía,

Lo que tienes funcoina perfectamente para un informe sin subinformes.
Si el informe tiene subinformes, debes recorrer todas las secciones del
informe 'padre' buscando los subinformes que hay en cada una de ellas,
para pasarle la información de conexión a cada una de las tablas de estos
subinformes.
Aquí va un ejemplo de código:

http://support.businessobjects.com/...010275.asp

Está en VB.NET, pero lo entenderás.

Slds - Octavio

"Sofía" escribió en el mensaje
news:
Buenas tardes, les comento mi problema:
Tengo un informe que lo he creado con el asistente de crystal
seleccionando una base de datos que tengo de pruebas. Desde código le
cambio el nombre de la base de datos y servidor para que en el cliente me
funcione bien. Si es un informe sencillo funciona perfectamente pero si
hay algún subinforme parece ser que no me cambia ni la base de datos ni
el servidor. Este es el código que utilizo para modificarlo:

string strTabla;

Imp_Fichareport=new Imp_Ficha();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.ServerName="Servidor";

crTableLogonInfo.ConnectionInfo.DatabaseName="Base de datos";

crTableLogonInfo.ConnectionInfo.UserID="Usuario";

crTableLogonInfo.ConnectionInfo.Password="Contraseña";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}


Si alguien sabe la solución se lo agracería muchísimo ya que ya no se
dónde mirar.
Muchas gracias.





Respuesta Responder a este mensaje
#3 Octavio Hernandez
09/02/2005 - 09:30 | Informe spam
Hola,

El CType de VB es para el casting de tipos. En C# sería:

crSubreportObject = crReportObject as SubreportObject;

ó

crSubreportObject = (SubreportObject) crReportObject;

La primera versión daría null en caso de que el objeto al que apunta
crReportObject no sea del tipo SubreportObject; la segunda daría una
excepción. Pero me imagino que dentro del código fuente esta asignación esté
dentro de una condicional:

if (crReportObject is SubreportObject) ...

y por lo tanto cualquiera de las dos formas te valdrá.

Salu2 - Octavio

"Sofía" escribió en el mensaje
news:%238%
Muchas gracias Octavio, estoy intentado pasar el código a C# pero no se
cómo pasar esta línea:
crSubreportObject=CType(crReportObject, SubreportObject)
¿Cómo puedo cambiar de tipo reportObject a SubreportObject en C#?

Muchas gracias.


"Octavio Hernandez" escribió en el mensaje
news:%
Hola, Sofía,

Lo que tienes funcoina perfectamente para un informe sin subinformes.
Si el informe tiene subinformes, debes recorrer todas las secciones del
informe 'padre' buscando los subinformes que hay en cada una de ellas,
para pasarle la información de conexión a cada una de las tablas de estos
subinformes.
Aquí va un ejemplo de código:

http://support.businessobjects.com/...010275.asp

Está en VB.NET, pero lo entenderás.

Slds - Octavio

"Sofía" escribió en el mensaje
news:
Buenas tardes, les comento mi problema:
Tengo un informe que lo he creado con el asistente de crystal
seleccionando una base de datos que tengo de pruebas. Desde código le
cambio el nombre de la base de datos y servidor para que en el cliente
me funcione bien. Si es un informe sencillo funciona perfectamente pero
si hay algún subinforme parece ser que no me cambia ni la base de datos
ni el servidor. Este es el código que utilizo para modificarlo:

string strTabla;

Imp_Fichareport=new Imp_Ficha();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.ServerName="Servidor";

crTableLogonInfo.ConnectionInfo.DatabaseName="Base de datos";

crTableLogonInfo.ConnectionInfo.UserID="Usuario";

crTableLogonInfo.ConnectionInfo.Password="Contraseña";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}


Si alguien sabe la solución se lo agracería muchísimo ya que ya no se
dónde mirar.
Muchas gracias.









Respuesta Responder a este mensaje
#4 Sofía
09/02/2005 - 09:51 | Informe spam
Muchiiiisimas gracias Octavio, funciona a la perfección.

Un saludo.
"Octavio Hernandez" escribió en el mensaje
news:
Hola,

El CType de VB es para el casting de tipos. En C# sería:

crSubreportObject = crReportObject as SubreportObject;

ó

crSubreportObject = (SubreportObject) crReportObject;

La primera versión daría null en caso de que el objeto al que apunta
crReportObject no sea del tipo SubreportObject; la segunda daría una
excepción. Pero me imagino que dentro del código fuente esta asignación
esté dentro de una condicional:

if (crReportObject is SubreportObject) ...

y por lo tanto cualquiera de las dos formas te valdrá.

Salu2 - Octavio

"Sofía" escribió en el mensaje
news:%238%
Muchas gracias Octavio, estoy intentado pasar el código a C# pero no se
cómo pasar esta línea:
crSubreportObject=CType(crReportObject, SubreportObject)
¿Cómo puedo cambiar de tipo reportObject a SubreportObject en C#?

Muchas gracias.


"Octavio Hernandez" escribió en el mensaje
news:%
Hola, Sofía,

Lo que tienes funcoina perfectamente para un informe sin subinformes.
Si el informe tiene subinformes, debes recorrer todas las secciones del
informe 'padre' buscando los subinformes que hay en cada una de ellas,
para pasarle la información de conexión a cada una de las tablas de
estos subinformes.
Aquí va un ejemplo de código:

http://support.businessobjects.com/...010275.asp

Está en VB.NET, pero lo entenderás.

Slds - Octavio

"Sofía" escribió en el mensaje
news:
Buenas tardes, les comento mi problema:
Tengo un informe que lo he creado con el asistente de crystal
seleccionando una base de datos que tengo de pruebas. Desde código le
cambio el nombre de la base de datos y servidor para que en el cliente
me funcione bien. Si es un informe sencillo funciona perfectamente pero
si hay algún subinforme parece ser que no me cambia ni la base de datos
ni el servidor. Este es el código que utilizo para modificarlo:

string strTabla;

Imp_Fichareport=new Imp_Ficha();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.ServerName="Servidor";

crTableLogonInfo.ConnectionInfo.DatabaseName="Base de datos";

crTableLogonInfo.ConnectionInfo.UserID="Usuario";

crTableLogonInfo.ConnectionInfo.Password="Contraseña";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}


Si alguien sabe la solución se lo agracería muchísimo ya que ya no se
dónde mirar.
Muchas gracias.













email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida