![]() |
hacer mi programa ejecutable desde cualquier máquina Hola a todos: Llevo un tiempo ya intentando hacer un paquete de mi programa para que pueda funcionar en cualquier máquina pero no lo consigo... Cómo puedo saber qué archivos son los que debo incluir en la instalación?? He probado en diferentes pcs y aunque me dan muchos y variados errores entre ellos encuentro uno relacionado con crystal report y es que mi programa tiene un CRViewer... |
Hola Jennifer_munn, Verás, tendrías que añadir los reportes creados en el paquete. Desconozco que aplicación usas para generar un instalador... Saludos :) |
Uso el asistente para empaquetado y distribución de VBS, el reporte lo he generado con un diseñador desde el vb con lo que tengo creado un archivo .dsr el cual al realizar el paquete lo incluyo. Uno de los errores que me da es este "LOAD REPORT FAILED" y otro tiene algo que ver con el archivo craxdrt9.dll, en mi ordenador funciona perfecto y creo que es pq tengo instalado crystal report... |
es complicado hacer lo que quieres hacer .... yo lo intente durante un tiempo y me aburri pq el crystal report es muy poco portable, si es que no lo tienes instalado en el PC. |
Hola Jennifer_munn, ¿Qué versión tienes de Crystal Reports? Un beso |
Tengo Crystal Reports 9, y sino uso CR qué puedo usar? |
Bueno, hace tiempo que no toco el tema de Crystal Reports pero bueno yo lo que hacía es crear los informes desde el programa propio de Crystal y añadiendo la ruta donde está la base de datos. Luego en Visual Basic, añado una referencia Crystal Reports CR (creo recordar) y luego pongo la ruta donde está situado la base de datos, añado la consulta SQL y la formula de ordenación de resultados y me funcionaba sin problemas. Luego para empaquetar la aplicación, añado los archivos *.rpt (los informes) y luego las librerias .dll propias de Crystal (creo recordar que eran 2 archivos) y listo. Al final, tanto para XP como Windows 98 funciona correctamente, pero claro hay que hacer dos instaladores diferentes para cada sistema operativo... (algunos comentan que no funciona el empaquetador propio de VS6 en XP) pero hay varios instaladores como el InstallShield... Un saludo |
Pero el empaquetador de VS6 funciona en W98?? pq da problemas en XP?? Coincide que yo he probado en máquinas con XP, probé con otro instalador que me comentaron en su día, uno llamado Setup Factory pero con él tampoco iba... los dos archivos que yo incluyo de CR son craxdrt9.dll y crviewer9.dll al hacer el ejecutable me salen algunas advertencias que son estas: http://www.leia.es/foro/1.bmp http://www.leia.es/foro/2.bmp No entiendo bien qué es lo que me quieren decir y qué es lo que tengo que hacer, tal vez este sea el problema... |
echale un vistazo a esto. Por si acaso http://www.forosdelweb.com/f29/problema-con-crystal-193517/ |
Buenos días, A mí me iba perfectamente el empaquetador de vs6 tanto XP como 98 en una máquina "limpia", es decir, solo para programar y nada más, así no me da quebraderos de cabeza :-D . En cuanto a las capturas, pues a veces me aparecian pero no toqué nada, simplemente las acepté y nada más, sin problemas. Un saludo |
eso no me ha funcionado... |
Bueno, yo estuve una época usando Crystal Reports pero no había algunas funcionalidades que requerian el cliente, por lo tanto pasé a Word (exportando datos a un documento) y la verdad es que está muy bien porque el cliente puede modificar el documento cuando quiera después de generar un informe hecho en Word... quizás te valdría como una posible solución... Saludos |
Envío mi código por si con esto alguien me puede ayudar: Dim Report As New CrystalReport6 (CrystalReport6 es el .dsr, el archivo que he creado utilizando el diseñador de informes) Private Sub Form_Load() Report.DiscardSavedData If opcion <> "nuevo" Then MsgBox "Recuerde que se visualizará la última versión grabada de esta oferta." End If 'CRViewer91.RefreshEx True CRViewer91.EnableRefreshButton = True Screen.MousePointer = vbHourglass 'Dim ConnectionInfo As CRAXDDRT.ConnectionProperties Dim CPProperties As CRAXDDRT.ConnectionProperties Dim dbTable As CRAXDDRT.DatabaseTable Set dbTable = Report.Database.Tables(1) Set CPProperties = dbTable.ConnectionProperties CPProperties.Item("DSN").Value = "DIMO_SQL" CPProperties.Item("Database").Value = "BBDD CPProperties.Item("User ID").Value = "USER" CPProperties.Item("Password").Value = "PWD" '....... dbTable.TestConnectivity 'If Form4.Label2.Caption = 1 Then If Form1.CentroCoste_O.ListIndex <> -1 Then centrocoste = Form1.CentroCoste_O.ItemData(Form1.CentroCoste_O.L istIndex) Else centrocoste = Form1.CentroCoste_O.ItemData(centrocoste_rev) End If 'Else 'centrocoste = Form1.CentroCoste_O.ItemData(Form1.CentroCoste_O.L istIndex) 'End If centrocoste = Format(centrocoste, "00") 'MsgBox centrocoste codoferta = Mid(Form1.estado_O.Text, 1, 2) & "_" & Form1.num_O.Text & centrocoste 'MsgBox codoferta 'Report.SQLQueryString = "SELECT Ofertas.*, clientes.* FROM Ofertas INNER JOIN clientes ON Ofertas.codcliente = clientes.Codigo WHERE Ofertas.codoferta ='OM_000130'" Report.SQLQueryString = "SELECT clientes.*, Ofertas.*, personal.*, CentrosCoste.* FROM personal INNER JOIN Ofertas ON personal.id = Ofertas.ofertante INNER JOIN clientes ON Ofertas.codcliente = clientes.Codigo INNER JOIN CentrosCoste ON Ofertas.centrocoste = dbo.CentrosCoste.codigo COLLATE SQL_Latin1_General_CP1_CI_AS WHERE Ofertas.codoferta ='" & codoferta & "'" CRViewer91.ReportSource = Report CRViewer91.ViewReport CRViewer91.Zoom 84 Screen.MousePointer = vbDefault End Sub Private Sub Form_Resize() CRViewer91.Top = 0 CRViewer91.Left = 0 CRViewer91.Height = ScaleHeight CRViewer91.Width = ScaleWidth End Sub Snif... |
El código está bien, si tú dices que funciona desde la máquina que has desarrollado entonces estamos hablando de un problema de librerías... hay que registrarlas para que funcione correctamente en cualquiera máquina. Un saludo |
Korku lo del word no me importaría hacerlo pq veo practicamente imposible poder instalar esto en todas las máquinas que debo... Pero, cómo hago eso del word?? los datos los tengo que coger de una BBDD... |
Lo de Word no es complicado, simplemente es agregar una referencia a una libreria de Word (Ojo, para que funcione en la máquina tiene que tener instalada previamente el Microsoft Office y que sea la misma versión). Luego declaras una variable de objeto word. Para coger los datos de una base de datos, solo basta realizar un recordset... Mira yo no tengo el código en la mano pero si quieres dime tu e-mail por el privado y te lo mando esta noche sin problemas. Un saludo |
ok, así lo haré, muchísimas gracias, estaba ya desesperada por encontrar una solución a esto... |
No me las des hasta que encontremos la solución y que funcione correctamente :-D Besiños |
| La zona horaria es GMT -6. Ahora son las 13:57. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.