Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2006
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Unhappy Supeposición de etiquetas cuando cambio la fuente en un QReport!

Hola, estoy muy perdido y abatido de probar cosas pero no consigo dar en la tecla. El problema es que tengo un reporte donde el usuario imprime etiquetas de precio de un listado de productos.
El reporte es más bien sencilla ya que solo tengo imprime de una tabla Productos los campos de Nombre, adicional e importe!!
El usuario, antes de previsualizar o imprimir el reporte, puede elegir las fuentes con que saldrán sus etiquetas. Estos es: con un "FontDialog" le permito cambiar la propiedad "Font" de los 3 componentes "QRDBText" del QuickReport. Aquí es donde se despelota todo, ya que no encuentro la forma de hacer de que estos 3 componentes se sitúen correctamente, ya que si el usuario selecciona una letra muy grande, las etiquetas se sobreescriben una encima del otro y no se mueven acorde crece el tamaño de letra por ejemplo.
La verdad que ya he probado con las propiedades "AutoSize", "AutoStretch" y hasta colocando una "ChildBand" como leí por ahí pero NO HE LOGRADO HACERLO!!
Me podrían dar una ayuda u orientarme a una mejor manera de hacer esto que en un principio me parecía muy sencillo y que ya me ha quitado el sueño
El reporte debería ser algo similar a esto:

Producto 1
Mini descripcion Producto 1
$ Precio Producto 1
----------------------------
Producto 2
Mini descripcion Producto 2
$ Precio Producto 2
---------------------------
.....
.....
Y así sucesivamente por cada producto del dataset.

Parece muy sencillo, pero si al cambiar la propiedad "Font" de la etiqueta que muestra el Nombre del producto por ejemplo, elegimos una fuente grande, la descripcion y/o el precio no se verán

Bueno, espero haberme explicado bien y que me puedan ayudar en esta difícil tarea que estoy metido.
Desde ya muchas gracias y saludos.

Ariel
Responder Con Cita
  #2  
Antiguo 24-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿Por qué no usas un qrDBMemo?

Usas la propiedad Dataset para indicar de donde vienen los datos.

En su interior pones:
Código:
Producto : {FieldProducto}
Descripción: {FieldDescripcion}
Precio: {FieldPrecio}
Lo que va entre llaves lo interpreta como nombres de campos del Dataset al que está asociado. El resto, es texto que se imprime tal y como aparece. Si un texto no cabe en una linea, automáticamente "empuja" el texto hacia abajo.

Creo que puedes ponerle Autosize y AutoStrech al Memo para que crezca/decrezca automáticamente.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 24-04-2006
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Cita:
Empezado por Lepe
¿Por qué no usas un qrDBMemo?

Usas la propiedad Dataset para indicar de donde vienen los datos.

En su interior pones:
Código:
Producto : {FieldProducto}
Descripción: {FieldDescripcion}
Precio: {FieldPrecio}
Lo que va entre llaves lo interpreta como nombres de campos del Dataset al que está asociado. El resto, es texto que se imprime tal y como aparece. Si un texto no cabe en una linea, automáticamente "empuja" el texto hacia abajo.

Creo que puedes ponerle Autosize y AutoStrech al Memo para que crezca/decrezca automáticamente.

Saludos
Hola, primero que nada, uso Delphi 7 y aunque instalé la paleta de QReport, no veo el componente QRDBMemo
Segundo, creo que el problema lo voy a seguir teniendo, ya que yo podría cambiar la propiedad "Font" pero de TODO el QRDBMemo y lo que yo necesito es asignar distintos "Fonts" a cada rengón! ¿Me explico?
Gracias de todas formas.
Responder Con Cita
  #4  
Antiguo 25-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Código Delphi [-]
unit LpFont;

interface

uses Graphics,sysutils, types,windows;


function FontHeight(const Fuente:TFont;const Texto:string):Integer;
function FontWidth(const Fuente:TFont;const Texto:string):Integer;

implementation

uses shellapi;


function FontWidth(const Fuente:TFont;const Texto:string):Integer;
var c:TCanvas;
begin
  try
    c:= TCanvas.Create;
    c.Handle := GetDC(0);

    c.Font.Assign(Fuente);
    Result := c.TextWidth(Texto);
  finally
    FreeAndNil(c);
  end;
end;

function FontHeight(const Fuente:TFont;const Texto:string):Integer;
var c:TCanvas;
begin
  try
    c:= TCanvas.Create;
    c.Handle := GetDC(0);

    c.Font.Assign(Fuente);
    Result := c.TextHeight(Texto);
  finally
    FreeAndNil(c);
  end;
end;
asignas el tamaño a los qrlabels y despues llamas a estas funciones para ver cuanto ocupan, así le das el tamaño.
Código Delphi [-]
  QRLABEL4.Font.Size := 23;
  QRLABEL4.Height := lpfont.FontHeight(QRLabel4.Font,qrlabel4.caption);
Puede que haya otra forma más fácil, pero no la he probado, esta forma la tenía más a mano .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 26-04-2006 a las 08:38:17.
Responder Con Cita
  #5  
Antiguo 26-04-2006
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Gracias por tu ayuda Lepe. Estoy intentando probarla y no sé ni siquiera dónde coloco el código que me pasastes y cómo lo aplico a mi ejemplo. Si puedieras darme una manito más te lo agradecería.
Primero que nada, la unit lpconstantes no la tengo y me da error. Cuando la saco, me compila bien pero no sé donde llamar o cómo usar las funciones que defines. ¿Qué es "lpfont" que usas en el ejemplo de uso de la función?
Muchas gracias por tu tiempo.
Ariel
Responder Con Cita
  #6  
Antiguo 26-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
lpFont.pas es la unidad donde tengo esas rutinas, puedes borrarlo con tranquilidad.

lpconstantes, es una unidad donde tengo definidas mis constantes, tampoco hacen falta.

Ambos fueron errores de copiar y pegar .

Añade esas rutinas a una unidad nueva, y despues incluyela en el "uses" de tu ventana para poder usarla.

Acabo de editar el mensaje anterior para añadir las 2 primeras líneas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 26-04-2006
arieliten arieliten is offline
Miembro
 
Registrado: mar 2005
Posts: 29
Poder: 0
arieliten Va por buen camino
Ok, muchas gracias Lepe. Estoy probando y al parecer me puede ser útil. Voy a seguir "jugando" un poco con estas rutinas a ver qué sale.
Gracias por tu tiempo nuevamente.

Ariel
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambio de fuente en Windows Javi2 Varios 1 22-04-2005 11:43:15
Problema cuando cambio la dimension de un campo Durbed Firebird e Interbase 1 06-04-2005 14:21:25
Cambio de Fuente buitrago_listas Varios 1 02-11-2004 17:06:33
problemas con Qreport despues de cambio de mother chuley Impresión 2 04-06-2004 14:15:10
cuando cambio la resolución... DarkFilter Varios 2 01-05-2004 08:31:29


La franja horaria es GMT +2. Ahora son las 04:44:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi