Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problema Conexion a BD de Crystal Reports (https://www.clubdelphi.com/foros/showthread.php?t=40726)

radaalvaro 24-02-2007 22:27:16

Problema Conexion a BD de Crystal Reports
 
Queridos amigos.

Tengo un problema, que me me tiene el borde de la desesperación, hasta ahora no encontre solución. Procedo a explicarles.

Tengo un reporte en Crystal Reports que fue elaborado con una conexión estatica a tabla de una Base de Datos (Llamemos a la base de datos ABC). Hasta ahi, todo va de maravilla.

Bien, en mi programa quiero que ese reporte obtenga los datos de otra base de datos con la misma estructura. Pero lamentablemente no cambia la conexión hacia la nueva BD, y solo me muestra los datos de la BD en la que se diseño es decir ABC. adjunto a continuación el código que uso para hacer el cambio a la BD.

Código Delphi [-]
procedure MuestraReporte;
var 
  cryBase : CrystalDecisions.CrystalReports.Engine.Database;
  crytablas : CrystalDecisions.CrystalReports.Engine.Tables;
  crytabla : CrystalDecisions.CrystalReports.Engine.Table;
  crtablaobj : TObject;
  TablaInfo : CrystalDecisions.Shared.TableLogOnInfo;
  cnx : ConnectionInfo;
  cryDoc : CrystalDecisions.CrystalReports.Engine.ReportDocument;
Begin
  cnx := CrystalDecisions.shared.ConnectionInfo.Create;
  CryDoc := CrystalDecisions.CrystalReports.Engine.ReportDocument.Create;
  cryDoc.Load('Lista.rpt');
  cnx.DatabaseName := 'NuevoSP';
  cnx.ServerName := '.';
  cnx.UserID := 'sa';
  cnx.Password := 'sa';
  CryBase := cryDoc.Database;
  CryTablas := CryBase.Tables;

  for crtablaobj in crytablas do
  begin
    CryTabla := CrystalDecisions.CrystalReports.Engine.Table(crtablaobj);
    TablaInfo := Crytabla.LogOnInfo;
    TablaInfo.ConnectionInfo := Cnx;
    CryTabla.ApplyLogOnInfo(TablaInfo);
  end;

  CryDoc.Refresh;
  Crv.ReportSource := cryDoc;
  Crv.LogOnInfo.Item[0].ConnectionInfo.ServerName := '.';
  Crv.LogOnInfo.Item[0].ConnectionInfo.UserID := 'sa';
  Crv.LogOnInfo.Item[0].ConnectionInfo.password := 'sa';
  Crv.LogOnInfo.Item[0].ConnectionInfo.DataBaseName := 'NuevoSP';
  Crv.Refresh;
end;

Por cierto, no es el código más optimo, ya que se podria acortar mas, pero esta hecho para que simplemente funcione. Pero nada.

Si alguien tiene una idea de cual pueda ser el problema, le agradeceria mucho.

Y tambien les agradezco a todos los que lean este hilo, por su tiempo.

Saludos.


La franja horaria es GMT +2. Ahora son las 09:26:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi