FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Marca de agua en una banda específica
Hola, gracias anticipadas por cualquier ayuda
Estoy intentando colocar una marca de agua en un QRBand ligado a un QRGroup. El problema lo tengo en que no hay un evento definido en las bandas que se ejecute por cada ves que se genera, o por lo menos no se actualiza la propiedad .TOP y la marca de agua se imprime en el mismo sitio quedando solo una. Quiero que dependiendo de un estatus de ese grupo se coloque una marca de agua, ahora solo cambio el color para diferenciarla del resto, pero me han solicitado que vea la posibilidad de hacer esto que intento, pero me he topado con ese detalle ¿cómo puedo variar el parámetro DestY en la función StretchDIBits y cómo automatizar la llamada de tal forma que puedan imprimirse tantas imágenes como se ocupen en su posición correcta? El código de la marca de agua es como todos los que circulan por este y otros foros: Código:
TRY bmp := TBitMap.Create; bmp.LoadFromFile(ExtractFilePath(Application.ExeName)+'no_autorizado.bmp'); with QuickRep1.QRPrinter do begin Y := YPos(PaperLengthValue) div 6; X := XPos(PaperWidthValue) div 4; R := Rect(X, Y, X*3, Trunc(Y*1.5)); Cnv:=Canvas; end; with bmp do begin GetDIBSizes(Handle, InfoSize, ImageSize); GetMem(Info, InfoSize); try Getmem(Image, ImageSize); try GetDIB(Handle, Palette, Info^,Image^); with Info^.bmiHeader do Begin StretchDIBits(Cnv.Handle, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, 0, 0, biWidth, biHeight, Image, Info^, DIB_RGB_COLORS, SRCAND ); End; finally FreeMem(Image, ImageSize); end; finally FreeMem(Info, InfoSize); end; end; FINALLY bmp.free END; PD. No se si esta pregunta ya este antes, he querido revisar las respuestas anteriores pero por alguna razón solo veo los temas nuevos, no he encontrado alguna nueva preferencia en mi panel de control para modificar esto. Última edición por cestradar fecha: 12-11-2009 a las 19:16:57. |
#2
|
||||
|
||||
Bueno supongo que estas trabajando con QuickReport, si es asi pues te cuento que apartir de la version 4 hacia adelante se puede poner una imagen de fondo, eso significa que tu imagen debe de estar ya bien configurada en tono,brillo,transparencia,etc para lo cual puedes editarla con cualquier programa tal como PothoShop,etc. En otras palabras tu imagen ya debe estar preparada es un archivo image(*.BMP,jpg) aunque no lo he probado con imagenes Jpg.
Bueno teniendo ya tu imagen lista en un archivo lo que se hace es lo siguiente: Cita:
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 13-11-2009 a las 14:18:07. Razón: Estética |
#3
|
|||
|
|||
Hola rgstuamigo, gracias por contestar.
Efectivamente trabajo con QR (de ahí el nombre de los objetos) pero lo hago con el que viene en Delphi 7, es decir la versión 3.0.9; nunca he intentado usar otra versión por que entiendo que ya sería de pago. Las intrucciones que colocas deduzco son para colocar una marca de agua al reporte, y ese no es el problema, el problema es que yo quiero la marca de agua en una banda específica. Imagina un reporte quickreport con una banda de agrupación y un detailBand ligado a esta y un footerBand ligado al detail (o a la agrupadora, da lo mismo), al general el reporte se generan N hojas con M números de grupos, bueno, quiero que cuando un grupo tenga cierto estatus, en la banda correspondiente a ese grupo se coloque una marca de agua. De momento solo coloreo la bada agrupadora dependiendo del estatus para diferenciarlo, pero como ya mencioné estoy analizando la posibilidad de todo el grupo presentarlo con una marca de agua. Puedo colocar tantas marcas de agua como llamadas haga al StretchDIBits del código que puse, y en la posición que manualmente coloque en sus parámetros. Aquí era la pregunta, ¿cómo saber las coordenadas en la página de cierta banda?, con eso podría automatizar ese dato, pero no hay evento que se ejecute por cada grupo generado. Quizá con un sumaryBand pero igual no tengo la posición de la banda agrupadora. Quizá simplemente no se puede |
#4
|
||||
|
||||
Lamentablemente los pasos que te he dicho es solo,como bien dije para versiones de Quick report desde la 4 hacia adelante(segun tengo entendido), si tuvieras estas versiones te ubiera dicho que intentes seguir los pasos que te habia puesto anteriromente con la diferencia que solo hagas transparente la banda en la que quieres que se visualize la imagen,desde luego deberias redimensionar el tamaño del QrImage al tamaño especifico de la banda y ubicarlo exactamente atras.
Pero como bien digo esto es solo para versiones a partir de la 4 hacia adelente; personalmete trabajo con la version 5.02 de Quick Report. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#5
|
|||
|
|||
Supongo que eso solo haría que se viera en todos los agrupamientos, como si fuera una marca de agua de reporte, y no es lo que necesito.
Es la misma banda, hacerla transparente no me serviría por que yo quiero que la marca de agua este en esa banda si y solo si un dato en específico vale algo. Por ello el interes de saber la posición en la hoja de la banda en el momento de esa condición. Igual, supongo no se puede. |
#6
|
||||
|
||||
Cita:
Saludos..
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Texto en el agua | vtdeleon | Noticias | 2 | 01-09-2006 14:18:00 |
Imprimir una página especifica | Alexander | Impresión | 0 | 10-07-2006 16:07:21 |
Utilizar Unidad Especifica | Jvilomar | OOP | 4 | 17-04-2006 15:55:47 |
Búsqueda muy específica en un string... | JuanBCT | Varios | 15 | 02-05-2005 14:58:00 |
marca de agua | davidgaldo | Impresión | 1 | 18-02-2004 12:47:28 |
|