Crytal Report - Error con Subinformes

23/06/2004 - 18:25 por Sofía Mancebo | Informe spam
Buenas tardes,

Tengo un informe que accede a una base de datos y dentro de ese informe
tengo un subinforme.

Desde código le cambio la base de datos y el servidor que voy a utilizar. Si
no utilizo el subinforme, funciona todo perfectamente, pero si le añado un
subinforme me da "Error al abrir un conjunto de filas"

Utilizo lo siguiente para cambiar la base de datos y servidor del informe y
subinforme:

//Informe

Report1 report=new Report1();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";

crTableLogonInfo.ConnectionInfo.ServerName="Server";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}

//Subinforme

ReportDocument subreport=new Report1 ().OpenSubreport("SubReport1");

foreach (Table table in subreport.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";

crTableLogonInfo.ConnectionInfo.ServerName="Server";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}

Alguno sabéis cómo se puede solucionar esto. (Ya no se qué mas probar)

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
23/06/2004 - 23:38 | Informe spam
Sofía,

La clase ConnectionInfo además de DatabaseName y ServerName tiene UserName y
Password, ¿no?
¿No estará influyendo el hecho de que no asignas esos valores? El código en
general parece correcto.

Slds - Octavio

"Sofía Mancebo" escribió en el mensaje
news:
Buenas tardes,

Tengo un informe que accede a una base de datos y dentro de ese informe
tengo un subinforme.

Desde código le cambio la base de datos y el servidor que voy a utilizar.


Si
no utilizo el subinforme, funciona todo perfectamente, pero si le añado un
subinforme me da "Error al abrir un conjunto de filas"

Utilizo lo siguiente para cambiar la base de datos y servidor del informe


y
subinforme:

//Informe

Report1 report=new Report1();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";




crTableLogonInfo.ConnectionInfo.ServerName="Server";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}

//Subinforme

ReportDocument subreport=new Report1 ().OpenSubreport("SubReport1");

foreach (Table table in subreport.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";




crTableLogonInfo.ConnectionInfo.ServerName="Server";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}

Alguno sabéis cómo se puede solucionar esto. (Ya no se qué mas probar)

Muchas gracias.


Respuesta Responder a este mensaje
#2 Sofía Mancebo
24/06/2004 - 08:12 | Informe spam
Hola Octavio, he probado a poner lo que me dices pero aún así me da el mismo
error.
Yo creo que me da el error porque al diseñar el informe lo hago sobre una
base de datos y un servidor y cuando se lo pongo al cliente la base de datos
y el servidor se llaman diferente. Si solo tengo un informe funciona el
código perfectamente, el problema está cuando inserto un subinforme que
parece que no le cambia la base de datos y el servidor.
Muchas gracias de todas maneras.


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

La clase ConnectionInfo además de DatabaseName y ServerName tiene UserName


y
Password, ¿no?
¿No estará influyendo el hecho de que no asignas esos valores? El código


en
general parece correcto.

Slds - Octavio

"Sofía Mancebo" escribió en el mensaje
news:
> Buenas tardes,
>
> Tengo un informe que accede a una base de datos y dentro de ese informe
> tengo un subinforme.
>
> Desde código le cambio la base de datos y el servidor que voy a


utilizar.
Si
> no utilizo el subinforme, funciona todo perfectamente, pero si le añado


un
> subinforme me da "Error al abrir un conjunto de filas"
>
> Utilizo lo siguiente para cambiar la base de datos y servidor del


informe
y
> subinforme:
>
> //Informe
>
> Report1 report=new Report1();
>
> foreach (Table table in report.Database.Tables)
>
> {
>
> TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();
>
> crTableLogonInfo=table.LogOnInfo;
>
> strTabla=crTableLogonInfo.TableName;
>
> crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";
>
>
crTableLogonInfo.ConnectionInfo.ServerName="Server";
>
> table.ApplyLogOnInfo(crTableLogonInfo);
>
> table.Location=strTabla;
>
> }
>
> //Subinforme
>
> ReportDocument subreport=new Report1 ().OpenSubreport("SubReport1");
>
> foreach (Table table in subreport.Database.Tables)
>
> {
>
> TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();
>
> crTableLogonInfo=table.LogOnInfo;
>
> strTabla=crTableLogonInfo.TableName;
>
> crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";
>
>
crTableLogonInfo.ConnectionInfo.ServerName="Server";
>
> table.ApplyLogOnInfo(crTableLogonInfo);
>
> table.Location=strTabla;
>
> }
>
> Alguno sabéis cómo se puede solucionar esto. (Ya no se qué mas probar)
>
> Muchas gracias.
>
>


Respuesta Responder a este mensaje
#3 Octavio Hernandez
24/06/2004 - 12:36 | Informe spam
Sofía,

