Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/04/2005, 15:12
Bebecita
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 20 años
Puntos: 0
Reporte Crystal Report

Hola xochitemol, aqui te explico el codigo, espero me puedas entender
a mi tambien me costo entender que es lo que exactamente hacia

Primero que todo, esta es una forma de enlazar un reporte que ya tienes hecho con el crystal report sin necesidad de incluirlo en tu proyecto visual basic
Funciona usando Crystal Report 9 y agregando un control CRViewer9

No se te olvide, debes agregar las referencias:
Crystal Reports 9 ActiveX Designer Design and Runtime Library (CRAXDDRT.DLL)
Crystal Report Viewer Control 9
y el Control: Crystal Report Viewer Control 9 (CRViewer9)

En un form Agregas el CRViewer9, que en este caso se llama CRViewer1

Código:
Option Explicit
Dim m_Application As New CRAXDDRT.Application 'Crea  una nueva instancia de la aplicacion  
Dim m_Report As CRAXDDRT.Report 	      'Declara  una variable tipo Reporte 
Dim FileReport As String	'Declara la variable que tendra el nombre del reporte

Dim CPProp As CRAXDRT.ConnectionProperty      'Declara una Variable para manipular las propiedadedes de conexion a la base de datos (User ID, Password,...)	
Dim DBTabl As CRAXDRT.DatabaseTable	      'Declara una variable 
para manipular las tablas de la base de datos

Private Sub Form_Load() 
	FileReport = App.Path & "\Reporte.rpt" 'Asignas el reporte que quieres mostrar
	Set m_Report = Nothing
	Set m_Report = m_Application.OpenReport(FileReport, 1)  
	'Abre el reporte  asignado en FileReport
	'el valor 1 indica que abriras el reporte como una copia temporal 
	'en este caso podras abrir el reporte simultaneamente tantas veces quieras
	'Si lo dejas en blanco o indica el valor 0 entonces el reporte se abrira en forma exclusiva
	'es decir, mas nadie podra visualizarlo hasta que cierres el reporte

	Set DBTabl = m_Report.Database.Tables(1)   	    'Obtiene la primera Tabla del reporte
	DBTabl.Location = DirDataBase                         'Establece la nueva ubicacion de la Base de Datos
	
	CRViewer1.ReportSource = m_Report	'Le asignas a control CRViewer1 el reporte que personalizamos
	CRViewer1.Zoom 1                           'Poner el zoom del reporte a tamaño real
	CRViewer1.ViewReport                      'Mostrar el reporte
End Sub

No me habia dado cuenta pero la linea, Dim CPProp As CRAXDRT.ConnectionProperty, no cumple niguna función pero se pudiera utilizar de esta forma:

Reemplaza estas lineas
Código:
Set DBTabl = m_Report.Database.Tables(1)   	    'Obtiene la primera Tabla del reporte
DBTabl.Location = DirDataBase                       'Establece la nueva ubicacion de la Base de Datos
y coloca estas
Código:
Set CPProp = DBTabl.ConnectionProperties("Database Name")  'Obtenemos el nombre de la base de datos
CPProp.Value = FileReport 				  'Le asignas la nueva ubicacion de la base de datos

Espero que te ayude