Además de actuar como una aplicación de generación de informes independiente y eficaz, Crystal Reports proporciona un módulo de generación de informes que puede vincular y al que puede tener acceso desde aplicaciones de Visual Basic. Como programador que utiliza Visual Basic 5.0, puede agregar capacidades sofisticadas para generar e imprimir informes a las aplicaciones sin la costosa tarea de escribir su propio código.
El motor de informes de Crystal es una biblioteca de vínculos dinámicos (DLL) que permite que las aplicaciones tengan acceso a las mismas características de impresión de informes que están disponibles en Crystal Reports. Como usuario con licencia de Crystal Reports, recibe derechos para entregar gratuitamente la DLL del motor de informes (CRPE.DLL) con cualquier aplicación que cree.
Desde una aplicación, tiene acceso al motor de informes mediante el control de Crystal ActiveX. Cuando se compilan, las aplicaciones enlazan con el motor de informes para agregar funcionalidad de generación de informes a la aplicación. Los informes pueden ser simples, produciendo un único informe que se envía a una impresora o a una ventana de impresión sin opciones disponibles para el usuario, o puede ser complejo, permitiendo que el usuario cambie aspectos tales como la selección de registros, ordenación, agrupación y decisión de dónde debe enviarse el informe resultante.
Antes de usar el control ActiveX
Antes de agregar el control ActiveX a una aplicación, debe familiarizarse con algunas características clave del motor de informes. Revise los siguientes puntos y asegúrese de entenderlos todos antes de tratar de usar el control ActiveX.
· El motor de informes genera informes existentes. No puede crear archivos de informe mediante la funcionalidad del motor de informes. Los informes deben crearse mediante la aplicación Crystal Reports. Asegúrese de comprender el proceso de creación de informes antes de tratar de generar informes con el motor de informes.
· El motor de informes proporciona un cómodo complemento, por medio del control ActiveX, del proyecto de la aplicación de Visual Basic existente. Con unas pocas líneas de código se produce una eficaz herramienta de diseño y distribución de informes que de otra forma podría necesitar miles de líneas de código y varias semanas de producción.
· El motor de informes no requiere el uso de una interfaz de usuario fija; está diseñado para funcionar con su proyecto de desarrollo existente y le permite definir la interfaz de usuario con la que sus clientes y usuarios estén familiarizados y esperen de su producto.
Uso del motor de informes de CrystalCualquier proyecto de Visual Basic que incorpore el motor de informes Crystal requiere tres pasos:
· Crear los informes a los que tendrán acceso sus usuarios.
· Diseñar la interfaz de usuario en Visual Basic que controlará el motor de informes.
· Agregar el control ActiveX Crystal a su aplicación.
La creación de informes para incluirlos en aplicaciones es idéntica a la creación de informes para su propio uso; no existen restricciones. Mediante los procedimientos perfilados en el manual y la Ayuda de Crystal Reports, cree tantos tipos de informes como quiera poner a disposición de los usuarios. Puede crear informes tan simples o tan sofisticados como dicten sus necesidades.
Diseño de la interfaz de usuarioLa interfaz que desarrolle para permitir que los usuarios impriman informes sólo esta limitado por sus necesidades y por su imaginación. Funcionará siempre y cuando pueda usar el control ActiveX Crystal. El tipo de interfaz de usuario que seleccione no es importante para Crystal Reports.
Los métodos comunes de uso del motor de informes incluye un único comando de menú que produce un informe, un cuadro de diálogo que permite varias opciones para imprimir informes o una aplicación cliente completamente independiente a la que llama su aplicación. Todas las técnicas son aceptables y cada una tiene sus ventajas. La forma en que diseñe la interfaz de usuario puede depender de lo siguiente:
· el propósito de la aplicación,
· los tipos de informes que usará la aplicación,
· las opciones de impresión que quiera ofrecer con los informes, y
· si la aplicación ofrecerá un único informe o una elección entre varios informes.
Considere detenidamente la aplicación y las necesidades de los informes, y diseñe la interfaz de usuario que utilizará el motor de informes más eficientemente.
El control ActiveXActiveX es una nueva tecnología de Microsoft Corporation diseñada para traer aplicaciones más eficaces a equipos personales y redes locales. ActiveX va más allá de las aplicaciones que producen documentos estáticos para un entorno de Windows que proporciona controles activos, documentos y aplicaciones de cliente que pueden operar e interaccionar no solo entre sí, sino con redes intranet y con Internet.
Los controles ActiveX proporcionan capacidades complementarias que le permiten agregar componentes de aplicación, e incluso aplicaciones completas, a sus propios proyectos de desarrollo sin escribir más que unas pocas líneas de código. Crystal Reports es compatible con el concepto ActiveX mediante el control Crystal ActiveX. Use el control ActiveX para tener acceso al motor de informes Crystal y agregar fácilmente todo el poder de procesamiento de informes de Crystal Reports a sus propias aplicaciones de Visual Basic.
Consulte la documentación de Visual Basic para obtener información completa acerca del uso de controles ActiveX con Visual Basic. El resto de este capítulo describe información específica del control ActiveX Crystal.
Agregar el control ActiveX a un proyectoEl control ActiveX Crystal se instala en el directorio \WINDOWS\SYSTEM al instalar Visual Basic 5.0. El control ActiveX se agrega a un proyecto de Visual Basic mediante el comando Componentes del menú Proyecto de Visual Basic.
1 Abra Visual Basic.
2 Abra el proyecto al que desee agregar el control ActiveX.
3 Elija el comando Componentes del menú Proyecto. Aparecerá el cuadro de diálogo Componentes.
4 Si el control Crystal Report aparece en la lista Controles, haga clic en la casilla de verificación que hay junto a él, haga clic en Aceptar y vaya al paso 8.
5 Si el control Crystal Report no aparece en la lista Controles, haga clic en Examinar y aparecerá el cuadro de diálogo Agregar control ActiveX.
NotaCrystal Report Control es el nombre del control ActiveX Crystal cuando se agrega a un proyecto de desarrollo. El término control ActiveX hace referencia a un tipo de control, mientras que Crystal Report Control es el nombre del control ActiveX Crystal proporcionado por Crystal Reports. En esta documentación, los términos control ActiveX Crystal y Crystal Report Control se usan indistintamente para hacer referencia al control ActiveX incluido con Crystal Reports para Visual Basic.
6 Use los controles del cuadro de diálogo Agregar control ActiveX para encontrar y seleccionar el archivo CRYSTL16.OCX (16 bits) o CRYSTL32.OCX (32 bits). Este archivo se instala en el directorio \WINDOWS\SYSTEM de manera predeterminada. Una vez encontrado y seleccionado el archivo, haga clic en Abrir.
7 Crystal Report Control aparecerá en el cuadro de lista Controles. Haga clic en la casilla de verificación que hay junto al nombre del control y haga clic en Aceptar.
8 Visual Basic agrega el control ActiveX Crystal al cuadro de herramientas.
9 Cuando quiera agregar el control ActiveX a un formulario, haga doble clic en la herramienta y el programa lo instalará en el formulario activo
Uso del control ActiveX
Una vez que tenga un objeto control ActiveX Crystal en el formulario, se crea la conexión entre la aplicación y Crystal Reports estableciendo las propiedades del objeto en tiempo de diseño o cambiándolas en tiempo de ejecución. Las propiedades de ActiveX le permiten especificar:
· el nombre del informe que desea imprimir como respuesta al evento de una aplicación,
· el destino de un informe (ventana Vista previa, archivo de disco, impresora o correo electrónico),
· el número de copias que desea imprimir (si el informe va a la impresora),
· información del archivo de impresión (si el informe va a un archivo de disco),
· información de tamaño y posición de la ventana (si el informe va a una ventana Vista previa),
· información de fórmula de selección (si quiere limitar los registros del informe),
· información de orden, y
· otras propiedades relacionadas.
Las propiedades del control ActiveX Crystal pueden cambiarse en tiempo de diseño o en tiempo de ejecución. Sin embargo, tenga en cuenta que algunas propiedades sólo están disponibles en tiempo de ejecución. Estas propiedades no aparecen en tiempo de diseño.
Cambio de propiedades en tiempo de diseño
1 Haga clic en el control ActiveX que aparece en el formulario para seleccionarlo.
2 Haga clic con el botón secundario del mouse (ratón) y elija el comando Propiedades de Crystal del menú contextual que aparece. Aparecerá el cuadro de diálogo Páginas de propiedades.
3 Use las fichas y los controles de este cuadro de diálogo para cambiar las propiedades del control ActiveX en tiempo de diseño.
NotaLas propiedades del control ActiveX también aparecen en el cuadro Propiedades de Visual Basic en tiempo de diseño.
Cambio de propiedades en tiempo de ejecuciónLa mayoría de las propiedades del control ActiveX pueden establecerse en tiempo de ejecución agregando entradas simples al código del procedimiento. Las propiedades establecidas en tiempo de ejecución sustituyen a los valores establecidos en tiempo de diseño.
Use la propiedad Action o el método PrintReport para procesar realmente el informe en tiempo de ejecución. La propiedad Action y el método PrintReport sólo pueden usarse en tiempo de ejecución y son los únicos medios por los que el control ActiveX puede generar el informe realmente.
Para obtener más información acerca de cómo establecer el valor de determinadas propiedades en tiempo de ejecución, consulte la descripción de cada propiedad o en la Ayuda en pantalla de Crystal Reports. Cada descripción incluye código de ejemplo para establecer la propiedad en la aplicación de Visual Basic.
Índice de propiedades ActiveX
A continuación se enumeran las propiedades ActiveX, además de una breve descripción.
Action |
Es la propiedad que desencadena la impresión del informe. |
BoundReportFooter |
Propiedad True o False que especifica si el pie de página va a aparecer o no en el informe enlazado predeterminado. |
BoundReportHeading |
Propiedad de cadena que permite al usuario asignar un título al informe. |
Connect |
Inicia una sesión en un servidor SQL. |
CopiesToPrinter |
Especifica el número de copias que se van a imprimir si imprime en una impresora. |
DataFiles |
Especifica la ubicación de los archivos o tablas de base de datos usados en el informe. |
DataSource |
Especifica en qué control de datos busca los datos el control ActiveX Crystal Reports. |
Destination |
Especifica el destino en el que se imprimirá el informe (Ventana, Impresora o Archivo). |
DetailCopies |
Especifica el número de copias de cada registro de la sección Detalles que imprimirá el programa. |
DiscardSavedData |
Si los datos se guardan con el informe especificado, establecer esta propiedad a 1 (True) descarta los datos. |
EMailCCList |
Especifica la lista "CC" a la que desea enviar el mensaje de correo electrónico. |
EMailMessage |
Especifica la cadena del mensaje de correo electrónico. |
EMailSubject |
Especifica la línea de asunto del mensaje de correo electrónico. |
EMailToList |
Especifica la lista "A" a la que desea enviar el mensaje de correo electrónico. |
Formulas |
Especifica una nueva cadena para una fórmula existente. |
GraphData |
Obtiene y establece los datos usados para un gráfico especificado. |
GraphOptions |
Obtiene y establece una serie de opciones para el gráfico especificado. |
GraphText |
Obtiene y establece los diversos componentes de texto para el gráfico especificado. |
GraphType |
Obtiene y establece el tipo de gráfico usado en la sección seleccionada del informe especificado. |
GroupCondition |
Especifica qué tipo de cambio en el Campo de condición de grupo desencadenará la creación de un grupo. |
GroupSelectionFormula |
Especifica los grupos que se van a usar cuando imprima el informe. |
GroupSortFields |
Especifica el o los campos de grupo que se usarán para ordenar el los datos al imprimir informe. |
LastErrorNumber |
Devuelve el código de error para el último error de ejecución. |
LastErrorString |
Devuelve la cadena de error para el último error de tiempo de ejecución. |
Left |
Consulte la documentación de Visual Basic. |
MarginBottom |
Obtiene y establece el margen inferior para el informe especificado. |
MarginLeft |
Obtiene y establece el margen izquierdo para el informe especificado. |
MarginRight |
Obtiene y establece el margen derecho para el informe especificado. |
MarginTop |
Obtiene y establece el margen superior para el informe especificado. |
Name |
Consulte la documentación de Visual Basic. |
Password |
Introduce la contraseña necesaria para usar las tablas de la base de datos en un archivo restringido .mdb de Access. |
PrintDay |
Obtiene y establece el componente día de la fecha de impresión (si es diferente de la fecha real en que se imprime el informe). |
PrinterCollation |
Si especifica más de una copia para imprimir (mediante la propiedad PrinterCopies), PrinterCollation especifica si las copias se intercalarán o no. |
PrinterCopies |
Obtiene y establece el número de copias del informe para imprimir. |
RecordsRead |
Determina el número de registros leídos realmente. |
RecordsSelected |
Determina el número de registros seleccionados. |
ReportDisplayPage |
Indica qué página de un informe de varias páginas se está mostrando actualmente en la ventana Vista previa. |
ReportFileName |
Especifica el informe que se va a imprimir. |
ReportLatestPage |
Determina la última página impresa del informe especificado. |
ReportSource |
Especifica el origen del informe como un archivo de informe, un control de datos, o un control de datos de cuadrícula. |
ReportStartPage |
Determina la primera página impresa en el informe especificado. |
SectionFont |
Especifica la fuente para una sección. |
SectionFormat |
Especifica el formato para una sección. |
SectionLineHeight |
Especifica el alto de línea para una sección. |
SectionMinHeight |
Establece el alto de sección mínimo para la sección de informe especificada. |
SelectionFormula |
Especifica los registros que se van a usar al imprimir el informe. |
SessionHandle |
Establece el controlador de sesión para un usuario una vez que las propiedades UserName y Password hayan abierto un archivo .mdb de Access para usarlo en el informe. |
SortFields |
Especifica el o los campos que se usarán para ordenar los datos cuando se imprima el informe. |
SQLQuery |
Obtiene y establece la cadena de consulta SQL usada por el informe especificado. |
Status |
Determina el estado de impresión del informe especificado. |
StoredProcParam |
Obtiene y establece los parámetros de procedimiento almacenados cuando se usa un informe basado en procedimientos almacenados SQL. |
Top |
Consulte la documentación de Visual Basic. |
UserName |
Introduce el nombre asignado a un usuario para conectarse a un archivo .mdb de Access protegido, para obtener los archivos de datos requeridos por el informe. |
WindowBorderStyle |
Especifica el tipo de borde para la ventana de impresión. |
WindowControlBox |
Especifica si la ventana de impresión tendrá o no un cuadro de control (menú de sistema) en la esquina superior izquierda cuando el informe se dirija a una ventana. |
WindowControls |
Especifica si aparecerán o no controles de impresión en la ventana Vista previa cuando la impresión se dirija a una ventana. |
WindowHeight |
Establece el alto de la ventana de impresión cuando ésta se dirija a una ventana. |
WindowLeft |
Establece la distancia, en píxeles, desde el borde izquierdo de la ventana primaria a la ventana de impresión. Si la ventana de impresión es de nivel superior, la distancia se mide desde el borde izquierdo de la pantalla. |
WindowMaxButton |
Especifica si la ventana de impresión tendrá o no un botón de maximizar cuando el informe se imprima en una ventana. |
WindowMinButton |
Especifica si la ventana de impresión tendrá o no un botón de minimizar cuando el informe se imprima en una ventana. |
WindowParentHandle |
Especifica el controlador de la ventana primaria si la ventana de impresión va a ser secundaria de otra ventana. |
WindowState |
Establece el estado de la ventana Vista previa (normal, minimizada o maximizada) cuando el informe se dirija a una ventana Vista previa. |
WindowTitle |
Especifica el título que desea que aparezca en la barra de título de la ventana de impresión cuando el informe se dirija a una ventana. |
WindowTop |
Establece la distancia, en píxeles, desde el borde superior de la ventana primaria a la ventana de impresión. Si la ventana de impresión es de nivel superior, la distancia se mide desde el borde superior de la pantalla. |
WindowWidth |
Especifica el ancho de la ventana de impresión en píxeles. |
PrintReport |
Desencadena la impresión del informe. |
Descripción
Action es la propiedad que desencadena la impresión del informe.
Uso en tiempo de ejecución
[formulario.]CrystalReport.Action = 1
Por ejemplo:
CrystalReport1.Action = 1
«imprime el informe especificado.»
Comentarios
Establezca la propiedad Action a 1 en el código del procedimiento (CrystalReport1.Action = 1) para imprimir el informe como respuesta a un evento del usuario.
Disponibilidad
Sólo de escritura en tiempo de ejecución
Descripción
Propiedad True o False que especifica si el pie de página va a aparecer o no en el informe enlazado predeterminado.
Uso en tiempo de ejecución
[formulario.]CrystalReport1.BoundReportFooter = True
Por ejemplo:
CrystalReport1.BoundReportFooter = True
Disponibilidad
Tiempo de diseño; tiempo de ejecución
Descripción
Propiedad de cadena que permite al usuario asignar el título del informe.
Uso en tiempo de ejecución
[formulario.]CrystalReport1.BoundReportHeading = "título de informe"
Por ejemplo:
CrystalReport1.BoundReportHeading = "Ventas por región"
«imprime el título indicado para el informe especificado.»
Disponibilidad
Tiempo de diseño; tiempo de ejecución
Descripción
Inicia una sesión en un servidor SQL.
Uso en tiempo de ejecución
[formulario.]CrytalReport.Connect[= Name;UserID;Password;DatabaseQualifier$]
Por ejemplo:
CrystalReport1.Connect = "DSN = Contabilidad;UID = 734;PWD = grande;DSQ = Administración"
«conecta con la base de datos "Administración" del servidor "Contabilidad" usando el Id. de usuario 734 y la contraseña "grande".»
Comentarios
Escriba los parámetros necesarios para iniciar una sesión en el servidor SQL que necesita activar para el informe.
Los parámetros deben aparecer con el siguiente formato:
DSN = nombre;UID = Idusuario;PWD = contraseña;DSQ = calificador base de datos
· nombre es el nombre del servidor.
· Id. usuario es el nombre que se le ha asignado para iniciar una sesión en el servidor SQL.
· contraseña es la contraseña que se le ha asignado para iniciar una sesión en el servidor SQL.
· calificador de base de datos es el nombre de la base de datos si el servidor utiliza el concepto de base de datos.
Nota Antes de poder utilizar esta propiedad debe instalar el controlador ODBC para la base de datos SQL que piense utilizar e indicar la ubicación Database/BIN en la ruta de acceso
Nota Este parámetro sólo se requiere cuando sea aplicable al controlador ODBC que esté usando.
Disponibilidad
Tiempo de diseño; tiempo de ejecución
CopiesToPrinter
Descripción
Especifica el número de copias que se van a imprimir si imprime en una impresora (si el valor que asigna a la propiedad Destination es 1 - Printer).
Uso en tiempo de ejecución
[formulario.]CrystalReport.CopiesToPrinter[= NumCopias%]
Por ejemplo:
CrytalReport1.CopiesToPrinter = 3
«imprime tres copias del informe especificado.»
Comentarios
El número especificado no debe ser cero ni negativo.
Disponibilidad
Tiempo de diseño; tiempo de ejecución
Descripción
Especifica la ubicación de los archivos o tablas de base de datos usados en el informe.
Uso en tiempo de ejecución
[formulario.]CrystalReport.DataFiles(ÍndiceMatriz)[= Ubicación$]
· Escriba el nombre y la ruta de acceso a cada archivo o tabla de base de datos del informe para el que quiera cambiar la ubicación.
· Use una línea de código distinta por cada archivo para el que desee cambiar la ubicación.
· El orden de los archivos la matriz debe reflejar el orden de los archivos del informe. (Puede usar el comando Establecer ubicación del menú Base de datos para determinar el orden de los archivos en el informe.)
· El primer archivo del informe es el índice de matriz (0), el segundo archivo es (1), etc.
Por ejemplo, para cambiar la ubicación del primer y tercer archivos de un informe (primero.dbf y tercero.dbf) al directorio c:\nuevo, use la siguiente sintaxis:
CrystalReport1.DataFiles(0) = "c:\nuevo\primero.dbf"
CrystalReport1.DataFiles(2) = "c:\nuevo\tercero.dbf"
Comentarios
· DataFiles es una propiedad de matriz que sólo está disponible en tiempo de ejecución.
· Use esta propiedad si desea ejecutar el informe con archivos de diferentes ubicaciones de las especificadas en el informe.
· Si utiliza esta propiedad, no tiene que cambiar las ubicaciones de todos los archivos del informe. Simplemente asegúrese de que el índice de la matriz para cada archivo que cambie coincida con la posición de dicho archivo en el informe.
· Esta propiedad se borra una vez impresa la tarea. Si imprime por segunda vez, el programa vuelve a las ubicaciones que se especificaron inicialmente en el informe.
Disponibilidad
Tiempo de ejecución
Descripción
Especifica en qué control de datos el buscará los datos el control ActiveX Crystal.
Disponibilidad
Solo en tiempo de diseño
Descripción
Especifica el destino en el que se imprimirá el informe (Ventana, Impresora o Archivo).
Uso en tiempo de ejecución
[formulario.]CrystalReport.Destination[= Destino%]
Por ejemplo:
CrystalReport1.Destination = 0
«envía el informe especificado a una ventana de impresión.»
Comentarios
Seleccione uno de los siguientes destinos de impresión:
0 |
0 =Window (envía el informe a una ventana de impresión) |
crptToWindow |
1 |
1 =Printer (envía el informe a una impresora) |
crptToPrinter |
2 |
2 =File (imprime el informe a un archivo de disco para su impresión posterior o para importarlo en otras aplicaciones. Si selecciona esta propiedad, también tendrá que establecer las propiedades PrintFileName y PrintFileType). |
crptToFile |
3 |
3 =MAPI (envía el informe a otra persona de la red local por correo electrónico vía MAPI (Microsoft Mail). El informe se anexa a la carta de correo electrónico en el formato especificado por la propiedad PrintFileType). |
crptMapi |
Disponibilidad
Tiempo de diseño; tiempo de ejecución
Descripción
Especifica el número de copias de cada registro de la sección Detalles que imprimirá el programa.
Uso en tiempo de ejecución
[formulario.]CrystalReport.DetailCopies[= NúmCopias%]
Por ejemplo:
CrystalReport1.DetailCopies = 3
«Especifica que se impriman tres (3) copias de cada registro en la sección Detalles.»
Comentarios
Si DetailCopies se establece a un valor menor o igual a cero, el valor se paso por alto y se imprime una copia de la sección Detalles del informe.
Disponibilidad
Lectura y escritura (tiempo de diseño y de ejecución)
Descripción
Si los datos se guardan con el informe especificado, establecer esta propiedad a 1 (True) descarta los datos.
Uso en tiempo de ejecución
[formulario.]CrystalReport.DiscardSavedData[= TrueFalse%]
Por ejemplo:
CrystalReport1.DiscardSavedData = 1
«Descarta los datos guardados con el informe especificado.
Comentarios
Para TrueFalse% use uno de los siguientes valores: False = 0, True = 1.
Disponibilidad
Lectura y escritura (tiempo de diseño y de ejecución)
Descripción
Especifica la lista "CC" a la que desea enviar el mensaje de correo electrónico.
Uso en tiempo de ejecución
[formulario.]CrystalReport.EMailCCList [= ListaCC$]
Por ejemplo:
CrystalReport1.EMailCCList = "Juana Bravo;Jesús Díaz "
«Envía una Copia del mensaje de correo electrónico a Juana Bravo y a Jesús Díaz»
Comentarios
· Aplicable a MAPI.
· Los nombres múltiples deben separarse por signos de punto y coma.
Disponibilidad
Lectura y escritura (tiempo de diseño y de ejecución)
Descripción
Especifica la cadena que desea que aparezca como el cuerpo del mensaje de correo electrónico.
Uso en tiempo de ejecución
[formulario.]CrystalReport.EMailMessage[=Mensaje$]
Por ejemplo:
CrystalReport1.EMailMessage = "La reunión es a las 4:00"
«Establece "La reunión es a las 4:00" como cuerpo del mensaje de correo electrónico.»
Comentarios
Aplicable a MAPI.
Disponibilidad
Lectura y escritura (tiempo de diseño y de ejecución)
Descripción
Especifica la línea de asunto del mensaje de correo electrónico.
Uso en tiempo de ejecución
[formulario.]CrystalReport.EMailSubject[= Asunto$]
Por ejemplo:
CrystalReport1.EMailSubject = "Reunión del personal "
«Establece "Reunión del personal " como la línea de asunto de un mensaje de correo electrónico.»
Comentarios
Aplicable a MAPI.
Disponibilidad
Lectura y escritura (tiempo de diseño y de ejecución)
Descripción
Especifica la lista "A" a la que desee enviar el mensaje de correo electrónico.
Uso en tiempo de ejecución
[formulario.]CrystalReport.EMailToList [=ListaA$]
Por ejemplo:
CrystalReport1.EMailToList = "Jesús Díaz "
«Establece "Jesús Díaz " como único nombre de la lista "A".»
Comentarios
· Aplicable a MAPI.
· Varios nombres deben separarse por signos de punto y coma.
Disponibilidad
Lectura y escritura (tiempo de diseño y de ejecución)
Descripción
Especifica una nueva cadena para una fórmula existente.
Uso en tiempo de ejecución
[formulario.]CrystalReport.Formulas(ÍndiceMatriz)[= "NombreFórmula= TextoFórmula"]
Escriba el nombre de la fórmula y la cadena que quiera que sustituya a la existente para cada fórmula del informe que desee cambiar.
Por ejemplo, para cambiar una fórmula @COMISIÓN a {archivo.VENTAS}*.1, y una segunda fórmula @TOTAL a {archivo.VENTAS} + {archivo.COMISIÓN}, escriba lo siguiente:
CrystalReport1.Formulas(0) = "COMISIÓN= {archivo.VENTAS} * .1"
CrystalReport1.Formulas(1) = "TOTAL= {archivo.VENTAS} +
{archivo.COMISIÓN}"
Comentarios
· Formulas es una propiedad de matriz que sólo está disponible en tiempo de ejecución.
· Use una línea de código distinta para cada fórmula que desee cambiar.
· Cambie sólo aquellas fórmulas que quiera cambiar.
· La primera fórmula que cambie debe asignarse al índice (0) de la matriz, la segunda debe asignarse al índice (1), etc.
· La nueva cadena de fórmula debe cumplir los requisitos sintácticos de Crystal Reports.
· Esta propiedad se borra una vez impresa la tarea. Si imprime por segunda vez, el programa vuelve a las fórmulas según se especificaron originalmente en el informe.
NotaLos espacios en blanco son significativos en los nombres de fórmulas. Por esta razón, el signo igual debe seguir al nombre de la fórmula sin espacio entre ellos.
NotaEl signo @ no se usa cuando se designa un nombre de fórmula en esta propiedad.
NotaEsta propiedad no puede utilizarse para crear nuevas fórmulas. Sólo pueden cambiarse fórmulas existentes.
Disponibilidad
Tiempo de ejecución (lectura y escritura)
Descripción
Obtiene y establece los datos usados un gráfico especificado.
Uso en tiempo de ejecución
[formulario.]CrystalReport.GraphData(ÍndiceMatriz%)[= CódigoSección; NúmeroGráfico; fila; columna; campo; dirección$]
Por ejemplo:
CrystalReport1.GraphData(0)= "DETAIL; 1; GROUP1; GROUP2; 0;COLANDROW"
«El valor de Group 1 se usa para las líneas del gráfico, el valor de Group 2 se usa para las columnas, el primer campo de resumen agregado al informe se usa para establecer el valor de la elevación del gráfico, y los valores de columnas y filas se usan para crear el gráfico.»
Comentarios
Con GraphData puede especificar cambios a uno o más gráficos en tiempo de ejecución. Dichos cambios tienen lugar de forma secuencial cuando se realice la llamada "Action=1". El valor de índice de la matriz para GraphData especifica simplemente el número de orden para los cambios. Así:
CrystalReport1.GraphData(0) = "DETAIL; 3; Group1; Group2;666; COLANDROW"
cuando se hagan cambios a un único gráfico, pero
CrystalReport1.GraphData(0) = "HEADER; 3; Group1; Group2;666; COLANDROW"
CrystalReport1.GraphData(1) = "DETAIL; 3; Group1; Group2;666; COLANDROW"
cuando se realicen cambios a más de un gráfico.
Use la siguiente tabla como guía para proporcionar los valores requeridos por esta propiedad:
PARAMETRO |
DESCRIPCION |
VALOR ESPERADO |
sectionCode |
Especifica la sección en que desea modificar un gráfico. |
Consulte la tabla de códigos de sección. |
GraphNum |
El número del gráfico dentro de la sección que desea modificar. |
Los gráficos de una sección se numeran desde cero, de izquierda a derecha y de arriba abajo. |
Row |
El número de grupo del informe usado para crear filas en el gráfico. |
GROUP1, GROUP2, GROUP3, . . ., GROUP9 |
col |
El número de grupo del informe usado para crear columnas del gráfico. |
GROUP1, GROUP2, GROUP3, . . ., GROUP9 |
field |
El campo de resumen que contiene los valores máximos de cada cima del gráfico. |
El primer campo de resumen agregado a un informe se numera como 0, el segundo como 1, etc. |
direction |
Si los valores de las filas, las columnas o ambos se usan para crear el gráfico. |
ROWS, COLS, ROWANDCOL, o COLANDROW |
Disponibilidad
Lectura y escritura|tiempo de ejecución
Descripción
Obtiene y establece una serie de opciones para el gráfico especificado.
Uso en tiempo de ejecución
[formulario.]CrystalReport.GraphOptions(ÍndiceMatriz%)[= CódigoSección; NúmeroGráfico; fuente; DirecciónBarras;etiquetas;cuadrícula;leyenda;máx;mín$]
Por ejemplo:
CrystalReport1.GraphOptions(0) ="FOOTER;0;Arial;H;T;F;X;max;min"
«Establece la fuente como Arial, establece barras horizontales, muestra un valor de datos en cada cima (etiquetas = T) y quita las líneas de cuadrícula del primer gráfico de la sección Pie de página.»
Comentarios
Con GraphOptions puede especificar cambios a uno o más gráficos en tiempo de ejecución. Dichos cambios se llevan a cabo de forma secuencial cuando se realiza la llamada "Action=1". El valor de índice de la matriz para GraphOptions especifica simplemente el número de orden para el cambio. Así:
CrystalReport1.GraphOptions(0) = "DETAIL; 1; Arial; H; T; F;
legend; max; min"
cuando sólo se cambia un gráfico, pero
CrystalReport1.GraphOptions(0) = " 1; title string; subtitle string; footnote string; series string; group string; x string;y string; z string"
CrystalReport1.GraphOptions(1) = " 1; title string; subtitle string; footnote string; series string; group string; x string;y string; z string"
cuando se cambia más de un gráfico.
Use el siguiente diagrama como guía para introducir los valores de propiedad requeridos:
PARÁMETRO |
DESCRIPCIÓN |
VALORES ESPERADOS |
sectionCode |
Especifica la sección en la que desea modificar un gráfico. |
Consulte la tabla de códigos de sección. |
GraphNum |
Especifica qué gráfico de la sección desea modificar. |
Los gráficos de una sección se numeran, comenzando por cero, de izquierda a derecha y de arriba abajo. |
FontFace |
Especifica la fuente para todo el gráfico. |
Nombre real de fuente; por ejemplo, Arial |
barDirection |
En un gráfico de barras, especifica la dirección en la que desea que aparezcan las barras. |
H = horizontal, V = vertical, X = como esté |
PARÁMETRO |
DESCRIPCIÓN |
VALORES ESPERADOS |
labelRisers |
Especifica si quiere que se muestren los valores de datos de cada cima. |
T= verdadero, F = Falso, X = como esté |
gridLines |
Especifica si quiere que se muestren las líneas de la cuadrícula. |
T= verdadero, F = Falso, X = como esté |
legend |
Especifica si quiere que se muestre una leyenda. |
T= verdadero, F = Falso, X = como esté |
max |
Especifica el valor máximo que desea incluir en un gráfico. |
Indique un número. |
Min |
Especifica el valor mínimo que desea incluir en un gráfico. |
Indique un número. |
Disponibilidad
Lectura y escritura|tiempo de ejecución
Descripción
Obtiene y establece los diversos componentes de texto para el gráfico especificado.
Uso en tiempo de ejecución
[form.]CrystalReport.GraphText(ArrayIndex%)[= sectionCode; graphNum;title; subTitle; footnote; series; group; x; y; z$]
Por ejemplo:
CrystalReport1.GraphText(0) = "HEADER; 0;;;;;;new x label;new y label;
new z label"
«Restablece las etiquetas x, y, y z para el primer gráfico de la sección Encabezado de página.»
Comentarios
Seleccione el código de sección de la tabla de código de secciones.
Con GraphText puede especificar cambios a uno o más gráficos en tiempo de ejecución. Dichos cambios tienen lugar de forma secuencial cuando se realiza la llamada "Action=1". El valor de índice de la matriz de GraphText simplemente especifica el número de orden para los cambios. Así:
CrystalReport1.GraphText(0) = "DETAIL; 1; title string;subtitle string; footnote string; series string; group string; x string;y string;
z string"
cuando se efectúan cambios a un único gráfico, pero
CrystalReport1.GraphText(0) = " 1; title string; subtitle string; footnote string; series string; group string; x string;y string; z string"
CrystalReport1.GraphText(1) = " 1; title string; subtitle string; footnote string; series string; group string; x string;y string; z string"
cuando se realizan cambios a más de un gráfico.
"title", "subTitle", "footnote", "series", "group", "x","y", y "z" son las cadenas que dese etiquetar para las partes adecuadas del gráfico.
Disponibilidad
Lectura y escritura|tiempo de ejecución
Descripción
Obtiene y establece el tipo de gráfico usado en la sección seleccionada del informe especificado.
Uso en tiempo de ejecución
[form.]CrystalReport.GraphType(ArrayIndex%)[= sectionCode;graphNum;graphType$]
Por ejemplo:
CrystalReport1.GraphType(0)= "GH1; 0; PIE"
«Especifica un gráfico circular como el primer gráfico (graphNum =0) de la sección Encabezado de grupo 1 »
Comentarios
Con GraphType puede especificar cambios a uno o más gráficos en tiempo de ejecución. Dichos cambios tienen lugar secuencialmente cuando se realiza la llamada "Action=1". El valor de índice de la matriz de GraphType especifica el orden para los cambios. Así:
CrystalReport1.GraphType(0) = "DETAIL; 0; PIE"
cuando se realizan cambios a un único gráfico, pero
CrystalReport1.GraphType(0) = "HEADER; 0; PIE"
CrystalReport1.GraphType(1) = "DETAIL; 0; PIE"
cuando se realizan cambios a más de un gráfico.
Seleccione el código de sección en la tabla de códigos de secciones.
Los números de gráficos comienzan por 0; el primer gráfico de una sección es el número 0, el segundo es 1, etc.
Cuando hay varios gráficos en una sección se numeran de izquierda a derecha y de arriba abajo.
Seleccione de los siguientes tipos de gráficos para el valor graphType de esta propiedad:
PARA ESTE TIPO DE GRÁFICO |
USE ESTE CÓDIGO PARA GRAPHTYPE |
Lado a lado |
SIDEBYSIDE |
Columna 3-D |
3DSIDE |
Apiladas |
STACKEDBAR |
Apiladas 3-D |
3DSTACKED |
Porcentaje |
PERCENTBAR |
Porcentaje 3-D |
3DPERCENT |
Línea |
LINE |
Área |
AREA |
Barras 3-D |
3DBARS |
Circular |
PIE |
Múltiple |
MULTIPLEPIE |
Proporcionado |
WEIGHTEDPIE |
Disponibilidad
Lectura y escritura|tiempo de ejecución
Descripción
Especifica qué tipo de cambio en el campo de condición de grupo desencadenará la creación de un grupo.
Uso en tiempo de ejecución
[form.]CrystalReport.GroupCondition(SequentialIndex%)[= group; field; condition; sortDirection$]
Por ejemplo:
CrystalReport1.GroupCondition(0)="GROUP1;{header.ordernum};ANYCHANGE;A"
«Especifica que cualquier cambio en el campo ordernum de Group1 producirá una nueva agrupación.»
Comentarios
Consulte las siguientes tablas para valores de parámetros de esta propiedad:
PARÁMETRO |
DESCRIPCIÓN |
VALORES ESPERADOS |
group |
El grupo en que el que desea establecer la condición de grupo. |
El grupo más externo del informe es GROUP1, el siguiente grupo es GROUP2, etc. |
field |
El nombre del campo que producirá una agrupación siempre que cambie su valor. |
Indique el nombre en el siguiente formato: {tabla.campo} |
condition |
Indique la condición que producirá la agrupación. |
Consulte las siguientes tablas. |
SortDirection |
La dirección en que se ordenarán los grupos. |
A = Ascendente, D = Descendente |
Condiciones de campo de fecha
CONDICIÓN |
CÓDIGO DE CONDICIÓN |
Diario |
DAILY |
Semanal |
WEEKLY |
Quincenal |
BIWEEKLY |
Semi-mensual |
SEMIMONTHLY |
Mensual |