El diseñador Fast Reports.........El diseñador Fast Reports para Hermandad Todas las versiones de Hermandad han incluido un generador de informes...... las fuentes de datos.................................. En este manual se asume que está usted familiarizado con diseñadores de informes por lo que conoce los conceptos básicos......................................... 5. Contenido 1................... El tipo incorporado se denomina genéricamente Free Reports porque se suministra con código fuente de manera gratuita....................................... etc........ El entorno del diseñador ............ 2................................. sin tener que depender de desarrollos añadidos.......... consiguiendo una integración total que beneficiará a las Cofradías y Hermandades que lo utilicen..............................13 Las barras de herramientas............... 6....................................................... Es uno de los puntos fuertes de este programa................................... como son las bandas... 3.......... por su creador A.........5 Los objetos de FastReport............................................18 Propiedades y métodos de los objetos ..................... pero a veces producían errores imprevistos por incluir bugs no depurados por sus creadores............15 Utilizando funciones .................. Los generadores anteriores utilizaban un núcleo de Windows o de QuickReports......... sino que además proporciona una facilidad de uso y potencia inigualables................... 4..... damos un paso muy importante en la generación de informes....... porque no solo incluimos una herramienta altamente depurada..............................19 ......7 Insertando variables .. Hemos usado dichos fuentes para rescribirlos y adecuarlos a las necesidades del programa Hermandad............................... Con el salto al núcleo de Fast Report...............Tzyganenko........ los campos de datos........................... porque produce ilimitados informes o listados al usuario........................................... . nos lo encontramos configurado de la última forma que lo utilizamos. Barras de herramientas Menú Bandas Barra de alineación Barra de objetos objetos Inspector de objetos paginado Posición y tamaño del objeto actual Nombre del objeto actual Usando el teclado • • • • • • • • • • • • • • • • • • • Teclas de flecha: mueve un selector de objeto en objeto.9: altera la propiedad “FrameWidth” del objeto seleccionado.El diseñador Página 5 de 21 1. Ctrl + I. Ctrl + X: corta al portapapeles. Ctrl + C copia al portapapeles. . Ctrl + Flechas: mueve un objeto seleccionado en la dirección de la flecha pulsada. Ctrl + A: selecciona todos los objetos de la página Ctrl + N: crea un nuevo informe vacío. La posición y visibilidad de los paneles queda grabada en el registro. El entorno del diseñador Contiene paneles encajables o barras de herramientas. Del: borra el objeto seleccionado.. Ctrl + Y: rehace la acción cancelada. Ctrl + P: vista previa. Ctrl + B. Ctrl + V: pega desde el portapapeles. Mayúsculas + flechas: incrementa o disminuye el alto y ancho de un objeto. subrayado Ctrl + F: enmarca el objeto seleccionado. Ctrl + S: salva el informe en un fichero externo. Ctrl + O: abre un informe desde un fichero externo. Ctrl + 1. Ctrl + Z : deshacer ultima acción. itálica. Enter y Ctrl + Enter: abre el editor de texto del objeto seleccionado. que pueden ser movidas a voluntad ser colocados a su necesidad. por lo que cada vez que se abre el diseñador. Ctrl + U – Cambia atributos de letra: negrita. Ctrl + G: activa / desactiva la rejilla de fondo. para lanzar el salto de página más tarde. De esta forma se puede usar un papel A3 aunque su impresora real no lo permita. Con botón derecho accedemos al menú contexto con funciones propias del objeto que apuntamos en ese momento. Es útil porque permite realizar informes para impresoras que aún no están instaladas en el sistema. etc. Arrastrar y soltar: traza un rectángulo de selección. Con doble click. seleccionamos el objeto a insertar. los márgenes y otras opciones interesantes. donde se configuran márgenes. en la paleta de componentes visuales (barra de objetos). Los objetos que se toquen las líneas del rectángulo se seleccionan a la vez. LA opción “imprimir en página anterior” hace salir una hoja en blanco antes del informe. Su acción consiste en ampliar el fondo. esta variable requiere que todo el informe sea ejecutado una vez. el diseñador adecua el fondo a la zona imprimible de la impresora elegida. La opción “fijar al área imprimible” (pestaña márgenes) hace que desaparezcan los márgenes y se ajuste el informe a la máxima área imprimible. En la pestaña “opciones” podemos establecer columnas en el informe y el espacio entre ellas. la orientación. . la impresora se adjudica tras cargar el informe. Si se hace sobre la zona blanca del fondo (papel) aparece el cuadro de “opciones de página”. Si usas este campo y no marca la doble pasada el “total de páginas” no mostrará un valor correcto. En tal caso. En la segunda pasada ya tiene ese valor para poder emitir campos del tipo “Página xx de yy”. y será la predeterminada en su sistema Windows. que acepta cualquier dimensión de papel. pero que solo sirve para pruebas en modo diseño. para calcular el número total de página. y de esa forma en impresoras de inyección se puede imprimir en su totalidad antes de expulsar cada hoja.El diseñador Página 6 de 21 Usando el ratón • • • • • Con botón izquierdo seleccionamos los objetos de pantalla. Mayúsculas + clic en botón izquierdo: selección múltiple. No se puede usar para imprimir. Opciones del Informe Se abre desde el menú “archivo / opciones del informe”. al soltar el botón. abrimos el editor del objeto seleccionado. La marca de “altura ilimitada” está indicado para papel personalizado de pequeño tamaño. Opciones de Página Para indicar el tamaño de papel en uso. Si se marca “escoger en ejecución”. La “doble pasada” sirve para cuando utilizamos un objeto función de tipo “total páginas”. Puede seleccionar una “impresora virtual”. Opciones del diseñador Se localiza en el menú “herramientas / opciones” y le permite configurar el diseñador a su gusto. y presenta la lista de impresoras disponibles en su sistema. Tras seleccionar una impresora. orientación. campos de datos. lugar donde se ubicarán los campos del informe Acepta los formatos BMP. Además se le puede definir el tipo de contorno. pero que puede incluir: texto. (en desarrollo. Creador de bandas. Algunos ejemplos de uso: Longitud en см: [Longitud] . Básicamente. Útil para crear títulos Muestra datos en código de barra (en desarrollo. triángulo). WMF. Los objetos de FastReport apuntador bandas dibujos campos imágenes líneas Rectángulo Icono Nombre Cuadro de Texto Banda imagen subinforme Línea Cuadro sombreado Código de barras Gráfico Campo de marca OLE Descripción ofrece un rectángulo con borde que puede albergar texto en múltiples líneas. la alineación y rotación del texto (horizontal o vertical). Crea un subinforme. aún no disponible) Inserta dibujos geométricos (rectángulo. definir el tipo de letra. elipse. Inserta un objeto OLE. aún no disponible) El objeto "Cuadro de Texto" Se trata del más poderoso y flexible de los objetos de Fast Reports. se crea una nueva página de informe Trazo de líneas horizontales y verticales Crea un rectángulo con sombra que aceptará múltiples líneas de dato. color y tamaño. o una combinación de estos. . variables.subinformes El diseñador Página 7 de 21 Casilla de marca 2. ICO. Cuando inserte este objeto en el informe. El formato de la letra se aplicará a todo el texto contenido dentro de él.54] -Esto muestra parte de texto fijo (Longitud en см:) seguido por el resultado de una formula usada contra una variable. Es importante escribir correctamente los corchetes adicionales cuando usamos fórmulas con variables. ( [[variable] * valor]).Esto muestra un trozo de texto fijo (Longitud en см:) seguido por el valor de una variable ([Longitud]) Longitud en см: [[Longitud] * 2. Muestra daos lógicos en forma de campo de chequeo ó X. Para ajustar sus atributos puede usar 2 barras de herramientas: la de texto y la de marco: El contenido del cuadro de texto consiste en campo “memo” (ilimitado de texto). provee un rectángulo rellenable con texto multi línea. EMF y JPG. El texto puede contener variables. puede elegir por los formatos que se ofrecen. Cancelar. añadiendo el carácter «#» seguido del estilo de la máscara.El diseñador Página 8 de 21 La vía más rápida para editar un cuadro de texto es: seleccionarlo y presionar doble-clic.. depende totalmente del idioma de su máquina.000 para un valor numérico). campos de datos y expresiones. Si una variable no puede ser formateada presentará su valor en texto plano. En H6 solo aparece en modo analista para asegurar el buen funcionamiento del programa e impedir la manipulación incorrecta de los informes. Aceptar. Operaciones del portapapeles Activa / desactiva el ajuste de línea Activa / desactiva el editor de código.Si” . (por ejemplo. se permite sobrescribir el formato por defecto. y en los formatos de fecha con mes en letra. de hora y lógicos Por cada categoría de formato. insertar variables. Cada cuadro de texto tendrá su propio estilo. Para valores lógicos use “No. Pulse en los botones "insertar campo DB" o "insertar Expresión" que le muestran los campos disponibles en cada momento. #. Se abre la siguiente ventana que nos permite la edición: Su barra de herramientas nos ofrece las siguientes funciones: Inserta una expresión o campo variable. Si un cuadro de texto contiene una combinación de campos y desea formatear cada uno de una forma distinta.##0. Inserta un campo de datos. Accediendo al “inspector de objetos” (presione F11) haga click en la propiedad “DisplayFormat”: Verá todas las opciones de formato de máscaras muy necesarias para campos numéricos. de fecha. o personalizarlos. Desde el editor puede introducir texto. de la siguiente forma: . fecha y hora. Dxxxxx. donde “formato” es uno de los siguientes: • x. y NADA en caso contrario Formato condicional Cuando quiera que ciertos datos presenten una forma característica. basándose en una condición especial. Para que funcione. • Suprimir valores repetidos: No imprime nada si contiene el mismo valor de la línea anterior Además tenemos propiedades adicionales en el inspector de objetos: • CharSpacing – espacio extra entre caracteres.00] muestra Cuota anual en formato numérico [Fecha de alta #Ddd-mm-yyyy] muestra la fecha de alta en formato dia-mes-año [Fecha de alta #Ddd-mmm-yyyy] muestra la fecha de alta en formato dia-3 letras del mes-año [Junta gobierno #BNo. • Solo texto: En este caso no se procesa la variable del interior. pruébelas una a una y vera como alteran el informe desde la vista previa inmediata. -siendo en “x.yy”.2] [Cuota anual #9-2] [Cuota anual #N#. «. su color o su fondo. Para conocer a fondo el funcionamiento de estas propiedades.yyyyy – Formatos lógicos. -en yyyyy – una cadena del tipo #. la cadena”xxxxx” será la que aparezca. • Corte automático de palabras: Actúa con el anterior. el objeto calcula su ancho máximo. el cual produce un formato al que se accede pulsando el botón cambio de letra.00 -si en “x. puede usar este tipo de .Si] Campo Lógico: muestra Si cuando el hermano pertenece a la Junta de Gobierno. GapY: píxeles de separación extra en las esquinas izquierda y arriba • LineSpacing – espacio extra entre líneas del texto. presentará el dato en Negrita.x ó Nyyyyy – formatos numéricos.El diseñador Página 9 de 21 [Variable #formato]. tal carácter será usado como separador de la parte decimal. en caso contrario aparecerá la cadena “yyyyy”.». («. coma o guión.x ó Nx. Txxxxx . En otro caso aparecerá con el formato original Otras propiedades del Cuadro de Texto Al pulsar botón derecho sobre un objeto cuadro de texto disponemos de más opciones: • Ajustado: Hace que el objeto presente una altura variable presentando la información en múltiples líneas. Pulse el botón y le aparecerá el cuadro de diálogo de la derecha. o que destaquen por un determinado valor. Bxxxxx.##0. Muestra lo que contenga literalmente.». usando los espacios para separar las líneas. «-»). Siendo “xxxxx” – una cadena de tipo “dd.##0. cursiva y color rojo.mm. Lo usamos sobre la variable [deuda actual] de manera que cuando un hermano tiene un valor superior al 10.Si] Campo Lógico: muestra Si cuando el hermano pertenece a la Junta de Gobierno. y no en caso contrario [Junta gobierno #B. . • GapX.x” ó “yyyyy” se incluye un punto. Si el valor es FALSO.x” – la longitud del número/número de dígitos en parte decimal. • • He aquí algunos ejemplos usando el carácter «#»: [Cuota anual #9. es obligatorio activar la propiedad “ajustado” de su banda madre . • Tamaño automático: antes de imprimir. para usar la vista previa inmediata desde el diseñador se puede seleccionar como origen de datos el conjunto DATOS. Vea la pantalla del “origen de datos” que se abre presionando doble-clic sobre una banda que requiera datos. no se presenta información real de las tablas de H6. Lista de bandas Nombre Título del informe Sumario del informe Cabecera de página Pie de página Cabecera maestra Datos maestros Pie maestro Cabecera de detalle Datos de detalle Pie de detalle Cabecera subdetalle Datos subdetalle Pie subdetalle Superpuesto Cabecera columna Pie de columna Cabecera de grupo Pie de grupo Informe cruzado: Cabecera / datos / pie Hija donde y para que se usa Solo se imprime al principio del informe Solo se imprime al final del informe Se imprime al principio de cada página Se imprime al final de cada página Se imprime al principio de cada primer nivel de datos Datos en el 1er. Y por tanto. no obstante conviene colocarlas de forma adecuada para facilitar la lectura posterior. Nivel – repetido por cada registro Al final de cada tercer nivel de datos Se imprime en cada página a modo de capa trasera (marca al agua) Se imprime al principio de una columna Se imprime al final de una columna Título de grupo impreso al principio del grupo Se imprime después de los datos de un grupo Estas bandas se usan en informe cruzado (cross-tab) con un número variable de columnas en la página. debe especificar un número de registros. ya que lo que se muestra es el primer registro multiplicado tantas veces como número de registros haya indicado. No deje activada tal opción porque después. Según la banda donde estemos. Puede ser añadida a otra banda de cualquier tipo excepto las cruzadas y pie de página. NOTA: Las bandas no tienen que aparecer en un orden concreto. Aún así. Se coloca siempre después de su banda padre. Nivel – repetido por cada registro Al final de cada primer nivel de datos Se imprime al principio de cada segundo nivel de datos Datos en el 2º Nivel – repetido por cada registro Al final de cada segundo nivel de datos Se imprime al principio de cada tercer nivel de datos Datos en el 3er. Se limita a una presentación virtual para pruebas. puesto que cada una hará su misión en donde procedan. Si selecciona el “conjunto de datos virtual”. el informe no le mostrará lo que desea. . Fast Reports se basa completamente en la inserción de múltiples bandas para presentar la información. ya que es H6 quien lo hace de manera invisible al usuario cuando se ejecute el informe. Esto solo debe hacerlo para pruebas inmediatas. el diseñador mostrará el editor apropiado Normalmente las bandas que muestran datos requieren conexión a una fuente de datos.El diseñador Página 10 de 21 El objeto "Banda" Al igual que en otros diseñadores de informes. en la integración a Hermandad no será necesario. No obstante. En caso contrario. de detalle. o seleccionar una imagen desde un campo MEMO de Base de datos. El objeto Imagen Sirve para insertar gráficos. siempre que alguno de ellos contenga múltiples líneas y sus propiedades “ajustado” y “corte automático de palabras” estén activadas La fila completa de la banda adopta la nueva altura. • Centrar: Centra la imagen en el recuadro. se le pedirá una condición. La inserción de una imagen desde un campo memo se hace automáticamente. Incluye un editor que permite cargar y borrar la imagen. y la altura de la última fila de datos supera el espacio restante. Si se desmarca. Muy útil cuando queremos sacar un solo registro por hoja. Si se desmarca solo aparecen en la primera página. el informe se parte. grupo e informes cruzados. • Partido: Si está activado. Puede usar una de las variables de H6 o cualquier función basada en las variables (campos) que se le ofrecen. que son: • Ajustado: Cambia el alto de la banda en función al contenido de sus cuadros de texto. • En la última página: Solo para bandas de pié de página. Para insertar una imagen desde un fichero. Si se marca aparecen en todas las páginas.El diseñador Página 11 de 21 Si selecciona una banda de grupo. JPG y GIF. • En la primera página: Solo para bandas de cabecera y pié de página. Si se desmarca. se deja el espacio restante vacío y la fila de datos se imprime en la página siguiente. simplemente referenciando la variable del campo memo (si está en el conjunto de variables disponibles). subdetalle. que será el valor que se use para agrupar el informe. Soporta los formatos BMP/WMF/ICO. aparecen nuevas opciones. . • Mantener relación de aspecto: Si “ajustado” está marcado. • Mostrar en todas las páginas: Solo para bandas de Cabeceras de los tipos: maestra. el contenido de la banda no se muestra en primera página. • Forzar nueva página: Fuerza a saltar a la página siguiente para cada fila de datos. continuando en la siguiente página. El menú de contexto del objeto proporciona las siguientes propiedades: • Ajustado – La imagen se estrecha en el rectángulo. localícelo y pulse doble clic sobre él. En H6 no se precisa hacer esto. hace que se mantengan las proporciones de alto y ancho. Al pulsar con el botón derecho del ratón en una banda. el contenido de la banda no se muestra en última página. Supp2. E0. Trace las líneas libremente con el típico arrastrar y soltar. E1. en cualquier otro caso hay que utilizar métodos especiales para obtener la casilla marcada o vacía. Cabecera y pie de página pueden utilizarse en los sub-reports. No admiten bandas partidas ni grupos. El objeto Gráfico Inserta figuras geométricas de los tipos rectángulo.El diseñador Página 12 de 21 El objeto Sub-Informe Se usa para insertar un informe adicional en un punto particular del listado Cuando se genera el informe. Sumario. Para dibujar una línea. El objeto CheckBox (marca) Se usa para mostrar gráficamente valores booleanos (lógicos). y en el lugar insertado aparece un indicador del nuevo objeto. El resultado aparece directamente cuando en su interior referenciamos una variable de campo booleano. El objeto Línea Se utiliza para insertar líneas horizontales o verticales. . elipse y triángulo. pero no se podrán asociar al informe principal. Si incluimos mas de un sub-informe. El objeto Código de Barras Su nombre dice para que sirve. Al insertar este objeto. Admitirá los siguientes formatos: • • • • • • • • • • • • • 2 of 5 interleaved Code39 Code39 Extended Code128A-C Code93 Code93 Extended MSI PostNet Codebar EAN8 EAN13 EAN128A-C UPC A. Un ejemplo de esto sería si queremos añadir gráficos adicionales a continuación de los datos normales del listado. Supp5 Este objeto. mueva el ratón sobre la página activa mostrándose un cursor en forma de lápiz. rectángulo redondeado. actualmente está en desarrollo y aparecerá en posteriores revisiones de Hermandad. Pueden incluirse en bandas separadas y su estilo y color se configura desde la barra de herramienta “Marco”. se añade una página adicional. • • • Hay ciertos límites en el uso de este objeto: No puede ser usado en informes por columnas Las bandas Titulo. el subinforme se coloca en páginas separadas del informe principal. se mostrarán uno a continuación del otro en bandas separadas. pulse el botón del objeto. El SubInforme se mostrará a continuación del informe principal. Es la mejor manera de aprender a aplicarlas. Si detecta que necesita algún campo más. . que aunque se muestra en la siguiente pantalla. pasando al constructor de expresiones y . El nombre de las propiedades se puede ver traducido a castellano. aparecerá una variable que lo identifica. dispone de un amplio conjunto de propiedades que nos permiten ajustar su comportamiento a nuestro gusto.El diseñador Página 13 de 21 El inspector de objetos Con el cual. denominando los campos con nombres mas comprensibles que los nombres técnicos originales. esto hace que H6 genere automáticamente una variable para cada campo elegido. debe salir del diseñador. en él. Con ello facilitamos el uso de objetos de datos al usuario. entrando en Herramientas / opciones y cambiando la casilla “nombre de propiedades traducidas”. presionando en “variables” se nos muestra el conjunto de ellas. no está accesible al usuario normal: En el paso previo del diseño de informes. Vea la siguiente imagen donde aparecen los tres pasos para llegar a ellas: desde el editor de texto. Cada objeto. Altere las propiedades y aprenda a cambiar su comportamiento. manipulamos las propiedades de los objetos. El juego de variables en su conjunto forma el diccionario de datos. 3. nos encargamos de elegir los campos que compondrán el listado (vea el manual de H6). según su tipo. Esas serán las que forma en el conjunto de variables disponibles. añadir el campo. A las variables disponibles se accede cada vez que intentemos cargar en el editor de texto un dato . Insertando variables Variables de datos [campos preparados para H6] El diccionario de Datos La integración de Fast Reports con Hermandad prepara un juego de variables que ya están enlazadas a sus correspondientes campos de la Base de datos. y al retornar al diseñador. . Funciones Para ver el asistente de funciones presione el botón . que son los siguientes: • Pagina#: ofrece el número de la página actual. variables y funciones (mezcladas). Linea global#. las variables a parecen agrupadas. Una expresión puede contener una texto. (equivale ala función Date) • Hora#: hora en que se crea el informe (equivale a la función Time). columna#.El diseñador Página 14 de 21 En el diseñador del recibo de procesión. Variables de sistema Consiste en un juego de campos calculados. Total paginas: ver descripción en funciones internas. LineaActual#. • Linea#. Contiene la lista de todas las funciones agrupadas. de manera que resulte más cómodo localizarlas. Es igual que la Función Page# función (ver descripción en Funciones internas). • Fecha#: muestra la fecha de creación del informe . y ejemplos de cómo aplicarlas. al incluirse un considerable número de campos. La barra de "Alineación" Proporciona todos los tipos posibles de alineación de objetos. Bastará seleccionar varios objetos y pulsar sobre el botón que nos proporcione la alineación requerida.El diseñador Página 15 de 21 4. Las barras de herramientas La barra estándar Icono Nombre Nuevo Abrir Salvar Vista Previa Cortar Copiar Pegar Deshacer Rehacer Poner al frente Enviar detrás Selecciona todo Nueva página Borra página Opciones de página Muestra rejilla Alinear a rejilla Ajustar a rejilla Descripción Crea nuevo informe vacío Abre un informe existente desde un fichero de extensión FRF Graba el informe en formato y extensión FRF Muestra el informe tal cual saldrá impreso Corta objeto y lo deposita en portapapeles Copia objeto y lo deposita en portapapeles Pega objeto desde el portapapeles Deshace últimos cambios Rehace la última operación Muestra por delante los objetos seleccionados Envía detrás los objetos seleccionados Selecciona todos los objetos de la página Crea una nueva página Borra página actual Muestra el cuadro de opciones de página Muestra rejilla Alinear a rejilla los objetos cuando los movemos Ajusta a rejilla los objetos cuando les cambiamos el tamaño Muestra ayuda sensible al contexto Cierra el diseñador Close ayuda Cerrar La barra de Texto No requiere más explicación. . al contener todos los procesos normales de cualquier editor La barra de "Marco" Proporciona el enmarcado de los objetos. El diseñador Página 16 de 21 Rutinas y objetos Cada objeto puede incorporar uno o más bloques de código. Pero los que lo permiten siempre tendrán el evento “OnBeforePrint“ disponible. end. b := 'abcd'. Por ejemplo: begin a := 0. c := True. entre las cuales habrá que escribir la rutina (conocido como script). Por tanto en los escripts podemos usar cosas como Visible:= [deuda actual] > 10 Que provoca que el objeto solo muestre su contenido cuando se cumple la condición establecida Constantes Consiste en definir variables con un valor fijo y que después podrán aparecer en cualquier objeto del informe entre corchetes. d := 'eso es todo!'. Referenciando campos Los campos aparecen internamente como variables predefinidas. y suele estar accesible en la propiedad “OnBeforePrint” que es un evento localizable en la lista del Inspector de objetos. Escribiendo código En los scripts. El editor de rutinas aparece en el editor de texto. El script se ejecuta siempre antes de imprimir el objeto. Además se pueden usar constantes y crear variables propias. Usando variables No hay que especificar el tipo. end hemos creado la variable “a” y la hacemos equivalente al número de página ahora podemos usarla en cualquier objeto del informe colocándola entre corchetes Si usamos esto [a+ 1] equivale al número de página actual mas uno. ya sean bandas o el propio informe. presione sobre el botón en la parte superior de la ventana. Recuerde usar la comilla simple cuando el valor sea una cadena de texto . Si no aparece. en una zona inferior identificada por las letras BEGIN y END. porque todas se declaran como variant (de cualquier tipo). Ejemplo de script No todos los objetos admiten scripts. puede usar propiedades y métodos relativos a los objetos del informe. Pueden tener cualquier nombre. siempre que no se llamen igual que los objetos. Ve el siguiente ejemplos: begin a := [Page#]. frtaMiddle. Para cambiar todo debemos hacer esto: if Memo1. frtaCenter.memo := 'b' Normalmente. Eso indica que se pueden usar. baWidth. frftRight. En los escrips se puede manipular las propiedades de esos objetos llamándolos por su nombre. baCenter.Font. baRight. Todas las propiedades aparecen en el inspector de objetos.Lines[1] = 'a' then Memo1. Alineación de banda: baNone.Size := 10. Memo1. . con ello cambiamos todo el formato de letra del objeto Memo1 Observando este ejemplo. Alineación de texto: frtaLeft. Recuadros (frames): frftNone. Además podemos cambiar el valor de un campo: if Memo1. frftTop. Un ejemplo de esto lo vemos en el siguiente escript. con el que usamos tres tipos de color para el valor: si la deuda es menor de 10 no varía. – todos los colores estándares y de sistema Estilos para letras: fsBold. frtaVertical.Color := clRed.Name := 'Courier New'.Lines[1] = 'a' then Memo1. fsItalic.Lines[1] := 'b' en el ejemplo se cambia solo el contenido de la primer línea. Ejemplos: begin Memo1. fsUnderline. como el tamaño.Font. Memo1.El diseñador Página 17 de 21 Referenciando objetos Cada objeto tiene un nombre (propiedad NAME).. Si estamos en el mismo campo a modificar. frftLeft. los scripts se usan para alterar el comportamiento de los objetos. clBlack etc.Font. pero si es mayor usamos el verde cuando no pasa de 20 y el rojo cuando es superior. etc. frftBottom.Font. Debe usar la “notación por punto” para ello. color. frtaDown. baLeft. solo habrá que indicar la propiedad. vemos ciertos valores constantes de sistema. donde aparece una rutina que amplía el uso del formato condicional utilizando el intérprete: begin if [Deuda actual] < 10 then fillcolor:= cltransparent else if [Deuda actual] < 20 then fillcolor:=clgreen else fillcolor:=clred end. frtaRight. por ejemplo: Memo1. y son: • • • • • colores: clWhite. baBottom.Text. Memo1.Style := fsBold + fsItalic end. contenido. <string2>). Retorna la cadena <string1>. <string1>. . Round(<value>). Convierte el primer carácter de la cadena <value> a mayúsculas y el resto lo deja en minúsculas. El número 1 del tercer parámetro hace que se cuenten también los objetos invisibles //no olvide poner toda la expresión entre corchetes Ejemplo: [Sum([deuda actual]. • Time. Devuelve el número de la línea actual contando desde el principio del informe todas sus líneas. <string>). en otro caso retorna <string2>. . <value2>). MaxNum(<value1>. Convierte la cadena <value> a hora. Calcula la suma de los valores pasados en <expresion> para la banda dada. Min. Count(<band>).1]). este aparece en la caja de edición por defecto. Avg calcula la media aritmética. Utilizando funciones -Agregadas Normalmente se usan en el sumario. Convierte la cadena <value> a fecha. Retorna la parte numérica y entera de <value>. band] [. Max. Devuelve la fecha actual.El diseñador Página 18 de 21 5. Ofrece la cuenta de filas de datos presentadas en una banda. Retorna el mayor de dos valores. Después. Retorna el resto resultante de dividir <value1> by <value2>. Muestra una ventana de diálogo cuya cabecera será <caption> y una caja de edición. • Date. • If(<expression>. Retorna el número redondeado. • Pos(<substring>. <value>). • FormatFloat(<formatstr>. y en los pies de página y grupo • Sum(<expresion> [. Si se añade el parámetro “default”. • Line#. • UpperCase(<value>). Frac(<value>). -Otras funciones • Input(<caption> [.<default>]). • Page#. Devuelve el número de la página actual. comenzando en la posición <from>. -Aritméticas • • • • • • Int(<value>). Su sintaxis es análoga a la función SUMA. Elimina los espacios al principio y al final de <string>. • LowerCase(<value>). Min y Max retornan el valor mínimo y maximo respectivamente. Convierte a numérico el valor significativo de <value>. Convierte la cadena <value> a minúsculas. value1 Mod value2. Retorna la parte fraccional de <value>. Retorna la longitud de la cadena <string>. • Column#. Retorna una subcadena de <string> con longitud de <count> caracteres. cuando el usuario presiona OK. retorna la cadena introducida.devolviendo lo que queda . • LineThrough#. <from>. Convierte un número a su valor en formato cadena de texto • Copy(<string>. • FormatDateTime(<formatstr>. Devuelve el número de la línea actual. • Trim(<string>).de cadena • Str(<value>). <count>). Retorna el menor de dos valores. Band1)] • • Avg. Devuelve el número de columna actual. Convierte a fecha / hora el valor de una cadena. usando la máscara de <formatstr>. Retorna la posición de <substring> cuando coincide en la cadena <string>. Si no colocamos nombre de la banda. • StrToTime(<value>). • StrToDate(<value>). Devuelve la hora actual. • Length(<string>). • NameCase(<value>). MinNum(<value1>. <value2>). usando como máscara <formatstr>. Convierte la cadena <value> a mayúsculas. se realiza la suma de todos los valores del informe. si la expresión es verdadera. <value>). Visible Booleano Valores posibles: True o False. FrameStyle Entero psDashDotDot. mrNo). Indica cuando el objeto debe aparecer en pantalla u ocultarse. psDouble.. • NewPage. baWidth. MonthOf(<date>). • StopReport.31) de la fecha usada como parámetro. baRight. • FreeSpace. Se permiten constantes de color de Windows clXXX. YearOf(<date>). psDot. mrYes. Width Entero Ancho del objeto. Esta propiedad puede estar accesible por su índice. Memo. Top Entero Coordenada superior izquierda relativa a su objeto padre. Retorna la posición “Y” actual donde la próxima banda se imprimirá Se le puede asignar un valor a CurY – para colocarla en otra posición. Use los siguientes valores para el parámetro <buttons_and_icons>: Botones Mb_Ok mb_OkCancel mb_YesNo mb_YesNoCancel Iconos mb_IconError mb_IconQuestion mb_IconInformation mb_IconWarning Procedimientos y funciones permitidas en el montaje de un informe • CurY. Retorna la altura de la página en píxeles menos la altura de la banda pie de página. Retorna TRUE (verdadero). Left Entero Coordenada horizontal izquierda relativa al formulario en píxeles. use la equivalencia : 18 píxeles = 5mm. Devuelve el número total de páginas. mrCancel. Para convertir píxeles a milímetros y viceversa. DayOf(<date>). Estilo del borde. Paraliza el montaje del informe. Retorna el espacio que le queda a la página en píxeles. detallamos a continuación todas las propiedades y métodos 6. Comienza una nueva columna en un informe de múltiple columnas ShowBand(<band>). psDash. frftLeft. Devuelve el valor que corresponda al botón pulsado (mrOk. la cabecera “caption” y botones. frftRight. Enabled Booleano Si TRUE. baCenter. Muestra la banda denominada <band>. Comienza una nueva página. FrameWidth Decimal Ancho del recuadro. baBottom. Para usarla hay que poner el informe como de doble pasada. Retorna el día (1. Propiedades y métodos de los objetos Propiedades y métodos globales Propiedad Tipo Descripción Alineación de objetos en su banda BandAlign Entero Valores posibles: baNone. baLeft. Retorna el mes de la fecha usada como parámetro. Texto del objeto.El diseñador Página 19 de 21 • • • • • TotalPages. . Height Entero Altura del objeto seleccionado. • NewColumn. Retorna el ancho de la página en píxeles. Valores: True o False. FrameTyp Entero Tipo de borde – un conjunto de constantes frftTop. frftBottom. <buttons_and_icons>). MessageBox(<text>. Name Cadena Nombre del objeto. • FinalPass. • PageWidth. FillColor Entero Color del fondo. si un informe es de doble pasada y está ejecutando la última pasada. Muestra un cuadro de diálogo de tipo mensaje con el texto “text”. psDashDot. <caption>. FrameColor Entero Color del recuadro de un objeto. por Memo Cadena ejemplo: Memo[1]. Stretched Booleano Si TRUE. habilitado: un objeto respondera a eventos. Retorna el año de la fecha usada como parámetro. • Para facilitar el uso en escripts. Valores posibles: psSolid. el objeto presenta sus dimensiones naturales. • PageHeight.Count Entero Retorna el número de líneas en un memo (texto del campo). Espacio entre caracteres. Valores posibles: True.Style Font. Valores posibles: True.Name Font. False. La banda enlaza datos a otra banda hija Distancia horizontal entre columnas Número de columnas en la banda Ancho de las columnas. Condiciones para grupos. False. fsItalic.El diseñador Página 20 de 21 Métodos Método Hide Memo. False.Color GapX GapY HideZeros LineSpacing Suppress TextOnly WordBreak WordWrap Tipo Entero Booleano Entero Cadena Entero Entero Entero Entero Entero Booleano Entero Booleano Booleano Booleano Booleano Descripción Alineación del texto en el objeto Valores posibles: frtaLeft. fsUnderline. frtaCenter. Valores posibles: True. Estilo: negrita. Valores posibles:True.Clear Memo. Valores posibles: True. Fuerza la salida de una nueva página tras imprimir la banda. Muestra un objeto. Distancia horizontal entre el borde y el texto que contiene. False Cuando una palabra sobrepasa el margen derecho permite que se trocee en 2 ó mas líneas. Se imprime en la primera página. Valores: True. False. False. . False. Elimina la línea especificada por el número dado como parámetro. Especifica la banda usada cuando se agrupan datos. Aplicada a bandas cabecera de grupo. Valores posibles: True. False. Conjunto de datos a mostrar. Borra todo el texto del campo. Añade una nueva línea al contenido del campo. False Objeto "Banda" Propiedad Breaked ChildBand ColumnGap Columns ColumnWidth Condition DataSource EOF FormNewPage Master OnFirstPage OnLastPage PrintChildIfInvisible PrintIfSubsetEmpty RepeatHeader Tipo Booleano Cadena Entero Entero Entero Cadena Cadena Booleano Booleano Cadena Booleano Booleano Booleano Booleano Booleano Descripción Ruptura de bandas. False. Oculta el dato si se repite respecto del anterior registro. Valores posibles: True. frtaVertical. frtaMiddle. Espacio entre las líneas del texto. Valores posibles: True. Cuando una palabra sobrepasa el margen derecho permite que se troceen las últimas sílabas. Color de la letra. Distancia vertical entre el borde y el texto que contiene. Indica si se ha llegado al fin de los datos. Se imprime en la última página.Size Font.Delete Show Parámetros Cadena Entero - Descripción Oculta el objeto poniendo su propiedad visible a False. Nombre del tipo de letra utilizado Tamaño de letra en píxeles. Especifica cuando se repite una banda en cada página Valores posibles: True. cursiva. False. frtaRight. False. mostrando solo el literal. frtaDown. Objetos estándares Propiedad Alignment AutoWidth CharSpacing Font. Hace que no se procese o interprete el contenido. Valores posibles:fsBold. poniendo su propiedad visible a True. Valores posibles:: True. Valores posibles: True. Valores posibles: True. subrayado. Hace que el objeto se ensanche automáticamente a la necesidad dela totalidad de texto que contiene. Especifica si se imprime una banda cuando su banda hija está vacía. False. Si contiene un valor CERO se ignora.Add Memo. Especifica si se imprime una banda hija cuando su banda padre es invisible. Valores posibles:True. Para mantener las proporciones relativas de la imagen. Especifica el campo de la tabla que contiene la imagen. Valores posibles:: True. esta propiedad especifica el estilo de gradiente. gsHorizontal. btICO. Valores posibles: gsVertical. Establece el datasource de una banda en el anterior registro. Objeto "Dibujo" Propiedad Shape Tipo Entero Descripción Determina el tipo de dibujo del objeto. False. gsElliptic. Objeto "CheckBox" Propiedad CheckColor CheckStyle DataField Tipo Entero Entero Cadena Descripción Color de la marca cruzada cuando está chequeado Estilo de la marca. Si las esquinas están redondeadas. esta propiedad indica el grado de redondeo. Ancho de la sombra. Establece el datasource de una banda en el siguiente registro. Especifica cuando ha de centrar la imagen en el objeto. skTriangle. . btWMF. skDiagonal1. Color de la sombra. Valores posibles: True. las siguientes: Propiedad BeginColor EndColor Gradient RoundRect RoundSize ShadowColor ShadowWidth Style Tipo Entero Entero Booleano Booleano Entero Entero Entero Entero Descripción Color inicial utilizando sistema gradual (gradiente) Color final utilizando sistema gradual (gradiente) Uso del sistema gradual. Esquinas redondeadas.El diseñador Página 21 de 21 Métodos First Next Prior - Parámetros Descripción Establece el datasource de una banda en el primer registro. gsHorizCenter. Objeto "Imagen" Propiedad BlobType Center DataField KeepAspect Tipo Entero Booleano Cadena Booleano Descripción Especifica el tipo de imagen contenida en un campo blob (memo). al ser estirada. Valores posibles: true. como propias. gsRectangle. Valores posibles: btBMP. csCheck. btJPG. Valores posibles: skRectangle. gsVertCenter. Valores posibles: csCross. Si se usa efecto gradual. skDiagonal2. por lo que tiene todas sus propiedades. skEllipse. skRoundRectangle. False. Nombre del campo que contiene el dato Objeto "Rectángulo sombreado" Es un objeto descendente del “cuadro de texto”. False. y además. False.