Lo nuevo en Visual FoxPro 9.docx

Lo nuevo en Visual FoxPro 9.0 Report Writer 285 de 287 MSDN - Valorar este tema Cathy Pountney www.frontier2000.com 08 2

Views 151 Downloads 0 File size 966KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Lo nuevo en Visual FoxPro 9.0 Report Writer 285 de 287 MSDN - Valorar este tema Cathy Pountney www.frontier2000.com 08 2004 Se aplica a: Visual FoxPro 9.0 Lea el artículo del compañero, Visual FoxPro 9.0 Report Writer En Acción . Resumen: Aprenda acerca de las nuevas características en Microsoft Visual FoxPro 9.0 Report Writer, incluyendo los nuevos entornos reutilizables de datos, protección de memoria, y varias mejoras en la interfaz de usuario. También aprenderá acerca de las mejoras a objetos de diseño, mejoras para los usuarios internacionales, varias mejoras de impresión, y mejoras en los grupos de datos. Además, usted aprenderá acerca de dos de las mejores mejoras en el Visual FoxPro (VFP) 9.0 Report Writer: bandas-detalle y múltiples extensibilidad. Finalmente, usted aprenderá los detalles del informe Visual FoxPro (FRX) estructura. (63 páginas impresas) Contenido Introducción extensibilidad Data Environments Protección UI Mejoras Layout objeto Mejoras Internacional Características Impresión Mejoras Mejoras de datos Grupo bandas múltiples Detalle La FRX Conclusión Bio

Introducción Microsoft ha mejorado significativamente el VFP 9.0 Report Writer reconociendo al mismo tiempo los desarrolladores de inversión significativos tienen en los informes FRX-basados existentes. Por lo tanto, el VFP 9.0 Report Writer es compatible con versiones anteriores de informes de VFP. La VFP 9.0 Report Writer es una gran mezcla de lo viejo y lo nuevo.

Extensibilidad Antes de VFP 9.0, el motor de informes manejó todo, incluyendo el procesamiento de los datos, posicionamiento de objetos, renderizado, impresión y vista previa. No había manera de "gancho" en el motor de informes y personalizarlo, como usted puede con otras áreas de VFP. Un caso de la mayoría de los cambios significativos en el VFP 9.0 Report Writer es las nuevas características de

extensibilidad. El Diseñador de informes, el motor de informes, y la vista previa de contenedores han sido expuestos a los desarrolladores.

Generador de informes La VFP 9.0 Report Writer incluye una nueva característica en tiempo de diseño llamado Hooks Builder . Varios eventos del Diseñador de informes se exponen y un componente Xbase independiente, llamado el Generador de informes , puede ser invocada para manejarlos. Esta aplicación se puede utilizar para invocar sus propios cuadros de diálogo, aumentar el comportamiento del Diseñador de informes nativo, o reemplazar el comportamiento nativo. VFP incluye una completa aplicación Generador de informes que incluye nuevas características y proporciona una mejor interfaz de usuario para el diseño de informes. El Generador de informes es controlado por una nueva variable del sistema, _ ReportBuilder . Si esta variable está vacía, aparecen los cuadros de diálogo nativas. Para activar los ganchos constructor, establezca esta variable en una aplicación apropiada. Por ejemplo, para utilizar el Generador de informes se incluye con VFP 9.0, ejecute el comando siguiente: _REPORTBUILDER = HOME () + "ReportBuilder.app" Algunas partes de este artículo asumen los cuadros de diálogo nativas están en su lugar y el _ ReportBuilder variable del sistema está vacía. Otros lugares asumen los nuevos cuadros de diálogo están en su lugar y el _ ReportBuilder variable del sistema se establece en " ReportBuilder.app . " Si usted no está experimentando el comportamiento descrito, o bien no están viendo los cuadros de diálogo descritos, cambiando el valor de _ReportBuilder puede solucionar el problema.

Motor de informes En el nuevo sistema de salida ( salida a objetos asistida ), el motor de informes se encarga de las tareas centradas en datos, como el movimiento a través del alcance y la evaluación de la expresión. Sin embargo, cuando llega el momento de crear una salida, se difiere el trabajo a una nueva clase base, llamada ReportListener . La nueva clase hace que el contenido del informe de una manera más sofisticada, utilizando GDI +, y también ofrece a los usuarios Xbase la oportunidad de interactuar con el proceso de salida. Figura 1 muestra cómo las piezas encajan entre sí.

Figura 1. Utilice la nueva clase ReportListener para manipular informes. (Haga clic en la imagen para ampliarla.) Para utilizar un ReportListener clase, utilice la nueva cláusula en el informe FORM comando de la siguiente manera: oListener = CREATEOBJECT ("ReportListener") oListener.ListenerType = 1 && Vista previa o 0 para Imprimir MODELO DE INFORME OBJETO oListener VFP 9.0 también proporciona una segunda técnica para usar un ReportListener clase. Puede establecer el valor de una nueva variable de sistema, _REPORTOUTPUT , con el nombre de una

aplicación que puede determinar qué ReportListener clase que se utiliza en función del tipo de producto que ha elegido. Cuando se utiliza la salida a objetos con asistencia, un informe se procesa mediante uno de dos modos principales, dependiendo de su ListenerTypevalor de la propiedad. Usted puede pensar en estos dos modos como impresión apropiada y vista previa en su caso , o de la página-at-atiempo ytodo-pages-at-once . En el primer modo, la escucha activa una OutputPage evento, que se prepara cada página, al igual que envía cada página a la impresora o cola de impresión. En el segundo modo, el Listener prepara todas las páginas de la representación y los almacena en caché. Cuando esté terminado, se puede invocar elOutputPage método para pedir la salida de página de cualquiera y todas las páginas incluidas en el producto, por número de página.

Ver Container En VFP 9.0, una pieza más del rompecabezas de la extensibilidad es la Vista previa de contenedores . Con este libro, puede utilizar el nuevo contenedor de vista previa se incluye con VFP 9.0 o danos tu contenedor de vista previa. El antiguo depósito de previsualización nativa está disponible cuando usted no está utilizando la nueva salida a objetos asistida. Una nueva variable de sistema, _ REPORTPREVIEW , contiene el nombre de la aplicación que determina qué contenedor de vista previa para usar. De forma predeterminada, esta variable apunta a ReportPreview.app . Esta nueva aplicación contiene una gran cantidad de mejoras con respecto a la edad de vista previa, incluyendo: más niveles de zoom, el control de la barra de herramientas, el control de los subtítulos, varias páginas de vista previa, y una mejor calidad utilizando GDI +. Figuras 2 y 3 muestran las diferencias entre la antigua vista previa superficie y la nueva superficie vista previa.

Figura 2. La salida en el recipiente de previsualización mayor no es muy nítida. (Imagen Haga clic para agrandar.)

Figura 3. El nuevo contenedor de vista previa tiene mucho mejor calidad y opciones más sofisticadas. (Imagen Haga clic para agrandar.) Note la diferencia de calidad entre los antiguos y los nuevos contenedores de vista previa. El nuevo envase tiene fuentes más nítidas tanto que el anterior. Esto puede atribuirse al uso de GDI + a la información de salida. También tenga en cuenta las diferencias en la barra de herramientas acoplada.La barra de herramientas en la vista previa del nuevo estilo tiene más opciones, incluyendo presentaciones de varias páginas.

Salida tradicional Un nuevo comando SET REPORTBEHAVIOR , se puede utilizar para activar la salida a objetos asistida encendido o apagado. El nuevo motor de procesamiento de la producción y la nueva superficie Previa tanto tienen algunas diferencias significativas con el viejo estilo de la producción. Alineación, kerning y espaciado son diferentes entre GDI y GDI +, que podría cambiar significativamente la apariencia de sus informes existentes. Por lo tanto,REPORTBEHAVIOR se establece en 80 de forma predeterminada, lo que convierte la salida a objetos asistida off e informa de los procesos como lo hicieron antes de VFP 9.0. Si desea desactivar globalmente la salida a objetos asistida, usted puede cambiar el valor de este parámetro en el Opciones de cuadro de diálogo (que se muestra en la figura 4 ), o tal vez el siguiente comando: SET REPORTBEHAVIOR 90

La Figura 4. Utilice la opción de comportamiento en tiempo de ejecución en el cuadro de diálogo Opciones para cambiar la configuración de SET REPORTBEHAVIOR. Cuando REPORTBEHAVIOR se establece en 90 , formulario de informe de comandos se comportan de forma automática, como si ha utilizado elOBJETO cláusula, sin más cambios a su código. VFP utiliza el _ REPORTOUTPUT variable del sistema para determinar qué aplicación utilizar para la designación del correspondiente ReportListener clase para cada informe FORM comando. Con las nuevas características de extensibilidad en VFP 9.0 Report Writer, se puede aprovechar el Generador de informes, el motor de informes, y la superficie vista previa. Usted puede dar vuelta a nivel mundial en las nuevas funciones o puede convertirlos en forma individual para diversos informes.También puede dejar las nuevas características de despegue y ejecutar informes como si estuvieras en las versiones anteriores de VFP. Para obtener más información acerca de cómo utilizar la salida a objetos asistida, véase: La VFP 9.0 Report Writer En Acción .

Entornos de datos La VFP 9.0 Report Writer ahora puede compartir los entornos de datos con otros informes. Entornos de datos también se pueden guardar como una clase y luego cargados en informes, según sea necesario. Esto ofrece un escenario de gran reutilización de definir las necesidades comunes de información.

Guardar como clase Para guardar un entorno de datos como una clase, empezar por definir el entorno de datos de un informe, como de costumbre. Mientras la ventana entorno de datos sigue activa, seleccione las nuevas Guardar como clase ... la opción del archivo de menú (véase la Figura 5 ).

Figura 5. Un nuevo "Guardar como clase ..." opción aparece en el menú Archivo en el entorno de datos es la ventana activa. Después de seleccionar las Guardar como clase ... opción, el Guardar como clase aparece el cuadro de diálogo que se muestra en la Figura 6 . Elentorno de datos del botón Guardar grupo de opciones es el único botón de opción habilitada cuando se guarda un entorno de datos de un informe.

La Figura 6. Utilice el cuadro de diálogo Guardar como clase para declarar el nombre de la nueva clase y la biblioteca de clases para guardar el entorno de datos de un informe. Escriba un nombre para la clase en el Nombre cuadro de texto. A continuación, escriba el nombre de la biblioteca de clases que desea guardar la nueva clase pulg Si se introduce el nombre de una biblioteca de clases que no existe, se crea la nueva biblioteca de clases para usted. También puede

utilizar la elipse (...) botón para localizar una biblioteca de clases. Por último, puede introducir opcionalmente una descripción de la nueva clase.

Carga de un DE Además de definir manualmente el entorno de datos de un nuevo informe, VFP 9.0 también le da la posibilidad de cargar el entorno de datos de un informe existente o de un guardado entorno de datos de clase. El entorno de datos de carga ... opción en el Informe de menú (ver Figura 7 ) le permite seleccionar el entorno de datos a cargar.

Figura 7. Utilice el entorno de datos de carga ... opción de cargar un entorno de datos de un informe existente o de una clase de entorno de datos. Nota La característica de entorno de datos de carga sólo está disponible a través de los nuevos cuadros de diálogo ReportBuilder. Debe emitir _REPORTBUILDER = HOME () + "ReportBuilder.app" para tomar ventaja de esta característica.

A partir de un informe Al cargar el entorno de datos de otro informe, todo el código y los miembros de la original de entorno de datos se copian en el nuevo informe. Esto significa que los cambios realizados en el entorno de datos del informe original después de los hechos no se propagó a los informes creados a partir del informe original. La Propiedades del informe cuadro de diálogo, como se muestra en la Figura 8 , aparece después de seleccionar Load Data Ambiente ... Del Informemenú. Utilice este menú para seleccionar el informe que el entorno de datos que desea copiar en el presente informe.

Figura 8. Utilice la ficha entorno de datos del cuadro de diálogo Propiedades del informe para decidir qué informe desea copiar un entorno de datos de. Seleccione la copia de otro archivo de informe de botón de opción y haga clic en Seleccionar ... botón. Esto invoca el Abierto cuadro de diálogo para que pueda elegir la que informe a copiar. Una vez que eligió un informe, aparece un cuadro de diálogo de confirmación (ver Figura 9 ).

La Figura 9. Confirme sus intenciones para copiar un entorno de datos mediante este cuadro de diálogo. VFP 9.0 está a punto de copiar el entorno de datos de otro informe al informe actual. Por lo tanto, VFP 9.0 le notifica que está a punto de sobrescribir el entorno de datos actual, y usted debe hacer clic en Sí para continuar. Esto le ayuda a recordar que todo lo que se ha definido en el entorno de datos del informe actual está a punto de ser sobrescritos. Si hace clic en No , no se hacen cambios y el proceso es abortado. Al hacer clic en Sí , el entorno de datos se copia y se le notificó con la caja de diálogo que se muestra en la Figura 10 .

La Figura 10. Este cuadro de diálogo confirma que el entorno de datos se ha copiado con éxito en el informe actual. Ya ha terminado de copiar el entorno de datos. Puede manipular el entorno de datos según sea necesario. Sin embargo, recuerde que los cambios realizados en el entorno de datos del informe original después de este punto, no se propaguen a este informe.

Desde una Clase DE Al cargar el entorno de datos de una clase, se añade código al entorno de datos del nuevo informe que se enlazará con el original entorno de datos de clase y crear una instancia en tiempo de ejecución. Esto significa que los futuros cambios realizados en el entorno de datos de clase se propagarán en los informes utilizando el entorno de datos de clase. Usando el Propiedades del informe cuadro de diálogo, se muestra en la Figura 8 , haga clic en el enlace a una clase visual DE botón. A continuación, haga clic en el Select ... botón para invocar el Abierto cuadro de diálogo que puede utilizar para elegir la biblioteca de clase ya qué clase de usar. El mismo cuadro de diálogo de confirmación que se muestra en la Figura 9 aparece después de seleccionar una clase. Después de confirmar sus intenciones, el entorno de datos se actualiza y se le notifica para su finalización, con el cuadro de diálogo que se muestra en la Figura 10 . En este punto, el código ha sido añadido a algunos de los métodos de entorno de datos. Algunos de los métodos tienen un código muy simple, sin nada más que un DODEFAULT () de comandos. La razón de esto es BindEvents () no funciona a menos que el método contiene al menos una línea de código.

Código de entornos de datos Carga de un entorno de datos de una clase agrega automáticamente código para varios métodos como se muestra y se describe a continuación.

Método Init El siguiente código en el Init se necesita método para garantizar BindEvents () funciona como se esperaba. * ------------------------------------------------- ---- * * ESTE CÓDIGO método fue insertado por el Generador de informes * * ------------------------------------------------- ---- * DODEFAULT ()

BeforeOpenTables Método

El siguiente código crea una nueva propiedad en el entorno de datos que contiene una referencia de objeto para el entorno de datos de clase que se está cargando. A continuación, los eventos en este entorno de datos están vinculados a los eventos correspondientes en el entorno de datos de clase.Sin embargo, las Init y Destroy eventos no están obligados. Por último, el BeforeOpenTables caso del entorno de datos de clase se dispara. * ------------------------------------------------- ---- * * ESTE CÓDIGO método fue insertado por el Generador de informes * * ------------------------------------------------- ---- * LOCAL loMember, laDEEvents [1], liMember, liMembers, loBoundMember

THIS.AddProperty ("BoundDE", NEWOBJECT ("de_insurance", "c: \ VFP9 \ rwde.vcx")) SI VARTYPE (THIS.BoundDE) = "O" Y SUPERIOR (THIS.BoundDE.BaseClass) = "entorno de datos" * Eventos Enlazar aquí, omitiendo el Init y Destroy. * La FRX DE y sus miembros sólo pueden tener eventos de base, * No de manera que tanto la comprobación de PEMSTATUS es necesario: liMembers = AMEMBERS (laDEEvents, esto, 3) PARA liMember = 1 A liMembers SI INLIST (SUPERIOR (laDEEvents [liMember, 1]), "INIT", "destruir") LAZO ENDIF SI INLIST (SUPERIOR (laDEEvents [liMember, 2]), "event", "método") BINDEVENT (ESTA,; laDEEvents [liMember, 1]; THIS.BoundDE,; laDEEvents [liMember, 1]) ENDIF ENDFOR * Ahora haz los miembros con la comprobación correspondiente, * De nuevo sin esperar Init y Destroy: PARA CADA loMember EN THIS.Objects SI PEMSTATUS (THIS.BoundDE, loMember.Name, 5) Y; SUPERIOR (PEMSTATUS (THIS.BoundDE, loMember.Name, 3) = "objeto" loBoundMember = eval ("THIS.BoundDE." + loMember.Name) IF (loBoundMember.BaseClass == loMember.BaseClass) liMembers = AMEMBERS (laDEEvents, loMember, 3) PARA liMember = 1 a liMembers SI INLIST (SUPERIOR (laDEEvents [liMember, 1]), "INIT", "destruir") LAZO ENDIF SI INLIST (SUPERIOR (laDEEvents [liMember, 2]), "event", "método") BINDEVENT (ESTA,; laDEEvents [liMember, 1]; loBoundMember,; laDEEvents [liMember, 1]) ENDIF ENDFOR ENDIF ENDIF ENDFOR THIS.BoundDE.BeforeOpenTables () ENDIF

Método AfterCloseTables

El código siguiente en el AfterCloseTables se necesita método para garantizar BindEvents () funciona como se esperaba. * ------------------------------------------------- ---- * * ESTE CÓDIGO método fue insertado por el Generador de informes *

* ------------------------------------------------- ---- * DODEFAULT ()

Destruye Método

El código siguiente agrega al Destroy método desenlaza métodos de entorno de datos de este informe del entorno de datos de clase. El código también elimina la referencia de objeto al entorno de datos de clase. * ------------------------------------------------- ---- * * ESTE CÓDIGO método fue insertado por el Generador de informes * * ------------------------------------------------- ---- * LOCAL loMember UNBIND de (ESTE) PARA CADA loMember en THIS.Objects UNBIND de (loMember) ENDFOR SI PEMSTATUS (this, "BoundDE", 5) y superior (PEMSTATUS (this, "BoundDE", 3)) = "PROPIEDAD" THIS.BoundDE = NULL ENDIF

Método Error

El código siguiente en el error que se necesita método para garantizar BindEvents () funciona como se esperaba. * ------------------------------------------------- ---- * * ESTE CÓDIGO método fue insertado por el Generador de informes * * ------------------------------------------------- ---- * LPARAMETERS nError, cMethod, nLinea DODEFAULT (nError, cMethod, nLinea)

Protección

En VFP 9.0, puede crear protección para uno o más objetos de la presentación cuando se utiliza el Diseñador de informes o el Diseñador de etiquetas.Esto le da la capacidad de permitir a sus usuarios modificar un informe, sin embargo, evitar que hagan ciertos cambios.

Establecer indicadores de protección Objetos de diseño tienen cinco modos de protección diferentes que se pueden establecer, con objetos de campo que tienen una opción de protección adicional. Bandas tienen dos modos de protección diferentes que se pueden establecer. El informe en sí tiene una gran variedad de modos de protección que se pueden establecer. Tenga en cuenta las nuevas características de protección sólo se pueden establecer a través de las nuevas ReportBuilder cuadros de diálogo. Debe emitir _ ReportBuilder = HOME () + "ReportBuilder.app" para tomar ventaja de estas características.

La protección de un objeto Para proteger un objeto de diseño en el Diseñador de informes, seleccione el Propiedades cuadro de diálogo para el objeto. La Propiedades cuadro de diálogo se puede invocar desde el Informe menú después de seleccionar el objeto, en el menú contextual del objeto, o haciendo doble clic en el objeto. Figura 11 muestra la protección ficha del Propiedades cuadro de diálogo para un objeto de campo.

La Figura 11. Utilice la ficha Protección del cuadro de diálogo Propiedades para establecer modos de protección de un objeto de diseño. Puede establecer los siguientes cinco modos de protección de los objetos de diseño: 



 



Coloque una marca de verificación en el cuadro de selección de objeto no se puede mover o cambiar de tamaño para evitar que el usuario mueva el objeto de presentación a una posición diferente en la superficie de diseño y para evitar que el usuario cambiar el tamaño de este objeto. Coloque una marca de verificación en el cuadro de selección de objeto no puede ser editado para evitar que el usuario realice ningún cambio en las propiedades de este objeto de diseño. Coloque una marca de verificación en el cuadro de selección de objeto no se puede eliminar para evitar que el usuario elimine este objeto. Coloque una marca de verificación en el cuadro de selección de objeto no se puede seleccionar para evitar que el usuario seleccione el objeto.Cuando se selecciona esta opción, las conductas de protección de los objetos no pueden ser movidos o tamaño , a objeto no se puede editary objeto no se puede eliminar también se imponen. Coloca una marca de verificación en el cuadro de selección de objeto no es visible en el Diseñador de prevenir este objeto aparezca en el Diseñador de informes en modo protegido. Cuando se selecciona esta opción, se impone también el comportamiento de protección de las otras cuatro opciones.

El subtítulo de tiempo de diseño parte de este cuadro de diálogo sólo se aplica a los objetos de campo. La cadena literal entrado en este cuadro de texto se muestra en el Diseñador de informes,

en lugar de la expresión . Esto le da la oportunidad de mostrar algo que es fácil de usar en lugar de una expresión complicada.

Protección de una banda Para proteger a una banda en el Diseñador de informes, seleccione el Propiedades cuadro de diálogo para la banda. La Propiedades cuadro de diálogo se puede invocar desde las Edit Bands ... opción en el Informe de menús, en el menú contextual de la banda, o haciendo doble clic en la barra gris de la banda. Figura 12 muestra la protección ficha del Propiedades de diálogo caja para una banda.

Figura 12. Utilice la ficha Protección del cuadro de diálogo Propiedades de la banda para establecer modos de protección de la banda. Puede configurar los dos modos de protección para las bandas siguientes: 



Coloque una marca de verificación en el cuadro de selección de banda no se puede editar para evitar que la banda Propiedades cuadro de diálogo de ser accesible para el usuario. Coloque una marca de verificación en el cuadro de selección de banda no se puede cambiar de tamaño para evitar que el usuario pueda cambiar el tamaño de la banda.

La protección de un Informe Para establecer la protección general del informe, seleccione el Propiedades del informe cuadro de diálogo. Puede invocar este cuadro de diálogo seleccionando Propiedades desde el Informe de menús o en el menú de contexto del informe. Figura 13 muestra la protección ficha del Propiedades del informe cuadro de diálogo.

La Figura 13. Utilice la ficha Protección del cuadro de diálogo Propiedades del informe para establecer modos de protección generales de un informe. La parte superior de este cuadro de diálogo le permite definir las fichas de la Propiedades del informe cuadro de diálogo no están disponibles para el usuario. Para cada una de las selecciones realizadas en esta área, en la ficha correspondiente de las Propiedades del informe cuadro de diálogo está deshabilitada. La protección opción está siempre activada y desactivada. La opción Regla / Cuadrícula está desactivado porque la etiqueta no puede ser protegido, sin embargo, aparece en el cuadro de diálogo para que las selecciones son consistentes con las lengüetas del Informe cuadro de diálogo. La parte inferior de este cuadro de diálogo le permite definir qué opciones de menú no están disponibles para el usuario. Para cada una de las selecciones en esta área, la opción del menú de aplicación está desactivado.

Honrando Flags Protección Para invocar la protección durante un diseñador de informes o una sesión de Marca de diseño, utilice el PROTEGIDA palabra clave como se muestra en los siguientes ejemplos: Crear informe MyReport PROTEGIDA MODIFICAR INFORME MyReport PROTEGIDA Crear etiqueta MyLabel PROTEGIDA MODIFICAR LA ETIQUETA MyLabel PROTEGIDA Si el PROTEGIDA no se utiliza la palabra clave, el informe de las funciones de diseño como si no la protección se aplica a los objetos de la presentación.

Mejoras en la interfaz de usuario Muchos cambios se han hecho para la interfaz de usuario para hacer informes de diseño más sencillo e intuitivo. Los menús se han revisado, los menús contextuales se han cambiado, y nuevas opciones se han añadido a la barra de herramientas del Diseñador de informes. El Generador de expresionescuadro de diálogo Opciones de generador de expresiones cuadro de diálogo tienen

nuevos comportamientos, y algunas otras mejoras en la interfaz de usuario diversos han sido añadidos a la VFP 9.0 Report Writer.

Menús El sistema de menús informe ha sido revisado en VFP 9.0 para dar cabida a nuevas opciones. Además, algunas opciones se han re-etiquetado de claridad y algunas opciones se han repetido en varios menús para permitir un acceso más fácil. Figuras 14-16 muestran los nuevos cambios en el menú.

La Figura 14. La nueva "Guardar como clase ..." opción aparece en el menú Archivo.

La Figura 15. Una nueva opción se ha añadido a la barra de herramientas del Diseñador de informes y las líneas horizontales se han añadido a separar las líneas de cuadrícula y Mostrar opciones de posición de las otras opciones.

La Figura 16. Muchos cambios aparecen en el menú Informe, incluidas las opciones relabeled, nuevas opciones, y la adición de la opción Vista preliminar.

Menús contextuales Menús contextuales existentes se han mejorado con elementos adicionales y son más consistentes con los cuadros de diálogo que invocan. Otros artículos en el Diseñador de informes que anteriormente no tenían menús contextuales hacen ahora. Figuras 17-19 muestran los nuevos cambios.

La Figura 17. El menú de contexto global tiene nuevas opciones y una opción relabeled.

Figura 18. Invoque el nuevo menú contextual banda haciendo clic derecho en la barra gris de cualquier banda.

La Figura 19. Invocar el menú contextual del objeto de diseño, haga clic en un objeto de diseño.

Barra de herramientas La barra de herramientas de Report Designer tiene algunos nuevos botones, como se muestra en la Figura 20 .

La Figura 20. Nuevas opciones de configuración de página y propiedades de fuente se han añadido a la barra de herramientas del Diseñador de informes.

Cuadro de diálogo Generador de expresiones Algunos cambios se han hecho para la Expresión de informe cuadro de diálogo. Figura 21 muestra la ampliación de Expresión de informe cuadro de diálogo, lo que permite más espacio para introducir una expresión de informe.

La Figura 21. Tome ventaja de la "Expresión de campo sobre el Informe:" más alto cuadro de edición al entrar expresiones prolijas. Cuando el _REPORTBUILDER variable del sistema está vacía, el comportamiento nativo del Generador de expresiones cuadro de diálogo es el siguiente.Sólo las tablas definidas en el entorno de datos se muestran en el Campos cuadro de lista. Tablas abra fuera del entorno de datos no están disponibles en el cuadro de lista.

Cuando el _REPORTBUILDER variable del sistema se establece en ReportBuilder.app , el comportamiento del generador de expresiones cuadro de diálogo es muy diferente. En primer lugar, el Generador de expresiones se definen en _GETEXPR se invoca en lugar de los nativos Generador de expresiones . Figura 22 muestra los indicadores predeterminados Generador de expresiones cuadro de diálogo.

La Figura 22. Utilice el cuadro combinado "de la tabla" para seleccionar campos de cualquier tabla abierta. Este generador de expresiones cuadro de diálogo tiene un cuadro combinado para elegir qué tabla se debe utilizar cuando se enumeran los campos de la Campos cuadro de lista. Sin embargo, sólo las tablas que están actualmente en uso se muestran en el cuadro combinado. Este es un punto importante de recordar, porque las tablas definidas en el entorno de datos no se abren automáticamente mediante el Diseñador de informes, por lo que no aparecen automáticamente en el cuadro combinado. Esto le da la capacidad de controlar lo que las tablas están disponibles para los usuarios finales, cuando se les permite modificar los informes en la aplicación. Es posible que haya definido algunas mesas en el entorno de datos que usted necesita, pero usted no quiere que el usuario tenga acceso. Así pues hay que abrir específicamente las tablas que desee a los usuarios acceder, puede omitir las tablas que desee evitar que.

Generador de expresiones cuadro de diálogo Opciones El campo alias de grupo de opciones está activada en el Generador de expresiones Opciones de cuadro de diálogo, como se muestra en la Figura 23 .Este grupo de opciones le permite indicar si desea o no que el alias de tabla añaden a la expresión de informe al momento de retirar los campos desde el Generador de expresiones cuadro de diálogo.

La Figura 23. Utilice el alias de grupo de opciones de campo para indicar si o no los alias de campo se agregan a los campos seleccionados en el cuadro de diálogo Generador de expresiones. El Siempre agregue alias y Nunca agregue alias botones de opción causan VFP 9.0 para agregar automáticamente los alias de la tabla, o no poner los alias de la tabla, para todos los campos. El comportamiento de los Añade alias no seleccionados sólo botón de opción depende del valor de la _ReportBuilder variable del sistema. Si el _ ReportBuilder variable del sistema está vacía, cualquier campo elegido de una tabla que no es elInitialSelectedAlias es prefijado con el alias de tabla. Los campos de la InitialSelectedAlias mesa no tienen el prefijo del alias de tabla. Si el _ ReportBuilder variable del sistema se establece en ReportBuilder.app , los Añade alias no seleccionados sólo opción utiliza lógica un poco distinta. El alias seleccionado actualmente se utilizan en lugar de las InitialSelectedAlias para determinar si procede o no el prefijo campo con el alias de tabla. Además de seleccionar un campo del Generador de expresiones cuadro de diálogo arrastrando un campo desde el entorno de datos para el informe de diseño honra la superficie de ajuste del alias de campo grupo de opciones. Además, existe una nueva opción en el Informe de la pestaña Opciones de cuadro de diálogo, como se muestra en la Figura 24 . Esta opción determina cuáles son los predeterminados alias de campo es la creación de todos los informes de nueva creación.

La Figura 24. Utilice la opción Generador de expresiones en la ficha Informes del cuadro de diálogo Opciones para configurar el comportamiento predeterminado para el Generador de expresiones.

Mejoras Varios UI Varias otras mejoras en la interfaz de usuario ha mejorado el diseño de informe experiencia.

El cursor del ratón El cursor del ratón cambia ahora para proporcionar una indicación visual cuando un objeto puede cambiar de tamaño (véase la Figura 25 ).

La Figura 25. Utilice el nuevo cursor del ratón para saber cuando un objeto se puede cambiar de tamaño.

Cuadro de diálogo Selección múltiple VFP 9.0 tiene ahora una selección múltiple cuadro de diálogo, que le permite configurar la protección y la impresión cuando las propiedades de más de un objeto de diseño a la vez. También le permite cambiar cualquiera de las otras propiedades de cualquier objeto de diseño individual. Para utilizar esta nueva función, seleccionar más de un objeto de diseño y, a continuación, haga doble clic en cualquiera de los objetos para invocar la selección múltiple cuadro de diálogo, se muestra en la Figura 26 .

La Figura 26. Utilice la ficha Selección del cuadro de diálogo de selección múltiple para escoger qué diseño objetos que desea trabajar. Los objetos de la presentación que se seleccionaron al invocar este cuadro de diálogo se enumeran en la primera pestaña de este cuadro de diálogo.Para trabajar con los objetos de la presentación definidos en un informe, utilice CTRL + A para seleccionar todos los objetos de presentación antes de invocar este cuadro de diálogo. El Ordenar por opción le permite ordenar la lista de objetos de la presentación por Tipo o Localización en el informe. La Eliminar de la lista de botón elimina los objetos de la presentación seleccionada de la lista. Haga doble clic en cualquier elemento de la lista, y la aplicable Propiedades del cuadro de diálogo del objeto individual se invoca. El Properties ficha del Selección múltiple cuadro de diálogo, se muestra en la Figura 27 , se utiliza para cambiar las propiedades de todos los elementos que se enumeran en el Selección de tabulación.

La Figura 27. Use la ficha Propiedades del cuadro de diálogo de selección múltiple para cambiar las propiedades de protección y la impresión cuando la lógica de los objetos de la presentación seleccionados a la vez. Seleccione el Aplicar estos parámetros de protección de los objetos seleccionados casilla de verificación para permitir que los Protección opciones.Seleccione el Aplicar esta condición a los objetos seleccionados al guardar casilla de verificación para habilitar la impresión en opción. Cambie laprotección y la impresión cuando los ajustes según sea necesario, a continuación, seleccione Aceptar para cerrar el cuadro de diálogo y aplicar los cambios a todos los objetos de la presentación que figuran en la primera ficha.

Más niveles de zoom La ventana de vista previa tiene más niveles de zoom (ver Figura 28 ).

La Figura 28. Utilice cualquiera de los nuevos niveles de zoom en la vista previa de VFP 9.0 para una mejor visibilidad. VFP 9.0 ha hecho un montón de mejoras en la interfaz de usuario, incluyendo menús, menús contextuales y barras de herramientas. Los cambios en elGenerador de expresiones cuadro de

diálogo y opciones Generador de expresiones cuadro de diálogo también se han incrementado las opciones disponibles para usted. Otras mejoras incluyen el cursor del ratón, la selección múltiple cuadro de diálogo y, a más niveles de zoom.

Mejoras de objetos de diseño Algunas mejoras se han añadido a los objetos de diseño, incluyendo una opción para controlar los caracteres de la plantilla, un modo de ajuste de expresiones de caracteres, y la posición relativa y absoluta. Nota Para aprovechar las ventajas de la mejora de modo Trim, debe utilizar la nueva salida asistida objeto, ya sea directamente mediante la creación de un ReportListener objeto, o indirectamente a través de la SET REPORTBEHAVIOR 90 comandos.

Caracteres plantilla La propiedades del campo cuadro de diálogo tiene una nueva sección para personajes de plantilla , como se muestra en la Figura 29 . Las dos opciones disponibles son Overlay y Interleave . Determinan cómo se utilizan los caracteres especiales en el formato.

La Figura 29. Los caracteres de plantilla determinan cómo se aplican los caracteres especiales de formato a los datos. Cuando el recubrimiento se utiliza la opción, los caracteres especiales se tratan como parte de los datos y la superposición de cualquier otro carácter específico en la posición dada. Por ejemplo, cuando la expresión de formato es "999-999", y los datos contienen "123456", el informe muestra "123-56".Observe cómo el "4" se sustituye por el guión en la expresión de formato. Cuando el Interleave se utiliza la opción, el carácter especial se inserta en entre caracteres existentes en los datos. Por ejemplo, cuando la expresión de formato es "999-999", y los datos

contienen "123456", el informe muestra "123-456". Tenga en cuenta que el guión se inserta entre "3" y "4".

Modo de ajuste de expresiones de caracteres Antes de VFP 9.0, objetos de campo siempre se recortaron a la palabra más cercana cuando el texto era demasiado largo. En VFP 9.0, una nueva opción en la propiedades del campo cuadro de diálogo le permite determinar cómo se recorta el texto (ver Figura 30 ).

La Figura 30. Utilice el modo de ajuste de expresiones de caracteres para indicar el método utilizado para cortar texto largo. Las seis opciones de acabado son los siguientes: 

  

Seleccione Por defecto recortar de utilizar el comportamiento predeterminado, que es el mismo que el ajuste a la palabra más cercana, añada puntos suspensivos opción. Este comportamiento es similar a las versiones anteriores de VFP, con la excepción de que tiene los puntos suspensivos anexa. Seleccione Recorte de carácter más cercano a tener el texto recortado hasta el último carácter completo que cabe en el área definida. Seleccione Recortar a la palabra más cercana para que el texto recortado a la última palabra completa que cabe en el área definida. Seleccione Recorte de carácter más cercano, añadir puntos suspensivos para que el texto recortado hasta el último carácter completo que cabe en el área definida, una vez que una elipsis (...) se añade el texto que se imprime.





Seleccione Recortar a la palabra más cercana, añada puntos suspensivos para que el texto recortado a la última palabra completa que cabe en el área definida, una vez que una elipsis (...) se añade el texto que se imprime. Seleccione Filespec: Mostrar camino interior como puntos suspensivos para que los directorios internos de una larga ruta y el nombre sustituido por una elipsis (...) cuando el texto completo no cabe en el área definida.

Tamaño y posición Otra nueva función disponible en objetos de diseño es un mejor control del tamaño y la posición del objeto, como se muestra en la Figura 31 .

La Figura 31. Utilice el tamaño y la posición en las opciones de diseño en el cuadro de diálogo Propiedades para el control de posicionamiento relativo y absoluto. Cuando se agrega un objeto con el informe, los valores de partir de la página arriba , de izquierda a derecha , altura y anchura se ajustan automáticamente. Es importante tener en cuenta que la parte superior de la página es la propiedad con respecto a la parte superior de la página en el Diseñador de informes, lo que significa que tiene en cuenta la altura de las barras grises sobre el objeto. Cambio de la parte superior de la página de propiedades puede sin querer mover el objeto a otra banda.

Posicionamiento relativo

La primera página de la propiedad y el Alto inmuebles trabajar juntos para determinar si se utiliza la posición absoluta o posición relativa. Cuando laparte superior de la página propiedad se establece en un valor que cae dentro de la superficie del Diseñador de informes, y el valor de la Alturapropiedad es menor o igual a la altura de la banda que el objeto se encuentra en, se utiliza la posición relativa. Se necesita el posicionamiento relativo de los objetos en bandas distintas del encabezado y pie de página.

Posicionamiento absoluto Cuando la parte superior de la página propiedad se establece en un valor que está fuera de la superficie del Diseñador de informes o el valor de laAltura propiedad es mayor que la altura de la banda que el objeto se encuentra en, se usa el posicionamiento absoluto. Posicionamiento absoluto significa que el objeto se imprime exactamente en el mismo lugar en cada página. Posicionamiento absoluto se puede utilizar para crear una marca de agua en un informe. Coloque una imagen gráfica en la banda Encabezado de página, y ponerlo a contenidos de escala, mantener la forma . Cambie la parte superior de la página propiedad y el de izquierda a derecha para indicar la propiedad de la esquina superior izquierda de donde desea que la marca de agua para comenzar. Cambie la altura y la anchura propiedades para indicar el tamaño global de la marca de agua, con cuidado de no extenderse más allá de los márgenes de impresión de la impresora.

Características internacionales Algunos cambios se han hecho para VFP 9.0 para hacer informes más funcional en situaciones internacionales. En concreto, los conjuntos de caracteres o secuencias de comandos de lenguaje, se puede configurar para las fuentes. Las unidades tienen más opciones, y la STRCONV () comando tiene más opciones.

FontCharSet El juego de caracteres, o escritura de la lengua, de una fuente pueden establecerse en el fuente cuadro de diálogo, como se muestra en la Figura 32 .Esto se puede configurar para un objeto específico en el informe y que también se puede configurar para la fuente predeterminada de todo el informe.

La Figura 32. Use el menú desplegable de secuencias de comandos para seleccionar un conjunto de caracteres o lenguaje de script.

Unidades La escala de la cuadrícula Set cuadro de diálogo tiene tres adicionales Scale Ruler opciones para permitir que usted fije específicamente la escala en pulgadas o métricas / centímetros o para activar la regla de fuera. Esto le da un mejor control cuando se tiene clientes con varios valores predeterminados del sistema. Figura 33 muestra las nuevas opciones en la escala de cuadrícula Set cuadro de diálogo.

La Figura 33. Utilice el nuevo cuadro combinado desplegable en el cuadro de diálogo Escala Cuadrícula Set para un mejor control sobre la escala de la regla. Los mismos cambios realizados en la escala de cuadrícula Set cuadro de diálogo también se han hecho con el Informe de la pestaña Opciones delcuadro de diálogo.

STRCONV ()

Otro cambio de VFP 9.0 que ayuda con los reportes internacionales es un cambio en el STRCONV () función. Ahora puede utilizar para manejar transformaciones utilizando páginas de códigos y FontCharSet valores, junto con los ID de configuración regional. La siguiente documentación de ayuda explica la nueva funcionalidad de la STRCONV () de comandos. STRCONV (cExpression, nConversionSetting [, nRegionalIdentifier [, nRegionalIDType]]) nRegionalIDType: 0 - (predeterminado) nRegionalIdentifier se LocaleId. 1 - nRegionalIdentifier es la página de código. 2 - nRegionalIdentifier es FontCharSet. Para nConversion ajustes 1, 2, 3, 4, 7, y 8, sólo nRegionalIdentifier = 0 se admite Para el diseño de informes no están en inglés, las nuevas mejoras en el FontCharSet , las unidades y el STRCONV () comando permitir una mayor flexibilidad en el diseño.

Mejoras en la impresión Algunos comandos existentes y cuadros de diálogo se han mejorado para una mejor funcionalidad. El SYS (1037) de comandos tiene un nuevo parámetro y el valor de cambio, el GetFont () comando tiene un nuevo estilo, y los APRINTERS () comando tiene tres nuevas columnas.

SYS (1037) El SYS (1037) comando se utiliza para invocar la configuración de impresión cuadro de diálogo, así como cambiar la impresora predeterminada de VFP. Antes de VFP 9.0, el SYS (1037) comando no tenía ningún valor significativo retorno. Siempre devuelve una cadena vacía, independientemente de lo que hizo el usuario. Esto hace que sea imposible saber si el usuario pulsa el Cancel botón. En VFP 9.0, un nuevo parámetro ha sido añadido a la SYS (1037) la función, así como un valor de retorno significativa (ver la Tabla 1 .) Tabla 1. Nuevo parámetro y valor devuelto por SYS (1037)

Parámetro

Descripción

Valo

SYS (1037)

El mismo comportamiento que las versiones anteriores, sólo que ahora devuelve un valor significativo.

0 can

Si el área de trabajo actual contiene una estructura equivalente a la de una estructura FRX, y no hay información de impresora se almacena en el área de trabajo actual, se invoca el cuadro de diálogo Configurar página. Si el usuario selecciona Aceptar en el cuadro de diálogo, VFP escribe la EXPR , TAG y tag2campos en el primer registro del cursor, y luego restaura el cursor a la anteriorRECNO () .

0=E estru

SYS (1037,1)

1=E selec

1=E selec actua

Si el área de trabajo actual no contiene la estructura adecuada, ningún cuadro de diálogo se invoca y se devuelve cero. SYS (1037,2)

Si el área de trabajo actual contiene una estructura equivalente a la de una estructura FRX, la información de la impresora por defecto VFP se escribe en elEXPR , TAG , y TaG2 campos del primer registro, y luego se restaura el cursor a la anterior RECNO () . Si el área de trabajo actual no contiene la estructura adecuada, no hay información se escribe en el cursor y se devuelve cero.

SYS (1037,3)

Si el área de trabajo actual contiene la estructura equivalente a la de una estructura FRX, el entorno de la impresora del FRX se guarda como la nueva impresora predeterminada de VFP. Además, se reescribe el entorno de la impresora a la FRX, por si acaso había alguna información no válida. Si el área de trabajo actual no contiene la estructura adecuada, no se toma ninguna acción y se devuelve el cero.

GetFont () Unos pequeños cambios se han hecho a la GetFont () de comandos.

Fuentes para imprimir únicamente El tercer parámetro de GetFont () tiene un nuevo valor. Pasando P dice VFP para mostrar sólo las fuentes imprimibles para la impresora predeterminada, como se muestra a continuación. = GetFont ('', 0, 'P')

FontCharSet

Como en las versiones anteriores de VFP, el cuarto parámetro de GetFont () se utiliza para identificar la FontCharSet . Sin embargo, un ligero cambio se ha hecho para el sentido de pasar 0 o 1 como el cuarto parámetro.  

Pasando 0 permite que el script cuadro combinado, establece expresamente "la escritura occidental", y devuelve el FontCharSet junto con los otros datos. Paso 1 permite que el script cuadro combinado, se establece el valor de la configuración regional del usuario y devuelve la FontCharSet junto con los otros datos.

Al igual que en versiones anteriores, omitiendo el cuarto parámetro desactiva el script cuadro combinado y no devuelve el FontCharSet como parte del valor de retorno.

APRINTERS () Un nuevo parámetro se ha añadido a los APRINTERS () de comandos para obtener información acerca de las impresoras. Usando el segundo parámetro opcional, como se muestra a continuación, hace que la matriz se rellena con tres columnas adicionales. lnPrinters = APRINTERS (laPrinters, 1) Las dos primeras columnas son las mismas que en las versiones anteriores; nombre de la impresora y el puerto de la impresora . Las tres nuevas columnas son del conductor , comentario , y ubicación .

0=N estru

1=V impr guard

0=N

1=V impr ajust

Llamadas APRINTERS () sin el segundo parámetro opcional proporciona el mismo comportamiento que en las versiones anteriores, es decir, dos columnas se devuelven.

Cuadros de diálogo modernos La configuración de impresión cuadro de diálogo ha sido renombrado a Configurar página y se ha modernizado. La impresora cuadro de diálogo también se ha modernizado cuando se ejecuta en Windows 2000 o sistemas operativos posteriores.

Cuadro de diálogo Configuración de página La Página de configuración cuadro de diálogo, se muestra en la Figura 34 , puede ser invocada por cualquiera de los métodos siguientes:   

Cuando el Diseñador de informes no es WONTOP () , seleccione Configuración de página del archivo de menú. Cuando el Diseñador de informes es WONTOP () , seleccione la página Configuración del botón Configurar página Informe cuadro de diálogo. Utilice SYS (1037).

La Figura 34. El nuevo cuadro de diálogo Configuración de página reemplaza el cuadro de diálogo Configuración de impresión mayor.

Cuadro de diálogo Imprimir La impresión cuadro de diálogo, se muestra en la Figura 35 , puede ser invocada por cualquiera de los métodos siguientes:  

Seleccione Imprimir desde el archivo de menú. Utilice la impresora para cláusulas de comandos en un comando, como REPORT FORM.

La Figura 35. El nuevo cuadro de diálogo de impresión tiene un aspecto más moderno a la misma cuando se ejecuta en Windows 2000 o posterior.

Mejoras Data Group Algunas mejoras se han hecho para grupos de datos en el VFP 9.0 Report Writer.

Grupos máximos de Datos El número máximo de grupos de datos se ha aumentado de 20 a 74.

Las columnas horizontales Anteriormente, los informes con más de una columna definida como horizontal con un grupo de datos, desperdician una gran cantidad de espacio. La primera posición (fila 1, columna 1) se deja en blanco y de datos se inició en la columna 2 de la fila 1. También, una banda en blanco se desperdicia en entre cada conjunto de grupos de datos, como se muestra en la Figura 36 . Incluso si la altura de la banda Encabezado de grupo de datos es cero, VFP todavía reservado el espacio, como se muestra en la Figura 37 .

La Figura 36. Las versiones anteriores de VFP desperdicia mucho espacio al utilizar columnas horizontales con grupos de datos. (Haga clic en la imagen para ampliarla.)

Figura 37. Las versiones anteriores de VFP reservado espacio para conectores de grupo de datos, incluso cuando ninguno que define. (Haga clic en la imagen para ampliarla.) En VFP 9.0, el comportamiento de los grupos de datos y columnas horizontales ha sido cambiado. Cuando se encuentra un nuevo grupo de datos, se imprime en la columna 1 de la siguiente fila completa. El resto de esta fila se deja en blanco y no se utiliza para los detalles de impresión. Los detalles pertenecientes al grupo de datos comienzan en la columna 1 de la fila inmediatamente después de la fila del grupo de datos es impreso en, como se muestra en la Figura 38 . Además, no hay espacio adicional está reservado si la altura de la banda Encabezado de grupo de datos es cero, como se muestra en la Figura 39 .

La Figura 38. VFP 9.0 no desperdicia tanto espacio como las versiones anteriores cuando se utilizan columnas horizontales y grupos de datos.(Haga clic en la imagen para ampliarla.)

Figura 39. VFP 9.0 no reserva espacio adicional cuando la banda Encabezado de grupo de datos es 0 "de altura. (Click en la imagen para ampliarla.) El nuevo comportamiento, evitando la situación descrita anteriormente, puede romper algunos informes existentes. Sin embargo, un beneficio adicional de la nueva comportamiento es que la banda de grupo de datos puede ser estirado a través de todas las columnas, como se muestra en la Figura 40 .

La Figura 40. En VFP 9.0, se puede ampliar la banda Encabezado de grupo de datos a través de múltiples columnas. (Haga clic en la imagen para ampliarla.)

Bandas de múltiples Detalle Además de las mejoras de extensibilidad en el VFP 9.0 Report Writer, la nueva característica de banda de múltiples detalles es una de las mayores y más frecuentemente requeridos, mejoras. La nueva característica le permite procesar múltiples tablas secundarias para cada registro de una tabla principal.Un ejemplo de este tipo de informe se muestra en la Figura 41 .

La Figura 41. Este informe muestra la banda de múltiples detalle tiene tres bandas de detalle distintos para cada cliente. (Haga clic en la imagen para ampliarla.)

Tablas y Relaciones La comprensión de cómo las tablas padre e hijo trabajan juntos son la clave para la comprensión de cómo utilizar esta nueva característica. Como ejemplo de un escenario de múltiples detalles, supongamos que usted está escribiendo el informe se muestra en la Figura 41 . La base de datos para este escenario se muestra en la Figura 42 .

La Figura 42. Una base de datos de la muestra de los clientes, usuarios, Vehículos y Viviendas en una compañía de seguros. La tabla Customer es la tabla primaria y contiene un registro para cada cliente de la compañía de seguros. Los Miembros, Vehículos y tablas Homes son tablas secundarias de la tabla de clientes. La tabla de los miembros tiene un registro por cada miembro de la familia del cliente. La tabla de Vehículos mantiene un registro de cada vehículo asegurado por el cliente. La tabla Homes tiene un registro por cada vivienda asegurada por el cliente.

Conducir el Informe Una mesa es necesario para conducir el informe. En este ejemplo, la tabla de clientes es la mesa de conducción. Si utiliza el entorno de datos del informe para definir las tablas, establezca el InitialSelectedAlias propiedad a esta tabla. Si utiliza código para definir las tablas, asegúrese de que la tabla de clientes es el área de trabajo actual en el momento se ejecuta el informe.

Los "Alias de destino" Los alias de destino es el término utilizado para describir qué tabla es la tabla de conducir por una banda de detalle en particular. En este ejemplo, la tabla de miembros es el alias destino para la banda de detalle 1, la tabla de Vehículos es el alias destino para el detalle banda 2, y la mesa de los hogares es el alias destino para el detalle banda 3. Si no se define un alias destino para una banda de detalle, el comportamiento que se necesita es que en las versiones anteriores de VFP. En otras palabras, una banda de detalle se procesa por registro primario. Sin embargo, si se introduce el nombre de la tabla primaria como el alias destino, obtendrá resultados muy diferentes. Para cada registro de la tabla principal, VFP procesa a través de todos los registros de toda la tabla principal, imprimir cada registro primario en la banda de detalle. Por lo tanto, si usted tiene una tabla con 10 registros primarios, y se establece el alias

destino de una banda de detalle de la tabla primaria, el informe final imprime 10 series de 10 registros, o un total de 100 registros.

Relaciones Es importante darse cuenta de que las relaciones juegan un papel importante en el funcionamiento de las bandas de detalles múltiple. VFP utiliza las relaciones entre la tabla principal y las tablas secundarias para desplazarse por los registros. Puede utilizar SET RELATION o SET SKIP para definir estas relaciones. Si va a abrir las tablas en el entorno de datos y las relaciones ya están definidos en la base de datos, estas relaciones son honrados. Si va a abrir las tablas en el código, el siguiente ejemplo muestra cómo configurar las tablas de la lista Seguro cliente se muestra en la Figura 41 . * - Abrir las tablas secundarias USO EN Miembros 0 ORDEN CustomerFK Utilizar un vehículo en 0 ORDEN CustomerFK USO EN Homes 0 ORDEN CustomerFK * - Abra la tabla primaria SELECT 0 USO cliente CustomerPK ORDEN * - Establecer las relaciones entre los padres y los niños JUEGO EN RELACIÓN CON CustomerPK Miembros JUEGO EN RELACIÓN CON CustomerPK Vehículos ADITIVO JUEGO EN RELACIÓN CON CustomerPK Homes ADITIVO * - Ejecutar el informe INFORME FORM PREVIEW Seguros

Definir Bandas múltiples Detalle Por defecto, los nuevos informes se crean con una banda de detalle.

Adición de bandas adicionales Detalle Bandas de detalle adicionales se agregan a través de la Bandas Opcional cuadro de diálogo que se muestra en la Figura 43 . Para llamar a este cuadro de diálogo, seleccione Bandas opcionales ... Del Informe menú. Este es el mismo cuadro de diálogo que antes se llamó Título / Resumen . Se ha cambiado el nombre para ajustarse mejor a la opción adicional añadido.

La Figura 43. Utilice los detalles del hilandero en el cuadro de diálogo Bandas opcional para ajustar el número total de bandas de detalle. Aumentar el Detalles spinner con el número total de bandas de detalle que desee en el informe. Es posible definir hasta 20 bandas de detalle para cada informe. Figura 44 muestra cómo se ve el Diseñador de informes después de elegir tres bandas de detalle.

La Figura 44. Este informe muestra tiene tres bandas de detalle definidos. (Haga clic en la imagen para ampliarla.)

Definición de los alias de destino El alias de destino se le asigna a una banda de detalle a través del Detalle cuadro de diálogo (ver Figura 45 ). Este cuadro de diálogo se puede invocar al seleccionar Edit Bands ... Del Informe menú y seleccionar la banda de detalle correspondiente. También puede llamar a este cuadro de diálogo haciendo doble clic en la barra gris de la banda de detalle correspondiente.

La Figura 45. Definir los "alias de destino" para cada banda de detalle en el cuadro de diálogo Detalle aplicable. Los alias de destino es una expresión, por lo tanto, se debe envolver el nombre de la tabla entre comillas. Una vez que tenga cada alias de destinatarios definidos, las barras grises que representan las bandas de detalle muestra el alias de destino (véase la Figura 46 ).

La Figura 46. El Diseñador de informes identifica a cada banda de detalle con un número y el alias destino asociado con él para que pueda identificar fácilmente las diferentes bandas de detalle. (Haga clic en la imagen para ampliarla.) Al crear informes banda múltiple detalle, es importante que los nombres de campos de prefijo con el nombre de alias aplicable. Esto evita cualquier confusión en cuanto a qué tabla un campo viene.

Los encabezados y pies de página Otra característica de la mejora de banda múltiple detalle es la posibilidad de agregar encabezados y pies de página a cada banda de detalle. Estos son similares a los encabezados y pies de grupo en algunos aspectos, pero diferentes en otros. Para cada registro primario que se procesa, se produce lo siguiente:         

El detalle 1 banda de cabecera se procesa. 1 La banda de detalle se procesa una vez para cada registro hijo en el alias destino asociado El detalle 1 banda de pie de página se procesa. El grupo encabezado detalle 2 se procesa. La banda de detalle 2 se procesa una vez para cada registro hijo en el alias destino asociado. La banda de pie de página detalle 2 se procesa. El detalle de 3 bandas encabezado es procesado. La banda de detalle 3 se procesa una vez para cada registro hijo en el alias destino asociado. El detalle de 3 bandas pie de página se procesa.

Para encender los encabezados y pies de página detalle, coloque una marca de verificación en el cuadro de selección de Detalle Encabezado / Pie de página en el Detalle de cuadro de diálogo para cada una de las bandas de detalle (véase la Figura 45 ). Para ayudar a resolver las bandas de detalle de otras bandas, en el triángulo que precede al nombre de la banda es sólida, donde los otros triángulos son claras (véase la Figura 47 ).

La Figura 47. Las bandas de detalle están marcados con triángulos sólidos y todas las otras bandas están marcados con triángulos abiertos.(Haga clic en la imagen para ampliarla.) Además del Diseñador de informes identificar cada banda de detalle, el Edit Bands cuadro de diálogo también indica que cada banda de cabecera, detalle banda de pie de página, y la banda de detalle utilizando el número secuencial de la banda. El Edit Bands cuadro de diálogo se puede invocar al seleccionar Edit Bands ... Del Informe menú (ver Figura 48 ).

La Figura 48. El cuadro de diálogo Edit Bands utiliza el número secuencial de cada banda de detalle para ayudar a identificar a cada banda de detalle, la banda de cabecera detalle, y el detalle de banda pie de página. Es importante tener en cuenta que, incluso si no existen registros de detalle de una banda de detalle en particular, el detalle de cabecera asociada y detalle bandas de pie de página todavía imprimir. Si no desea que el encabezado de detalle y bandas de pie de página del detalle en estas condiciones, puede utilizar la siguiente impresión cuando la lógica en cada objeto de diseño se define en las bandas de suprimir su impresión. Asegúrese de colocar una marca de verificación en el cuadro de selección de Quitar línea si en blanco para estos objetos de la presentación también. NO EOF (alias>