Power Builder - Power Builder 12.6 y Crystal Report 9 y 11

 
Vista:

Power Builder 12.6 y Crystal Report 9 y 11

Publicado por Eduardo (17 intervenciones) el 26/12/2019 22:10:53
Estimados

Que tal, quiero utilizar crystal report con power builder pero cuando ejecuto el programa me sale el siguiente error:

Application terminated.
Error: Error calling external object function openreport at line 8 in clicked event

cuando me conecto con el ConnectToNewObject me sale ok
pero cuando quiero abrir el reporte con OpenReport es que me sale el error

¿que me estará faltando?

Agradezco de antemano sus respuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo Daniel A.
Val: 817
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Power Builder 12.6 y Crystal Report 9 y 11

Publicado por Leonardo Daniel A. (360 intervenciones) el 27/12/2019 16:40:38
mm siglos que use CR, pero que no se inserta el control ActiveX(OCX) en una ventana y ahi manipulas las propiedades

suponiendo que le llames Ole_report a control

ole_report.Object.Propiedad_que_deseas = tal_cosa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder 12.6 y Crystal Report 9 y 11

Publicado por antonio (1239 intervenciones) el 03/01/2020 00:49:13
Hola Eduardo:

Yo lo resolví instalando completamente el Crystal Reports, es algo tedioso pero funciona, yo utilizo al XI.

y tambien detecte que algunos datos cuando se envía sin valor o un valor de texo sin datos mandaba ese error.

Lo otro es que si quieres mandar datos a un campo o variable a Crystal debe saber como lo recibe ó a veces el nombre de la variable o campo de Crystal no es el mismo al que estas indicando por código.

Si pones un ejemplo de como lo realizas por PB te puedo apoyar.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder 12.6 y Crystal Report 9 y 11

Publicado por Eduardo (17 intervenciones) el 04/01/2020 15:11:08
Hola Antonio

Lo que hago primero es crear variables globales

OLEObject g_ole_crx_application
OLEObject g_ole_crx_report
string gs_rpt_filename
integer gi_return

luego en una ventana inserto un objeto OLE control de tipo "Crystal Activex report viewer control 11.5"

tengo un botón donde pruebo la conexión y me sale OK

g_ole_crx_application = CREATE OLEObject
gi_return = g_ole_crx_application.ConnectToNewObject('CrystalRuntime.Application.11.5')
if gi_return < 0 then
MessageBox("Error", "Did not connect to Crystal Application Object")
return
else
messagebox('conectar','conexion ok')
end if

luego tengo otro botón donde intento pegarle un reporte que no tiene argumentos pero es ahi donde me sale el error

int li_rtn
any la_valor
OLEObject g_ole_crx_report
g_ole_crx_report= CREATE OLEObject
la_valor=g_ole_crx_report.OpenReport("C:\ C:\GODO\cr\pie.rpt", 1)
ole_1.Object.ReportSource=la_valor
ole_1.Object.ViewReport()

El error es que no reconoce la funcion OpenReport porque aparentemente no esta linkeada alguna libreria. Explorando las funciones del objeto OLE no se encuentra esta función. ¿Sabe alguien como referencio a la libreria correcta o en que libreria se encuentra esta función?
el error exacto es el siguiente:

Application terminated.
Error: Error calling external object function openreport at line 20 in clicked event of object cb_2 of w_v1.



Tengo instalado el crystal report XI (11.5)
He probado en powerbuilder 9 y powerbuilder 12.5
Tengo sistema operativo window 10

Por favor su ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder 12.6 y Crystal Report 9 y 11

Publicado por antonio (1239 intervenciones) el 04/01/2020 19:29:03
Hola Eduardo:

Mira, yo lo que hice es lo siguiente:

Instale a Crystal mi máquina, despues en PB en una ventana inserte un objeto OLE, busque el OCX de crystal y se agrego en la ventana. El OCX mi caso, se agregue el que dice Crystal ActiveX Report Viewer control, ya agregado en mi ventana en el evento open realizo lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Declara los objetos de Crystal
 
Integer nReturn
OLEObject OLEAplicacion,OLEReporte,OLEInfoConexion,OLEExportacion,OLEDatabaseTable,OLEDatabase
 
