Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   hacer mi programa ejecutable desde cualquier máquina (http://www.forosdelweb.com/f69/hacer-mi-programa-ejecutable-desde-cualquier-maquina-440701/)

Jennifer_munn 06/11/2006 06:05

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...

Korku 06/11/2006 06:10

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 :)

Jennifer_munn 06/11/2006 08:26

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...

Hell08 06/11/2006 09:02

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.

Korku 06/11/2006 09:03

Hola Jennifer_munn,

¿Qué versión tienes de Crystal Reports?

Un beso

Jennifer_munn 06/11/2006 10:00

Tengo Crystal Reports 9, y sino uso CR qué puedo usar?

Korku 06/11/2006 10:19

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

Jennifer_munn 07/11/2006 01:41

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...

izar 07/11/2006 02:22

echale un vistazo a esto. Por si acaso http://www.forosdelweb.com/f29/problema-con-crystal-193517/

Korku 07/11/2006 02:41

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

Jennifer_munn 07/11/2006 03:01

eso no me ha funcionado...

Korku 07/11/2006 03:10

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

Jennifer_munn 07/11/2006 03:15

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...

Korku 07/11/2006 03:18

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

Jennifer_munn 07/11/2006 03:18

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...

Korku 07/11/2006 03:25

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

Jennifer_munn 07/11/2006 03:30

ok, así lo haré, muchísimas gracias, estaba ya desesperada por encontrar una solución a esto...

Korku 07/11/2006 03:35

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.