Dos ideas:

a) ¿Este código lo haz sacado de algún ejemplo de ellos o algo así? Mira
estas dos líneas:

TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
crTableLogonInfo = table.LogOnInfo;

Mi pregunta es: ¿pará qué construir un nuevo objeto TableLogOnInfo si
inmediatamente después se le asigna otro valor a la referencia? Algo no
parece estar bien.

b) Me parece recordar (no uso esto todos los días) que la clase
ReportDocument tiene un método SetDatabaseLogon(server, database, user,
password) que simplifica mucho estas cosas. Tal vez usando este método te
salga mucho más fácil.

Salu2 - Octavio

"Sofía Mancebo" escribió en el mensaje
news:
Buenas tardes,

Tengo un informe que accede a una base de datos y dentro de ese informe
tengo un subinforme.

Desde código le cambio la base de datos y el servidor que voy a utilizar.


Si
no utilizo el subinforme, funciona todo perfectamente, pero si le añado un
subinforme me da "Error al abrir un conjunto de filas"

Utilizo lo siguiente para cambiar la base de datos y servidor del informe


y
subinforme:

//Informe

Report1 report=new Report1();

foreach (Table table in report.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";




crTableLogonInfo.ConnectionInfo.ServerName="Server";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}

//Subinforme

ReportDocument subreport=new Report1 ().OpenSubreport("SubReport1");

foreach (Table table in subreport.Database.Tables)

{

TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();

crTableLogonInfo=table.LogOnInfo;

strTabla=crTableLogonInfo.TableName;

crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";




crTableLogonInfo.ConnectionInfo.ServerName="Server";

table.ApplyLogOnInfo(crTableLogonInfo);

table.Location=strTabla;

}

Alguno sabéis cómo se puede solucionar esto. (Ya no se qué mas probar)

Muchas gracias.


Respuesta Responder a este mensaje
#4 Sofía Mancebo
25/06/2004 - 12:26 | Informe spam
Octavio, ya voy a probar lo que dices, pero de todas maneras, el código que
te mando me funciona perfectamente en los informes. El error me da solo
cuando hay un subinforme, eso es lo raro, porque parece que aunque en el
informe lo hace bien, hay que cambiar algo mas para que el subinforme
funcione.

Gracias de nuevo.
"Octavio Hernandez" escribió en el mensaje
news:
Sofía,

Dos ideas:

a) ¿Este código lo haz sacado de algún ejemplo de ellos o algo así? Mira
estas dos líneas:

TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
crTableLogonInfo = table.LogOnInfo;

Mi pregunta es: ¿pará qué construir un nuevo objeto TableLogOnInfo si
inmediatamente después se le asigna otro valor a la referencia? Algo no
parece estar bien.

b) Me parece recordar (no uso esto todos los días) que la clase
ReportDocument tiene un método SetDatabaseLogon(server, database, user,
password) que simplifica mucho estas cosas. Tal vez usando este método te
salga mucho más fácil.

Salu2 - Octavio

"Sofía Mancebo" escribió en el mensaje
news:
> Buenas tardes,
>
> Tengo un informe que accede a una base de datos y dentro de ese informe
> tengo un subinforme.
>
> Desde código le cambio la base de datos y el servidor que voy a


utilizar.
Si
> no utilizo el subinforme, funciona todo perfectamente, pero si le añado


un
> subinforme me da "Error al abrir un conjunto de filas"
>
> Utilizo lo siguiente para cambiar la base de datos y servidor del


informe
y
> subinforme:
>
> //Informe
>
> Report1 report=new Report1();
>
> foreach (Table table in report.Database.Tables)
>
> {
>
> TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();
>
> crTableLogonInfo=table.LogOnInfo;
>
> strTabla=crTableLogonInfo.TableName;
>
> crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";
>
>
crTableLogonInfo.ConnectionInfo.ServerName="Server";
>
> table.ApplyLogOnInfo(crTableLogonInfo);
>
> table.Location=strTabla;
>
> }
>
> //Subinforme
>
> ReportDocument subreport=new Report1 ().OpenSubreport("SubReport1");
>
> foreach (Table table in subreport.Database.Tables)
>
> {
>
> TableLogOnInfo crTableLogonInfo=new TableLogOnInfo();
>
> crTableLogonInfo=table.LogOnInfo;
>
> strTabla=crTableLogonInfo.TableName;
>
> crTableLogonInfo.ConnectionInfo.DatabaseName="DataBase";
>
>
crTableLogonInfo.ConnectionInfo.ServerName="Server";
>
> table.ApplyLogOnInfo(crTableLogonInfo);
>
> table.Location=strTabla;
>
> }
>
> Alguno sabéis cómo se puede solucionar esto. (Ya no se qué mas probar)
>
> Muchas gracias.
>
>


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