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.
 

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.

Preguntas similares