// Crea el objecto y determina si se conecta o no
 
 OLEAplicacion = create OLEObject
	nReturn = OLEAplicacion.ConnectToNewObject('CrystalRuntime.Application.11')
 
		 if nReturn < 0 then
			 MessageBox("Error "+String(nReturn), "No se puede iniciar el Crystal Reports~n" + &
			 "Favor de comunicarse a Sistemas",Information!)
			 return
		 end if
 
 OLEExportacion = create OLEObject
 OLEDatabaseTable = create OLEObject
 OLEDatabase = create OLEObject
 
 // la variable sArchivoRPT contiene la ruta y nombre del archivo RPT
 
OLEAplicacion = OLEAplicacion.OpenReport(sArchivoRPT, 1)
 
	OLEDatabase = OLEAplicacion.DataBase
		 OLEDatabaseTable = OLEDatabase.Tables
			 OLEInfoConexion = OLEAplicacion.database.tables[1].ConnectionProperties
				OLEInfoConexion.deleteAll
				OLEExportacion = OLEAplicacion.ExportOptions
			OLEInfoConexion.add("DSN", 'NOMBRE DE TU DNS')
		OLEInfoConexion.add("Database", 'NOMBRE DE BASE DE DATOS')
	OLEInfoConexion.add("User ID", "USUARIO")
OLEInfoConexion.add("Password", "PASSWORD")
 
// Aquí envío los valores a los campos de crystal en unas variables
OLEAplicacion.ParameterFields.GetItemByName("@Cliente").AddCurrentValue(sCliente)
	OLEAplicacion.ParameterFields.GetItemByName("@Factura").AddCurrentValue(isFactura)
		OLEAplicacion.ParameterFields.GetItemByName("@Folio").AddCurrentValue(isFactura)
 
 
ole_factura.object.ReportSource(OLEAplicacion)
	 ole_factura.object.EnableExportButton = false
			ole_factura.object.EnableRefreshButton = false
				ole_factura.object.EnableZoomControl = false
					 ole_factura.object.EnableAnimationCtrl = False
						 ole_factura.object.EnablePopupMenu = false
					 ole_factura.object.EnableProgressControl = true
				 ole_factura.object.EnableDrillDown = True
			 ole_factura.object.EnableGroupTree = false
		 ole_factura.object.DisplayGroupTree = false
	ole_factura.object.ViewReport()
ole_factura.object.Refresh()
 
// Otros atributos que debes tomar en cuenta de acuerdo a tus necesidades
// sPDF lleva la ruta y nombre del PDF a exportar
 
OLEExportacion.DiskFileName = sPDF // Indica la ruta y nombre del archivo PDF tal y como se guardara
	OLEExportacion.DestinationType = 1 // Indica que es en la unidad C:
		OLEExportacion.FormatType = 31 // Indica que el formato es PDF
			OLEExportacion.PDFExportAllPages = True // Indica que imprima todas las hojas
				OLEAplicacion.Export(false) // exporta, valor FALSE indica que no pida la ruta manualmente
 
 
Destroy OLEExportacion;
	Destroy OLEDatabaseTable;
		Destroy OLEDatabase;
			Destroy OLEExportacion;

ole_factura, es el objeto que incruste en la ventana y le puse ese nombre

Es muy importante mencionarte que en este ejemplo, se conecta a una base de datos y esta conexión deberá estar ya codificada en el archivo de Crystal Reports ya que aparte de que se envía datos a ciertos campos, tambien recupera información de la base de datos.

Espero que este ejemplo te ayude o por lo menos que te de una idea de como trabajar con Crystal Reports.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder 12.6 y Crystal Report 9 y 11

Publicado por Eduardo (17 intervenciones) el 06/01/2020 17:57:56
Antonio

Gracias, al fin pude conectarme.
pero aun tengo una duda....¿conoces las propiedades para que solo se vea el reporte?. ocultando la barra de tareas.y la pestaña "vista previa". Quiero mostrar solo el gráfico. ¿es posible hacer eso?



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Power Builder 12.6 y Crystal Report 9 y 11

Publicado por antonio (1239 intervenciones) el 06/01/2020 21:17:26
Hola Eduardo:


Esa parte por mas que intente ocultarla no pude...


Lo siento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar