Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Altura de bandas en QR 3

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Altura de bandas en QR 3 Responder citando

Tengo un informe hecho en QR 3 y en un de las bandas hay unos campos TQRMemo en los que añado una serie de líneas según me hace falta. Bien; me gustaría poder ajustar la altura de la banda que los contiene en función de las líneas de dichos campos memo. estoy usando esto:
Código:
QRMemo1->Height = 15 * QRMemo1->Lines->Count;
QRBand1->Height = QRMemo1->Height;
QRBand1->Refresh();

Sin embargo no consigo que se expanda la banda hasta donde me hace falta. ¿Alguna sugerencia?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

No te sirve poner la propiedad "AutoStretch" del QRMemo a 'true'?

En caso de que no te sirva, en que evento (o en que otro sitio) estas poniendo las líneas que muestras mas arriba?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

_Leo escribió:
No te sirve poner la propiedad "AutoStretch" del QRMemo a 'true'?

En caso de que no te sirva, en que evento (o en que otro sitio) estas poniendo las líneas que muestras mas arriba?

El problema principal no es tanto el QRMemo como el QRBand. Con AutoStretch si se me ajusta la altura del QRMemo, pero lo que no consigo ajustar es la banda. El código lo estoy poniendo en OnBeforePrint de la banda.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

A mi si me modifica la altura lo que pones, no la ajusta con precision, pero eso se puede resolver.

El problema es que ignora el ajuste que haces de la altura? o que no la ajusta con la precisión que quieres?

Lo he probado con el BCB4 y el 6 (creo que tu utilizas la 5, pero no la tengo, aunque si funciona en la 4 y la 6 debería ser lo mismo en la 5). Lo he probado con el QuickReport que lleva cada una de ellas de fabrica.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Ignora el ajuste que hago y mantiene la altura que s efija en el momento del diseño. La banda la uso apra mostrar un resumen del listado generado.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Como rellenas el QRMemo? que código usas? para poder probarlo lo mas parecido posible.

Te aparece todo el contenido en una línea larga? o se parte correctamente en líneas?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

La información se muestra bien, cada línea con su registro pero no me expande la banda para que entre todo el QRMemo. El código es este:
Código:
qResumen->Close();
qResumen->SQL->Text = "SELECT COUNT(*) Fichas, Sexo FROM 'Persona.db' GROUP BY Sexo ORDER BY Sexo";
qResumen->ParamByName("CodPrv")->AsString = cProvincia;
qResumen->Open();

for (; !qResumen->Eof; qResumen->Next())
{
     QRMemo1->Lines->Add(iif(qResumen->FieldByName("Sexo")->AsInteger == 0, "Mujeres", "Varones"));
     QRMemo2->Lines->Add(FormatFloat("###,##0", qResumen->FieldByName("Fichas")->AsInteger));
}
QRBand1->Height = 15 * QRMemo1->Lines->Count;
QRBand1->Refresh();

La función iif viene como las librerias Indy. Supongo que sabrás lo que hace.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Antes de probar ninguna otra cosa y para no perder el tiempo con otras pruebas.. añade solo la siguiente linea en el BeforePrint de la banda:

QRBand1->Height = 200;

Y fíjate si cambia realmente la altura de la banda, a mi si me la cambia tanto en el BCB4 como en el 6 que son en los que he probado.

La banda presupongo que es de tipo 'Detail'.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

_Leo escribió:
Antes de probar ninguna otra cosa y para no perder el tiempo con otras pruebas.. añade solo la siguiente linea en el BeforePrint de la banda:

QRBand1->Height = 200;

Y fíjate si cambia realmente la altura de la banda, a mi si me la cambia tanto en el BCB4 como en el 6 que son en los que he probado.

La banda presupongo que es de tipo 'Detail'.

Si, es de tipo Detail. Haré la prueba y te diré como ha ido.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hecha la prueba, y efectivamente me reajusta la banda. En diseño puse 155 de altura y al incluir la línea que sugieres sale esto:
.
Seguiré probando.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Yo estoy probando con lo siguiente en el BeforePrint de la banda y me funciona correctamente y con la precisión necesaria sin importar la fuente y el tamaño que se utilice en el QRMemo. Por si quieres probarlo a ver que tal te va:
Código:
    QRMemo1->Lines->Add("uno");
    QRMemo1->Lines->Add("dos");
    QRMemo1->Lines->Add("tres");
    QRMemo1->Lines->Add("cuatro");
    QRMemo1->Lines->Add("cinco");


    // Calculamos la altura exacta de una línea
    SIZE size;
    HDC hdc = GetDC(QRMemo1->Handle);
    SelectObject(hdc, QRMemo1->Font->Handle);
    GetTextExtentPoint32(hdc, "Mg", 2, &size);
    ReleaseDC(QRMemo1->Handle, hdc);

    // Calculamos la altura del QRMemo para que muestre todas las líneas
    QRMemo1->Height = size.cy * QRMemo1->Lines->Count;
    // Compensamos la altura de la banda con el alto y posición del QRMemo
    QRBand1->Height = QRMemo1->Height + QRMemo1->Top + 1;

           
              Uploaded with ImageShack.us


Ultima edición por _Leo el Jue 26 Abr, 2012 12:08 pm, editado 2 veces
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¡HAY QUE HACERTE UN MONUMENTO!
Sale perfecto. Sólo he tenido que eliminar dos líneas:
Código:
ReleaseDC(QRMemo1->Handle, hdc);
QRMemo1->Height = size.cy * QRMemo1->Lines->Count;

Si las dejaba, me partía el QRMemo añadiendo un línea en blanco. Fuera de eso ¡perfecto!
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

A mi me funciona tal como te lo he puesto, con todas las líneas. He adjuntado mas arriba una imagen para que se vea. Pero si te funciona bien con las modificaciones que has hecho perfecto Wink
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Ya sé por que me hace mi lo que comentaba el otro día. La verdad es que en la banda hay varis TQRMemo, pero siempre seguro el que más líneas tiene es el QRMemo1. El campo me lo parte en los que no son QRMemo1.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.