Language:


- Búsquedas Exclusivas Controladas por las Casillas

Las Búsquedas Exclusivas inician desde el punto específico en donde todos los registros individuales de un registro particular, estarán listados en el informe; y tales registros individuales serán omitidos del informe cuando sean alcanzados por el criterio controlado por las casillas. En este apartado vamos a ilustrar una búsqueda exclusiva en una Lista de Contactos. Lo que haremos es agregar una casilla que excluya todos aquellos Contactos con número de fax. El procedimiento es el siguiente:
  1. Crea un nuevo informe. Luego, estando en la solapa ‘Data’, especifica que el registro Contactos ha de ser tu registro primario. Ve a la solapa ‘Diseño’ y diseña la diagramación de tu informe (según tus requerimientos).

  2. Pasa a la solapa ‘Entrada’ y haz clic en el botón [Casilla] para abrir la ventana de diálogo ‘Casilla’:

    Etiqueta
    Ingresa el nombre de la casilla. Este dato aparecerá idéntico en la ventana de especificación. Procura colocar un nombre que indique el propósito de la casilla para que las persona que ejecute el informe sepa para qué sirve.

    Nombre Variable
    Ingresa un nombre para la variable “boolean” que está controlada por la casilla. Debes incluir al menos un carácter alfa en el nombre y no deberás usar espacios o signos de puntuación. Si quieres, puedes usar un guión bajo en lugar de un espacio. Lo ideal es que el nombre de la variable refleje su propósito.

    Técnicamente, la variable será puesta en 1 cuando la persona que ejecute el informe decida tildar la casilla. De lo contrario, el valor de la variable será 0.

    Tilde p/Defecto
    Tilda esta casilla para hacer que el valor de la variable se coloque en 1 por defecto. Así, la casilla aparecerá tildada cuando el usuario abra la ventana de especificación. Si no tildas esta casilla, el valor de la variable será 0 por defecto y la casilla no aparecerá tildada en la ventana de especificación.

    Ancho
    Este campo no se utiliza en casillas.

    h, v
    Estos dos campos sirven para especificar dónde deseas colocar las casilla en la ventana de especificación. Simplemente, debes ingresar las coordenadas (en píxeles) en función a la esquina superior izquierda de la casilla (no de la etiqueta): “h” (horizontal) se refiere a la distancia desde el borde izquierdo de la ventana de especificación; “v” (vertical) se refiere a la distancia desde el borde superior de la ventana de especificación. Verás que el sistema te ofrece coordenadas por defecto las cuales coinciden con el espacio vertical estándar usado por HansaWorld Enterprise – esto es 20 píxeles entre cada casilla.

  3. Luego de esto, haz clic en [OK] para cerrar la ventana ‘Casilla’ y ver cómo aparece la casilla que has creado en el área de edición:

    El hecho de crear una casilla de esta manera tiene el efecto de “declarar” la variable, de modo que no hay necesidad de hacerlo en la solapa ‘Data’.
  1. Hasta aquí, la casilla que has creado existe solamente en la ventana de especificación. Ahora, deberás especificar qué sucederá cuando el usuario la seleccione. Para nuestro ejemplo, si el usuario tilda la casilla, se debería correr una búsqueda de los Contactos que no tienen Número de Fax, por tanto se omitiría aquellos que sí tienen Número de Fax. Si el usuario no tilda la casilla, no debería correrse ninguna búsqueda sino que los todos los Contactos (con o sin número de fax) deberían aparecer en el informe.

    En este sentido, ve a la solapa ‘Data’ y haz clic sobre la franja llamada "Register: Contactos..." para así poder especificar que la búsqueda se ha de correr sobre el registro Contactos. Luego, haz clic el botón [Imprimir Si].

  2. Ingresa una fórmula (condición) en la ventana de diálogo ‘Imprimir Si’ tal como muestra la siguiente ilustración:

    La fórmula es:
    (cExclFax == 1 y blank(vrContact.Fax)) o (cExclFax == 0)
    Esto indica que si la casilla (cExclFax) está tildada, se correrá una búsqueda de Contactos que no tengan Número de Fax. De lo contrario, no se correrá ninguna búsqueda y no se tomará ninguna acción al respecto. En la expresión vrContact.Fax, la palabra "Fax" se refiere al nombre interno del campo ‘Fax’ en el registro individual de Contacto.

    “blank” es una función dentro de HansaWorld Enterprise la cual sirve para hallar aquellos registros individuales en donde el campo (de tipo “string”) especificado, está vacío. Puedes también utilizar el string_fieldname: == "" (ej. vrContact.Fax == ""). Puedes usar !blank, nonblank o un string_fieldname > "" para hallar aquellos registros individuales en donde un campo específico contiene un valor (cualquier valor). En caso de campos de tipo “decimal” o “integer”, toma en cuenta que “vacío” y “0” no son necesariamente lo mismo. Por su parte, num_fieldname == 0 hallará aquellos registros individuales donde un campo específico de tipo “decimal” o “integer” esté vacío o contenga el valor 0 ----- blank(num_fieldname) hallará solamente archivos donde el campo de tipo “decimal” o “integer” esté vacío, no aquellos que contengan el valor 0.

  3. Haz clic en el botón [OK] para agregar la selección deseada al la sección “Register: Contactos:…” en el área de edición de tu informe:

  1. Cuando el informe sea producido sin usar la nueva alternativa de especificación, éste listará solo Contactos que no tengan números de fax.

    Una posible mejora a la casilla ‘Omitir Contactos con Nro. Fax’ (la casilla que hemos creado), podría consistir en ofrecer alternativas para mostrar Solo Contactos con Nro. Fax, Solo Contactos sin Nro. Fax y Contactos con o sin Nro. Fax. Esto se logrará de manera más eficiente con el uso de radio botones (ver aquí).

Cómo agregar una segunda Casilla
Puedes agregar casillas extra a tu ventana de especificación, sin embargo éstas deben iniciar también búsquedas exclusivas (es decir, búsquedas para omitan registros individuales la selección inicial). Para nuestro ejemplo (Lista de Contactos), hemos de agregar una casilla que excluya Contactos con dirección de mail.
  1. En la solapa ‘Entrada’, agrega una nueva casilla (según lo descrito anteriormente en el paso 2).

  2. En la solapa ‘Data’, agrega una nueva condición de Impresión si (botón [Imprimir Si]) a la sección “Register: Contactos???” (según lo descrito anteriormente en los pasos 4 al 6).

    "eMail" se refiere al nombre interno del campo ‘E-mail’ en el registro individual de un Contacto.

    El resultado será dos franjas que dirán "Imprimir Si:". El orden en que se colocan estas franjas no importará.

    Cuando hay más de una franja llamada "Imprimir Si:", ésas son tratadas como si tuviesen el operador lógico "y". La búsqueda se correrá en función a los registros individuales que cumplan con la primera condición y que cumplan con la segunda condición. Otra forma de hacer esto es uniendo las dos franjas "Imprimir Si:":
    ((cExclFax == 0 o blank(vrContact.Fax)) o (cExclFax == 0)) y ((cExclEmail == 0 o blank(vrContact.eMail)) o (cExclEmail == 0))
    Notemos que cada condición está dentro de sus propios corchetes. Las dos partes de una única casilla con condición exclusiva están unidas por "o", mientras que las diversas condiciones de una casilla están unidas usando "y". Esto garantiza que se correrá una búsqueda de registros individuales que cumplan la condición uno y que cumplan la condición dos.

    De esta manera, la ventana de especificación contendrá dos alternativas que podrás utilizar de la siguiente forma:

    Ninguna opción tildada
    El informe listará todos los registros individuales del registro Contactos.

    Una opción tildada
    El informe listará registros individuales que no tengan Número de Fax o registros individuales que no tengan Dirección de E-mail (dependiendo de la opción seleccionada).

    Ambas opciones tildadas
    El informe listará solamente aquellos registros individuales que no tengan Número de Fax ni tampoco Dirección de E-mail.
Para más detalles sobre la sintaxis que deberías usar al ingresar la fórmula (en la ventana de diálogo ‘Selección’), por favor ve la página Sintaxis.

Por favor, haz clic en los siguientes subtítulos para ver la descripción detallada sobre: