Autor Tema: Crystal Reports Table.Location  (Leído 3116 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Crystal Reports Table.Location
« en: Junio 03, 2013, 04:53:06 pm »
Buenas, tengo una consulta, aca usamos el crystal reports y una de las cosas que se hacen por codigo es iterar a travez de las tablas del reporte y modificar el parametro "Location", esto se hace porque algunos reportes tienen la consulta armada dentro (no usan SP) y es necesario modificar la base a la hacen referencia, el problema que estoy teniendo es que al estblecer la propiedad "Location" el crystal hace una verificacion, esto cuando se hace con un SP provoca que l mismo se ejecute sin parametros y posteriormente el reporte se cargue vacio.

No se si alguno vio este comportamiento antes, actualmente utilizamos crystal 9 y sql server 2008 (modo 100), en otras configuraciones no da problemas por ejemplo al correrlo con una DB 2000 (modo 80). Alguien tiene idea de como hacer que el "Location" no llame al SP? o una manera alternativa de modificar el parametro?


Gracias

Edito:
Aca encontre un codigo similar al que usamos.

Código: [Seleccionar]
        Dim table As Table

        For Each table In myRpt.Database.Tables
            logonInfo = table.LogOnInfo
            logonInfo.ConnectionInfo.ServerName = Server
            logonInfo.ConnectionInfo.DatabaseName = Database
            logonInfo.ConnectionInfo.UserID = username
            logonInfo.ConnectionInfo.Password = password
            table.ApplyLogOnInfo(logonInfo)
            'Previously in VS2003, table.Location would report "DATABASE.dbo.NAME"  -
            'and it was possible to use this to change the Location, but in vs2005 table.
            'Location only reports back the NAME.  See below for a fix.
            'http://vstoolsforum.com/blogs/crystal_reports/archive/2007/06.aspx
            table.Location = Database & ".dbo." & table.Name <---------- al hacer esto, si el reporte tiene un SP el mismo es ejecutado sin parametros.
        Next table
« última modificación: Junio 03, 2013, 05:06:15 pm por cobein »

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Crystal Reports Table.Location
« Respuesta #1 en: Junio 04, 2013, 12:05:27 am »
Cobein, que tal...

Fijate, en el tiempo que tengo trabajando con reportes y con SQL Server, lo mejor es:

1ero. Realizar un ODBC para habilitar la conexion con la BD del servidor SQL.
2do. Cargar dicho ODBC en tu reporte.

De cierta forma con esto evitamos que se tenga que modificar el Location. Al menos a mi no se me ha generado la necesidad, anteriormente si la tuve, cuando usaba access y lanzaba la conexion directa al reporte sin usar ODBC.

Usando un ODBC le puedes pasar al reporte un SP, una tabla, una vista, lo que sea... Creas los parametros, luego indicas a que campos van asociados los parametros colocados en el reporte y listo. El mismo se ejecuta sin problemas.

Saludos
Miguel Núñez.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Crystal Reports Table.Location
« Respuesta #2 en: Junio 04, 2013, 07:57:12 pm »
Al final decidi arreglar los Sp, por lo que lei el Crystal siempre ejecuta el SP al modificar el Location, es para poder ver las columas que retorna el mismo. Asi que simplemente modifique el SP para que cuando sea llamado sin parametros devuelva el esquema de datos.


Garcias