Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[VB] VB6 Crystal 11

Participa en el tema [VB] VB6 Crystal 11 en el foro Programación.
Hola a Todos, Estoy usando Crystal Reports 11 en aplicaciones VB6. Todo bien hasta que ...

Buscar en este tema:
 
  •  
    #1 [VB] VB6 Crystal 11
    Hola a Todos,

    Estoy usando Crystal Reports 11 en aplicaciones VB6.
    Todo bien hasta que tengo que parametrizar los reportes.
    Alguien ha logrado pasarle un ADODB Recordest a un reporte en tiempo de ejecuciòn?

    Tengo el Recordset cargado que trae datos de muchas tablas ( Inner Joins) y muchos registros.
    Ademàs viene con selecciones de fechas por el usuario, por lo tanto no lo puedo hacer en diseño.

    He intentado pasarle el recordset al reporte sin ningùn resultado.
    Alguien ya pasò por esto?

    Saludos y Gracias,
    Marcelo.
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: VB6 Crystal 11

    Lo que tenés que hacer es darle al Crystal una query (cualquiera) que devuelva las mismas columnas que tiene el recordset (?) (no estoy muy al tanto de la terminología VB6, sólo uso Crystal, pero espero que se entienda).

    O sea, si en VB armás la query con, digamos, "SELECT * FROM pirulo WHERE fecha > " & fecha1, en Crystal sólo poné "SELECT * FROM pirulo WHERE fecha > to_date('1-Jan-2000')", o cualquier otro valor. O directamente "SELECT * FROM pirulo". La idea es que las columnas sean las mismas, para que el Crystal pueda saber el tipo de dato de cada campo. El resto no importa.

    Espero que te sirva; capaz entendí el problema completamente al revés
    Me gusta este mensaje
  • #3 Re: VB6 Crystal 11

    Hola pangus,
    Gracias por tu respuesta.
    Eso lo entiendo.
    Yo ya tengo el recordset que se llama datos.
    La pregunta es: Como le digo a Crystal XI que use los campos que tengo en el recordset que se llama datos?

    Saludos,
    MArcelo.
    Me gusta este mensaje
  • #4 Re: VB6 Crystal 11

    A ver... tu recordset que se llama datos lo obtuviste enviando una query a la base de datos, ¿no? En el Crystal tenés que poner una query (la misma) que devuelva los mismos campos. Te voy a explicar cómo hago yo (en Crystal 10, DB Oracle), quizás puedas adaptarlo a tu caso: arranco el Crystal, elejo Blank report, le doy clic en Create New Connection, le doy al [+] de OLE DB (ADO), elejo Microsoft OLE DB Provider for Oracle, Next >, pongo los datos, Next >, Finish... y ahí me aparece una ventanita con dos recuadros. Hago doble clic en "Add Command" en la de la izquierda, y ahí meto la query.

    Después de darle OK, el Crystal ya tiene todos los campos que voy a usar y puedo diseñar el reporte.

    Espero que te sirva; no soy experto en Crystal y este es la única forma de usarlo con ADO que conozco. Suerte.
    Me gusta este mensaje
  • #5 Re: VB6 Crystal 11

    Hola pangus,

    Es correcto lo que me decís, pero no puedo ingresar la consulta en Crystal, dado que nunca es la misma, porque cambia la BD a la que me conecto, cambia el rango de fechas de la consulta, y un código.
    Todos estos datos son ingresados en VB6 por el usuario, por lo tanto no puedo dejar la consulta hecha, ya que los datos cambian cada vez que se usa.

    Que puedo hacer?

    Saludos y Gracias,
    Marcelo.
    Me gusta este mensaje
  • #6 Re: VB6 Crystal 11

    Eso es lo que te decía en la primera respuesta: a la parte de la consulta parametrizada ponele cualquier valor (o sacale directamente esa condición). O sea, si en VB tenés, por ejemplo,

    sql = "SELECT a, b, c FROM pirulo WHERE fecha > " & fecha1

    en la consulta del Crystal ponés

    SELECT a, b, c FROM pirulo WHERE fecha > to_date('1-Jan-2000')

    ¿entendés? Cualquier valor. Lo importante es que el Crystal sepa qué campos y tablas se utilizan, nada más. El Crystal NO va a usar esa consulta en tiempo de ejecución, es (repito) sólo para diseñar. Los datos reales los va a obtener de tu recordset "datos" cuando hagas “report.Database.SetDataSource datos” (o algo así; lo acabo de ver en internet ;-).

    Saludos.
    Me gusta este mensaje
  • #7 Re: VB6 Crystal 11

    Ah,
    Entiendo pangus,
    Muchas Gracias,
    Lo pruebo y te cuento.
    Un abrazo y Gracias Nuevamente.

    Saludos,
    Marcelo.
    Me gusta este mensaje
  • #8 Re: VB6 Crystal 11

    Hola Pangus,
    Lo solucioné de la siguiente manera:
    Creé un Archivo TTF en Crystal de Definiciones de Campos.
    Puse cada campo del Recordset con el mismo nombre que estaban en el Recordset.
    Hice CRREP.DATABASE.DATASOURCE miRecordset
    Y todo empezó a funcionar espectaularmente.

    Te quiero agradecer mucho tu ayuda, porque fuiste quien me guió a la solución.
    Te hago otra pregunta.
    Como le paso el Título del Reporte desde VB6?

    Desde ya muchas Gracias,
    Saludos,
    Marcelo.
    Me gusta este mensaje
  • #9 Re: VB6 Crystal 11

    Me alegro de haberte ayudado, aunque fuera de refilón. Es evidente que usamos Crystal de distinta manera. Hasta ahora nunca había oído nombrar a los archivos TTF de definiciones de campos (?), por ejemplo.

    Volviendo a tu consulta, yo lo que haría es crear un campo parámetro (los que se referencian así: {?campo}), usarlo para el título y pasarle el valor desde el VB. Sobre esto último (la parte VB) no tengo mucha idea; creo que el método es ParameterFieldDefinition, pero quizás haya otro.

    http://www.google.com/search?hl=en&q...nition+crystal

    Suerte.
    Me gusta este mensaje
  • #10 Re: VB6 Crystal 11

    Pregunta, como haces despues del lado del cliente... instalas el CR11 completo?
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 9 RESPUESTAS
  • 2214 VISTAS
  • 3 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB