Documentación de Velneo
25
25
  • Introducción
  • Velneo
    • ¿Qué es velneo?
    • Requerimientos de Velneo
    • Notas de la versión
    • Funcionalidades comunes a los componentes de Velneo
      • Instalación
      • Conexión con Velneo vServer
      • Cambiar el estilo de visualización
      • Ver u ocultar barras de herramientas
      • Mensajería interna entre usuarios
      • Soporte de alta resolución (HighDPI)
      • Carpetas de trabajo de los componentes de Velneo
      • Numeración de versiones de Velneo
      • Certificado de firma digital para componentes de Windows
    • Tipos de archivo generados por Velneo
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Interfaz de Velneo vDevelop
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Inspectores
    • Proyectos objetos y editores
      • Objeto
      • De proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • De proyecto de aplicación
        • Acción
        • Alternador de lista
        • Arbol visor de tablas
        • Bloc de formularios
        • Casillero
        • Cesta
        • ComboView
        • Control SVG
        • Dispositivo serie
        • Formulario
          • Controles de visualización
            • Texto estático
            • Nombre de campo
            • Visor HTML
            • Dibujo
            • Imagen SVG
            • Caja de grupo
            • Menú arbolado
            • Barra de progreso
            • Reloj
            • Manómetro
            • Termómetro
          • Controles de edición
            • Caja de texto
            • Caja de texto enriquecido
            • Data catcher edit
            • Edición alfabética
            • Edición fecha
            • Edición fecha/hora
            • Edición fórmula
            • Edición hora
            • Edición numérica
            • Edición senda fichero
            • Edición senda directorio
            • Objeto dibujo
          • Controles de entrada
            • Botón
            • Botón de check
            • Botón de radio
            • Calendario
            • ComboBox
            • Deslizador
            • Dial
            • ListBox
            • Rueda
          • Contenedores
            • Área de scroll
            • Caja de formularios
            • Pila de formularios
            • Separador de formularios
            • Splitter
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Fichas de extensión
        • Formulario QML
        • Gráfico
        • Imagen SVG
        • Impresora lógica
        • Informe
          • Editor de informes
          • Agrupamiento
          • Sección
          • Cálculo
        • Informe personalizable
          • Diseñando un informe personalizable básico
          • Diseño avanzado
          • Diseñando un informe personalizable
          • Añadiendo orígenes de datos
          • Añadiendo elementos al informe
          • Características avanzadas
          • Etiquetas
          • Asistente de scripts
          • Impresión de gráficos
          • Opciones html
        • ListView
        • Lista QML
        • Localizador
        • Marco
        • Menú
        • Multivista
        • Protocolo TCP-IP
        • Rejilla
          • Propiedades de columna
        • Rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
      • Comunes a proyecto de datos y de aplicación
        • Búsqueda
        • Cola
        • Constante
        • Dibujo
        • Esquema de tablas
        • Fichero adjunto
        • Función
        • Librería externa
        • Lupa
        • Proceso
          • Comandos de base de datos
            • API
            • Bases de datos externas
            • Búsquedas
            • Campos (grupo de comandos)
            • Cestas
            • Fichas
            • Fichas seleccionadas
            • Listas
            • Tablas
            • Tubos
          • Básicos
            • Controles de flujo
            • Debug
            • Ejecución
            • Salida/retornos
            • Scripts (grupo de comandos)
            • Transacciones (comandos)
            • Variables
          • Comunicación
            • Internet
            • Protocolo TCP
            • Puerto serie
            • SDV
          • Interfaz
            • Acciones (comandos)
            • Control
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Tubo de ficha
        • Tubo de lista
        • Variable local
      • Editores
        • Asistente de fórmulas
          • Operadores
          • Funciones estándar
            • Funciones API
            • Funciones básicas
            • Funciones de cadenas
              • Expresiones regulares
            • Funciones científicas
            • Funciones de Cliente-servidor
            • Funciones de color
            • Funciones de códigos
            • Funciones de directorios
            • Funciones de fechas
            • Funciones de ficha en curso
            • Funciones de horas
            • Funciones de Internet
            • Funciones de juegos de caracteres
              • Codecs
            • Funciones numéricas
            • Funciones de sistema
            • Funciones de tiempo
            • Funciones trigonométricas
          • Funciones de dll
          • Funciones de proceso
          • Funciones de campo
          • Campos
          • Constantes
          • Variables globales
          • Variables locales
          • Variables del sistema
          • Verificador de fórmulas
          • Conversión automática de datos
          • Introducción de datos literales
          • Secuencias de escape en cadenas de caracteres
          • Composición de sendas en fórmulas
        • Editor de imágenes
        • Selector de fuentes
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClipboard
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataViewDialog
            • VDateEdit
            • VDateEditBrowser
            • VDateTimeEdit
            • VDateTimeEditBrowser
            • VDial
            • VDir
            • VExtension
            • VFile
            • VFileInfo
            • VFilePathEditBrowser
            • VFinder
            • VFont
            • VFormBlockListDataView
            • VFormDataView
            • VFormulaEditBrowser
            • VGaugeWidget
            • VGridListDataView
            • VGroupBox
            • VImage
            • VImageEdit
            • VImageWidget
            • VInstancesList
            • VInstance
            • VInstances
            • VItemRegisterPattern
            • VLabel
            • VLineEdit
            • VLineEditBrowser
            • VListBox
            • VListDataView
            • VLogin
            • VMainWindow
            • VMdiView
            • VMimeData
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VScrollArea
            • VServerAdmin
            • VSettings
            • VSlider
            • VSlotListDataView
            • VSolutionInfo
            • VSplitter
            • VSqlDatabase
            • VSSLCertificate
            • VSSLInfo
            • VSSLSessionCipher
            • VStackedWidget
            • VSvgButton
            • VSvgSlideSwitch
            • VSvgToggleSwitch
            • VSvgWidget
            • VSysInfo
            • VTableInfo
            • VTabWidget
            • VTextEdit
            • VTextFile
            • VThermometerWidget
            • VThumbWheel
            • VTimeEdit
            • VTimeEditBrowser
            • VToolBox
            • VTreeItem
            • VTreeItemRegister
            • VTreeListDataView
            • VTreeMenu
            • VTreeMultiTableListDataView
            • VTreeWidget
            • VUser
            • VUserGroup
            • VUserGroupList
            • VUserList
            • VXmlReader
            • VXmlWriter
            • Widget
            • XMLHttpRequest
        • QML
          • Tipos QML
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Depuración de procesos JavaScript
      • Monitor de vClient
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Proyectos
        • Organización de carpetas
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Identificadores
        • Teclas aceleradoras
        • Documenta
        • Diseña los formularios como si no existiesen los layouts
      • Buenas prácticas de rendimiento
        • Arquitectura
          • Listas de registros
          • Lista de resultados de una búsqueda
          • Las cestas
          • Las variables globales
          • La caché de fichas
          • Programa en cloud
        • Base de datos
          • Campos
          • Indices
          • Actualizaciones
          • Eventos de tabla o triggers
          • Variables globales y constantes
          • Tablas en memoria vs tablas en disco
          • Optimizar migraciones de datos
          • Búsquedas en el servidor ¿Cuándo y Cómo?
          • Campos fórmula vs campos en disco
          • Indices condicionados vs búsquedas complejas
          • ¿Cuándo usar tablas de extensión?
          • Indices de trozos y palabras
          • ¿Cuándo usar cada tipo de campo alfa?
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Procesos y funciones y eventos
          • 1º, 2º, 3º y 4º plano ¿Cuándo usar cada uno?
          • Bloqueo blando vs bloqueo duro
          • Pasar información del cliente al servidor
          • ¿Cómo optimizar transacciones grandes?
          • ¿Cómo gestionar las transacciones?
          • Grabaciones optimizadas para el usuario
        • Carga de registros en objetos de lista
          • Rejillas
            • Campos punteros a singular
            • Totales
            • Condiciones de activo, visible y color en columna
            • Campos de tipo objeto
        • Conoce los límites
      • Imágenes
      • Buenas prácticas para el desarrollo en equipo
    • Análisis de bases de datos para aplicaciones de Velneo
      • Un centro de enseñanza
      • Facturas de un cliente
      • Repartos de obras de teatro
      • Galería de arte
      • Gestión de un colegio
      • Instalación de lunas para vehículos
      • Libros y autores
      • Tienda de discos
      • Últimos pedidos de un proveedor
      • Existencias por almacén y precios por cliente
      • Generación de tickets para un quiosco
      • Navegación por facturas
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
      • Lista de comandos
    • Tareas
    • Acceso directo
  • Velneo vClient
    • ¿Qué es Velneo vClient?
    • Movilidad
    • Funcionalidades de Velneo vClient
      • Accesos directos y VRL
      • Cambiar idioma
      • Panel de procesos en 2º plano
      • Manejo de rejillas
      • Uso de la rejilla avanzada
      • Manejo de cestas
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Edición de campos de tipo fecha
      • Capturar imagen desde una cámara
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Ordenación de listas
  • Velneo vServer
    • ¿Qué es Velneo vServer?
    • Instalación y configuración
      • Activación de la licencia
      • Línea de comandos de Velneo vServer
      • Parámetros configurables de Velneo vServer
      • Estructura de directorios
    • Iniciar Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
    • vPacker
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstallBuilder?
    • Configurar una instalación
    • Probar una instalación
    • Crear el instalable
    • Accesos directos
  • Velneo vModApache
    • ¿Qué es Velneo vModApache?
    • Instalación y configuración
    • Nomenclatura de objetos en urls
    • Uso de ficheros adjuntos
    • Caché local de Velneo vModApache
  • Velneo vDataClient
    • ¿Qué es Velneo vDataClient?
    • Iniciar Velneo vDataClient
    • Interfaz de Velneo vDataClient
    • Procesos
    • Utilidades
    • Acceso directo a una instancia de datos
  • Velneo vTranslator
    • ¿Qué es Velneo vTranslator?
    • Importación y exportación basada en XLIFF
    • Acceso directo a una solución
  • Velneo ODBC Driver
    • ¿Qué es velneo ODBC Driver?
    • Referencia de comandos SQL
  • Velneo vVersion
    • ¿Qué es Velneo vVersion?
  • Velneo vERP
    • ¿Qué es Velneo vERP?
    • Manual del programador
    • Documentación del ApiRest
    • Novedades de la versión
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de cestas
      • Tutor de formularios
      • Tutor de informes
      • Tutor de localizador básico
      • Tutor de marcos
      • Tutor de rejillas
      • Tutor de rejillas avanzadas
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de comboview
      • Tutor de drag and drop
      • Tutor de eventos
      • Tutor de grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de visor html dinámico
      • Tutor de vistas de datos de lista
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de comandos de interfaz y acciones
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de portapapeles
      • Tutor de procesos
      • Tutor de SDV
    • Tutores de scripts
      • QML: hola mundo
      • QML: tutor básico
      • QML: tutor de vistas
      • Tutor de XMLHttpRequest (webServices)
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Panel de control vServer cloud
      • URC
      • vServer
      • Apache
      • SFTP
      • Usuarios
    • Copias de seguridad
    • Velneo cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • Velneo vModApache en cloud
    • SLA
    • Hora de los servidores en el cloud de Velneo
    • ¿Qué puedo hacer si tengo una incidencia en mi servidor cloud?
Con tecnología de GitBook
En esta página
  • Tutor de búsquedas
  • Creación del formulario de búsqueda
  • Creación de la búsqueda
  • Componente: PALABRAS
  • Componente: TROZOS
  • Componente: FECHA

¿Te fue útil?

  1. Velneo vTutor
  2. Tutores de objetos básicos

Tutor de búsquedas

Última actualización hace 4 años

¿Te fue útil?

Tutor de búsquedas

Las búsquedas hacen uso de los sub-objetos de tabla llamados índices.

Una búsqueda podrá estar compuesta por un único componente (por un único índice) o por varios componentes (por varios índices).

A través de este tutor vamos a conocer cómo podemos construir una búsqueda que nos permita buscar por diferentes criterios, es decir, por varios componentes.

Para ello vamos a usar la tabla de Clientes (CLT_M) declarada en el proyecto de datos de vTutor.

En la tabla los índices WORDS (de tipo Palabras) y PARTS (de tipo Trozos de palabras) indexan tanto el campo NAME como el campo OBS (observaciones).

Un índice de tipo palabras indexa un registro por cada palabra encontrada en las partes que forman la clave.

Un índice de tipo trozos de palabras indexa un registro por cada grupo de 3 ó más caracteres de cada una de las partes que forman la clave.

En este tutor aprenderemos a crear una búsqueda en la tabla de Clientes por los criterios siguientes:

Por PALABRAS o por TROZOS de palabras y entre límites de FECHA.

Tendremos que crear, además de la búsqueda, un formulario para pedir los datos de la búsqueda:

Si en dicho formulario el usuario deja algún dato en blanco, no se realizará la búsqueda por el componente correspondiente al mismo.

Tanto el formulario como la búsqueda los encontraremos en la carpeta tablas tutores y buenas prácticas/clientes del proyecto de aplicación de vTutor.

Creación del formulario de búsqueda

En este tutor no vamos a explicar detalladamente la creación y edición de un formulario, ya que existe un tutor específico sobre formularios, sino que explicaremos solamente aquellos aspectos necesarios y de interés para este tutor sobre búsquedas.

De las propiedades del objeto formulario modificaremos las siguientes:

Identificador: CLT_M_BUS.

Nombre: búsqueda avanzada de clientes.

Tabla asociada: CLT_M.

Junto a la etiqueta texto a buscar, se ha añadido un control de tipo Edición cuyo contenido es el campo NAME de la tabla de Clientes: #NAME.

Dado que podemos buscar o por PALABRAS o por TROZOS de palabras, crearemos una variable local de tipo booleano. Si su contenido es 1 la búsqueda alfabética se hará por PALABRAS, si es 0, por TROZOS de palabras:

Hemos incluido dos botones de radio para editar la variable local PLB. El que tiene el nombre por palabras tiene como contenido la variable local PLB y como valor1. El que tiene el nombre por trozos de palabras tiene como contenido la variable local PLB y como valor0.

Dado que la búsqueda por el componente fecha va a ser entre límites de fecha (entre una fecha inicial y una fecha final), tendremos que crear en el formulario dos variables locales de tipo fecha. Las llamaremos FCH_LIM_INI y FCH_LIM_FIN, respectivamente:

Junto a la etiqueta fecha inicio, se ha añadido un control de tipo edición fecha cuyo contenido es la variable local FCH_LIM_INI.

Junto a la etiqueta fecha fin, se ha añadido un control de tipo edición fecha cuyo contenido es la variable local FCH_LIM_FIN.

El botón cuyo nombre es buscar, dispara el comando aceptar.

El botón cuyo nombre es cancelar, dispara el comando cancelar.

Creación de la búsqueda

Identificador: CLT_M_AVA.

Nombre: clientes (avanzada).

Tabla asociada: CLT_M.

Formulario: CLT_M_AVA.

Invertir lista: falso. Dejaremos que la lista se presente en orden ascendente según el índice usado.

Fórmula filtro: lo dejaremos vacío; en este caso, no es necesario aplicar un filtro secuencial al resultado de la búsqueda.

Una vez creada la búsqueda, tendremos que definir los componentes de la misma pero antes de hacerlo, recordemos que en el formulario de petición de datos habíamos creado unas variables locales para recoger una serie de datos, que recordemos eran:

PLB: de tipo booleano, para que el usuario pueda indicar si quiere realizar la búsqueda por palabras o por trozos de palabras.

FCH_LIN_INI y FCH_LIM_FIN para la petición de los límites inicial y final para el componente de la búsqueda por el índice fecha.

Pues bien, para recoger en la búsqueda los datos introducidos por el usuario en esas variables del formulario de petición de datos, lo que haremos será crear en la búsqueda también tres variables locales con los mismos identificadores y tipos que las del formulario.

Si las variables se llaman igual, Velneo pasa el valor de las variables del formulario a las de la búsqueda de forma automática.

Una vez creadas las variables locales ya podremos comenzar a crear los componentes de la búsqueda. Éstos permiten definir tanto el índice o índices por los que se realizará la búsqueda como el modo en el que ésta será realizada.

Recordemos que la búsqueda que vamos a crear lo hará por los criterios siguientes:

Por PALABRAS. o Por TROZOS de palabras. y Entre límites de FECHA.

Para conseguir esto crearemos un primer componente que cargue todos los registros de la tabla y luego crearemos tantos componentes como distintos criterios de búsqueda indicados que vayan reduciendo la lista obtenida hasta llegar al resultado deseado.

A este componente le estableceremos las siguientes propiedades:

Identificador: TLT.

Índice: ID.

Modo: todo el fichero.

Componente: PALABRAS

Añadiremos un nuevo componente de búsqueda, y le estableceremos las propiedades siguientes:

Identificador: PAL.

Mezcla: en este parámetro especificaremos la forma de combinar la lista resultante de la ejecución del componente en curso con la del anterior. En este caso, seleccionaremos el valor cruzar ya que éste hace que la lista resultante esté compuesta por los registros que se repitan en la lista resultante de ejecutar este componente y la del anterior.

( isEmpty(#NAME) = 0 ) & PLB

Índice: seleccionaremos el índice WORDS.

Todas las palabras: en este parámetro indicaremos una fórmula que devuelva true si queremos que se busquen solamente aquellos registros que contengan todas las palabras que el usuario haya escrito en el formulario para la petición de datos de la búsqueda, o que devuelva False si queremos que se busquen los registros que contengan cualquiera de las palabras que el usuario haya escrito en el formulario para la petición de datos de la búsqueda. En este caso estableceremos el valor 1, es decir, todas las palabras.

Para resolver la parte de índice correspondiente al campo NAME pulsaremos el botón que aparece al editarlo y seleccionaremos, de la lista de campos de la tabla, el campo NAME. #NAME:

De esta forma, el texto escrito en el control de edición del campo NAME del formulario de búsqueda será buscado en ambos campos.

Componente: TROZOS

Añadiremos un nuevo componente de búsqueda, y le estableceremos las propiedades siguientes:

Identificador: TRZ.

Mezcla: en este parámetro especificaremos la forma de combinar la lista resultante de la ejecución del componente en curso con la del anterior. En este caso, seleccionaremos el valor cruzar ya que éste hace que la lista resultante esté compuesta por los registros que se repitan en la lista resultante de ejecutar este componente y la del anterior.

( isEmpty(#NAME) = 0 ) & ( ! PLB )

Índice: seleccionaremos el índice PARTS.

Para resolver la parte de índice correspondiente al campo NAME pulsaremos el botón que aparece al editarlo y seleccionaremos, de la lista de campos de la tabla, el campo NAME. #NAME:

De esta forma, el texto escrito en el control de edición del campo NAME del formulario de búsqueda será buscado en ambos campos.

Componente: FECHA

Añadiremos un nuevo componente de búsqueda, y le estableceremos las propiedades siguientes:

Identificador: FCH.

Mezcla: en este parámetro especificaremos la forma de combinar la lista resultante de la ejecución del componente en curso con la del anterior. En este caso, seleccionaremos el valor Cruzar ya que éste hace que la lista resultante esté compuesta por los registros que se repitan en la lista resultante de ejecutar este componente y la del anterior.

isEmpty(FCH_LIM_INI) = 0

Para añadir las variables locales a la fórmula hacerlo a través de la lista de variables locales del asistente, haciendo doble clic sobre la variable deseada para añadirla a la fórmula.

Índice: seleccionaremos el índice FECHA.

Modo: en este caso seleccionaremos el valor Entre límites, dado que nos interesa buscar entre dos rangos de fechas.

Para resolver la parte de índice correspondiente al campo FECHA pulsaremos el botón que aparece al editarlo y seleccionaremos, de la lista de variables locales la variable FCH_LIM_INI.

Choose(IsEmpty(FCH_LIM_FIN), FCH_LIM_INI, FCH_LIM_FIN)

Es decir, si el usuario no ha cumplimentado el dato de la fecha final, se asumirá el dato especificado en la fecha inicial, en caso contrario, se tomará el dato indicado en la fecha final. Para añadir las variables locales a la fórmula hacerlo a través de la lista de variables locales del asistente de fórmulas, haciendo doble clic sobre la variable deseada para añadirla a la fórmula.

La búsqueda que acabamos de crear podremos dispararla, por ejemplo, desde una acción, usando como objeto de salida cualquier objeto de listas (rejilla, casillero, etc.).

Para crear el formulario, editaremos el proyecto de aplicación con Velneo vDevelop, pulsaremos la tecla Insert para abrir la galería de objetos y haremos doble clic sobre el siguiente icono:.

Para crear la búsqueda haremos doble clic sobre el icono de la galería de objetos (Tecla Insert) y estableceremos las siguientes propiedades:

Para crear un componente de búsqueda pulsaremos el botón de la barra de herramientas del panel de subobjetos y seleccionaremos la opción componente búsqueda. El nuevo componente aparecerá en el panel de subobjetos:

Condición activo: recordemos que todos los componentes se ejecutarán si el campo o variable correspondiente, editado en el formulario de petición de datos, no está vacío. En este caso, además, tendrá que estar condicionado también a que la variable local PALABRAS sea igual a 1. Para especificar esta condición podremos usar el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad y estableceremos la siguiente:

Límite inicial: en esta propiedad indicaremos, mediante fórmulas, qué campos o variables editados en el formulario de petición de datos de la búsqueda van a usarse para resolver el componente o los componentes del índice en cuestión. En este caso, recordemos que aunque el índice WORDS de la tabla de Incidencias, indexaba tanto el campo NAME como el campo OBS (observaciones), en este caso tendremos que resolver el componente primero. Para ello pulsaremos el botón que aparece al editar esta propiedad, y se abrirá la ventana siguiente:

Condición activo: recordemos que todos los componentes se ejecutarán si el campo o variable correspondiente, editado en el formulario de petición de datos, no está vacío. En este caso, además, tendrá que estar condicionado también a que la variable PALABRAS sea igual a 0. Para especificar esta condición podremos usar el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad y estableceremos la siguiente:

Límite inicial: en esta propiedad indicaremos, mediante fórmulas, qué campos o variables editados en el formulario de petición de datos de la búsqueda van a usarse para resolver el componente o los componentes del índice en cuestión. En este caso, recordemos que aunque el índice PARTS de la tabla de Incidencias, indexaba tanto el campo NAME como el campo OBSERVACIONES, en este caso tendremos que resolver el componente primero. Para ello pulsaremos el botón que aparece al editar esta propiedad, y se abrirá la ventana siguiente:

Condición activo: recordemos que todos los componentes se ejecutarán si el campo o variable correspondiente, editado en el formulario de petición de datos, no está vacío. Para especificar esta condición podremos usar el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad y estableceremos la siguiente:

Límite inicial: en esta propiedad indicaremos, mediante una fórmula, qué campos o variables editados en el formulario de petición de datos de la búsqueda van a usarse para resolver el componente o los componentes del índice en cuestión. Para ello pulsaremos el botón que aparece al editar esta propiedad, y se abrirá la ventana siguiente:

Límite final: en esta propiedad indicaremos, mediante una fórmula, qué campos o variables editados en el formulario de petición de datos de la búsqueda van a usarse para resolver el componente o los componentes del índice en cuestión. Para ello pulsaremos el botón que aparece al editar esta propiedad, y se abrirá la ventana siguiente:

Para resolver la parte de índice correspondiente al campo FECHA pulsaremos el botón que aparece al editarlo y especificaremos la fórmula siguiente: