FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Migración QReport 3 a QReport 6
Buenos días a todos, hacía mucho que no pasaba por aquí.
Estoy migrando una aplicación desde Delphi 7 a Delphi 10.2.3 Tokyo. Os pongo primero en antecendentes, conseguí migrar dicha aplicación a Delphi XE7, compilada perfectamente (con el QuickReport 5.05). Ahora la empresa para la que trabajo ha comprado la versión 10.2.3 y ando en la migración (que no debería dar ningún problema, excepto algunos componentes nuevos...). Todos los componentes de terceros están instalados y migrados (los gratuitos y antiguos que vienen desde D7) correctamente (de hecho los he probado en aplicaciones independientes). El problema me surge a la hora de compilar, me lleva a la unit qrpcontrols y me da un error de incompatibilidad de tipos. Lo raro es que la incompatibilidad de tipos que me da es "TField" y "TBlobField", aquí me descuadra todo porque un "TBlobField" hereda de "TField". Este código me compila y entra en el IF correspondiente sin problemas:
Pues en la unit de qrpcontrols me da el error en esta parte:
Os pongo la clase TQRPDBImage:
Hereda de esta que está en la unit QRCtrls:
Estas funciones son idénticas y no han cambiado nada en QuickReport 5.05 y en XE7 funciona. Me estoy volviendo un poco loco Gracias de antemano. |
#2
|
||||
|
||||
Hola, ¿puedes copiar y pegar el mensaje del error?
¿Has mirado en la web de qreport por si tienen alguna información al respecto? Saludos. |
#3
|
|||
|
|||
Buenas Casimiro,
Por supuesto! Código:
[dcc32 Error] qrpctrls.pas(555): E2010 Incompatible types: 'TField' and 'TBlobField' Al final desinstalaré el IDE y volveré a instalar todo como siga así jeje. Gracias! |
#4
|
||||
|
||||
¿Será porque no encuentra datafield?
Al ser un string, lo mismo, al cambiar la versión de delphi, deberías usar ansistring, por el tema de unicode. |
#5
|
|||
|
|||
Cita:
Por eso decía que me está volviendo un poco loco. |
#6
|
||||
|
||||
No recuerdo si el cambio de unicode fue en xe7, por eso lo comento.
|
#7
|
|||
|
|||
Vino antes sí. Menudo jaleo jeje
|
#8
|
||||
|
||||
¿Has probado a poner un cast( ... ) as blobfield, por si acaso?
|
#9
|
|||
|
|||
No tiene mucho sentido puesto que lo que busca la sentencia es que si el campo que se le pasa y que devuelve el método "FindField" del objeto TDataset no es de tipo TBlobField, vendrá una ruta y si existe el archivo que lo cargue en el componente, sino que cargue la imagen directamente de la BB.DD.
A parte de que, supongo, debería dar algún error en ejecución.
Eso me funciona en código aparte en una unit de prueba mía. |
#10
|
||||
|
||||
Por probar, inserta tu código de ejemplo dentro de esa parte de TQRPDBImage.LoadPicture, a ver si se "lo traga", o da el mismo error.
|
#11
|
|||
|
|||
Cita:
He probado lo que me has dicho, y sí me lo traga. Ahora ya si que me vuelvo más loco !! También he probado a desinstalar todo el IDE y los componentes y reinstalarlos de cero, pero nada... |
#12
|
||||
|
||||
Cita:
Te lo podías haber ahorrado |
#13
|
|||
|
|||
¡Y tanto que me lo podía haber ahorrado! Este es el código sin modificar: Y este es el código modificado:
Solo me da error en el segundo IF NOT, vamos donde me daba antes siendo la condición idéntica. Lo único que se me ocurre es que DataSet es una propiedad del objeto TQRPDBImage de tipo TDataSet (vamos lo mismo) y que se esté haciendo la picha un lío... |
#14
|
||||
|
||||
¿No tienes acceso al fuente para ver de qué hereda ese dataset?
|
#15
|
|||
|
|||
Sí, sí, es un TDataSet de la unit DB...
|
#16
|
||||
|
||||
Bueno, ¿y el blobfield de dónde viene, lo has mirado?
|
#17
|
|||
|
|||
Exactamente igual, DB...
|
#18
|
||||
|
||||
¿Pero del mismo db y tipo?
Es que algo tiene que haber diferente, no puede ser que uno vaya bien y el otro no, así que la diferencia es del tipo que heredan. |
#19
|
|||
|
|||
Cita:
Esto es una locura, al final quitaré los más de cincuenta informes de la aplicación y los reharé más adelante, sino queda otra... EDITO: el anterior error sobre TField y TBlobField también heredan de la misma unit. En algún lado se está quedando gilip***** |
#20
|
||||
|
||||
Un momento, es que db no es lo mismo que data.db
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
qreport While . do | shoulder | Impresión | 3 | 12-11-2012 01:11:07 |
Actualización QReport 3.5 a Qreport 4 o posteriores | Jab | Impresión | 3 | 24-08-2010 12:33:20 |
QReport | Iris04 | Impresión | 0 | 24-06-2005 14:27:01 |
QReport | Letty | Impresión | 5 | 23-02-2004 22:43:27 |
QReport | pablo | Impresión | 1 | 03-11-2003 05:07:19 |
|