PDA

Ver la Versión Completa : Imagen en QRImage no se muestra completa


Mechita
11-12-2013, 15:22:34
Buenos Dias,

Tengo una aplicación de facturación electrónica, la impresión de dicha factura debe llevar un codigo de barras bidimensional; el problema es que no me muestra la imagen completa en qreport, aparece con una franja negra. La imagen la consulto de la bd, de un campo tipo image. Uso delphi 6. Lo hice primero con un QRDBImage ya que la imagen la traigo en una consulta de sql, pero resulta el mismo problema.

Espero puedan ayudarme,

Gracias, Saludos

ecfisa
11-12-2013, 17:56:12
Hola Mechita.

Sería bueno poder ver una instantánea de la salida, pero en principio, revisa que la propiedad Stretch en los componentes (QRImage/QRDBImage) tenga el valor True.

Saludos :)

Mechita
11-12-2013, 20:32:23
Hola ecfisa,

Ya eso lo he probado y persiste el problema. Adjunto envio la imagen como sale en el reporte.

Gracias

ecfisa
11-12-2013, 22:36:03
Hola Mechita.

La verdad que no se que te puede estar sucediendo, en mi caso funciona perfectamente:
http://imageshack.us/a/img571/4453/nea9.png

Tal vez si pudieras poner un enlace al archivo de imágen que te dá problemas (el original) podría probar con él...

Saludos :)

Héctor Randolph
12-12-2013, 01:16:16
Hola Mechita

Alguna vez tuve un problema similar y se debía a la configuración del motor de base de datos BDE.

Para solucionarlo cambié unos parámetros llamados BLOB_SIZE y BLOBS_TO_CACHE.

Si también estás utilizando BDE, intenta aumentando el valor de estos parámetros.

Entra en panel de control -> BDE Administrator. Configuration -> Drivers - Native y seleccionas de la lista el driver que estás utilizando.

Saludos

Mechita
12-12-2013, 16:05:44
Buenos Dias..

Héctor, probe lo que mencionas y nada, el problema persiste, igual gracias por el aporte

Ecfisa, la imagen me muestro en el reporte la estoy consultando desde bd, actualmente estoy usando un QRImage y no un QRDBImage (porque igual no funciona), el código que uso para mostrar la imagen es el siguiente:

En el evento BeforePrint,

oStream := busqueda.CreateBlobStream(Busqueda.FieldByName('cbb'), bmRead);
oStream.Seek(0, soFromBeginning);
QRImage2.Picture.Bitmap.LoadFromStream(oStream);
oStream.Free;

La imagen esta en un campo tipo Image (SQL Server) y esta bien generada porque al momento de hacerlo tambien la guardo en disco y visiblemente esta correcta, es de tipo bmp.

Gracias...

ecfisa
12-12-2013, 19:03:05
Hola Mechita.

Si las imágenes guardadas en la bd tienen formato BMP, no tendrías que tener ningún problema para mostrarlas de forma directa en un TQRDBImage con sólo asignar sus propiedades DataSet y DataField.
Pero no sucede lo mismo con otros formatos como JPG, al menos con la versión 7 de Delphi no conozco como cargarlas de forma directa en un TDBImage o TQRDBImage. Algo se habló en este enlace: Recorrer archivos de un directorio y mostrar graficos en miniaturas (http://www.clubdelphi.com/foros/showthread.php?t=78033).

Si deseas usar un TQRImage, de este modo tiene que funcionarte:

procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean);
begin
QRImage1.Picture.Bitmap.Assign(busqueda.FieldByName('cbb'));
end;


Saludos :)

Pd: Recordá poner las etiquetas tu_codigo cuando incluyas código Delphi en el mensaje.

Mechita
12-12-2013, 21:22:48
Hola ecfisa, intente como me dices y nada :(

De verdad, ya no se donde buscar...lei por alli que al parecer puede ser un bug de quickreport, pero ni idea de como solventarlo, la imagen sigue saliendo incompleta.

Muchas gracias por tus aportes...

Saludos

ecfisa
12-12-2013, 21:37:01
Hola Mechita.

Una consulta, ¿ No existe manera de que puedas hacerte de la imágen en cuestión fuera del campo de la base de datos ?, si pudieras sería muy fácil probar si presenta el problema cargándola desde el archivo.

Otra cosa que me gustaría ver es la definición del campo en la tabla y la parte del código donde se almacena la imágen. Tal vez el problema esté en el guardado y no en la visualización...

Saludos :)

Mechita
13-12-2013, 15:47:24
Hola ecfisa,

Sabes que intente colocar la imagen fija, osea seleccionandola de una direccion fisica, ya que la tengo guardada en disco y resulta que me dice Bitmap Image is not valid.

En la tabla el campo esta definido tipo Image.

La imagen se genera y almacena desde otra aplicacion desarrollada en c#.Net(esta aplicacion se ejecuta desde delphi), si pruebo mostrarla alli en un reporte, la consulta y muestra perfectamente, el problema esta es con delphi.

Saludos

ecfisa
13-12-2013, 16:56:13
Hola Mechita.
Hola ecfisa,

Sabes que intente colocar la imagen fija, osea seleccionandola de una direccion fisica, ya que la tengo guardada en disco y resulta que me dice Bitmap Image is not valid.

Por el error que mencionas, Delphi no puede interpretar el formato en que fue guardada esa imágen. Es lógico que no muestre la imágen, lo haga de forma incorrecta o incompleta.

No tengo idea en absoluto de .NET por lo que ignoro si observa compatibilidad con Delphi en este caso. Se me ocurre que podrías consultar este punto en el foro .NET (http://www.clubdelphi.com/foros/forumdisplay.php?f=17).

Saludos :)
.

Mechita
13-12-2013, 18:30:18
Ok, entiendo...

Ahora te pregunto, existe en delphi algun componente para generar un código de barras de ese tipo? Y poder guardar la imagen en la bd, para luego consultarla y mostrarla en el reporte?

ecfisa
13-12-2013, 18:51:52
Hola Mechita.

Revisa si encontras algo en estos enlaces:

Bar Codes (http://www.torry.net/pages.php?s=93)
Bar Codes 2d (http://delphi.about.com/z/js/o.htm?k=2d%20barcode&d=2D%20Barcode&r=http://delphi.about.com/b/2012/05/28/generating-qr-code-using-delphi.htm)
Zebra bar code reader (http://zebra.sourceforge.net/)
Barcode freeware component for Borland C++ Builder and Borland Delphi (http://stilius.net/tbarcode/)


Saludos :)

Mechita
13-12-2013, 19:08:24
Ok, muchas gracias por tu atención..

Saludos